рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рдЖрдк рд╕реАрдЦреЗрдВрдЧреЗ рдХрд┐ рдпреВрдирд┐рдЯреА рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯреЗрдмрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреИрд╕реЗ рдмрдирд╛рдПрдВ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпреЛрдЧреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдЖрдкрдХреЗ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдореЗрдореЛрд░реА рдлрд╝реБрдЯрдкреНрд░рд┐рдВрдЯ рдХреЛ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЖрдкрдХреЛ рдХреЛрдб рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рднреА рджреЗ рд╕рдХрддреЗ рд╣реИрдВред
рдпреВрдирд┐рдЯреА рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди рдХреЗ рдЕрдиреБрд╕рд╛рд░, ScriptableObject рдПрдХ рдХреНрд▓рд╛рд╕ рдХреЛрдб рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЧреЗрдо рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╕рд╛рдЭрд╛ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрд╕реНрдЯреЗрдВрд╕реЗрд╕ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВред
рдпреВрдирд┐рдЯреА рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдХрдИ рдХрд╛рд░рдг рд╣реИрдВред рд╡реЗ рдкреНрд░рддреНрдпреЗрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░реАрдлрд╝реИрдм рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдореЗрдореЛрд░реА рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпреЛрдЧреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ
рдлреНрд▓рд╛рдИрд╡реЗрдЯ рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИред
рдкрдЯрдХрдерд╛ рдпреЛрдЧреНрдп рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдПрдХ рдФрд░ рд▓рд╛рдн, рдЬреЛ рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХрд╛ рдореБрдЦреНрдп рд╡рд┐рд╖рдп рд╣реЛрдЧрд╛, рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХреЗ рд▓рд┐рдП рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реИред рд╣рдо рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдПрдХ рддрд▓рд╡рд╛рд░ рд╡реНрдпрд╛рдкрд╛рд░реА рдХреА рджреБрдХрд╛рди рдмрдирд╛рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдиреЗрдВрдЧреЗ, рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рддрд▓рд╡рд╛рд░реЛрдВ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ, рдХреАрдорддреЛрдВ рдФрд░ рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ред
рдиреЛрдЯ: рдпрд╣ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдПрдХрддрд╛ рд╕рдВрдкрд╛рджрдХ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВред рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреЛрдб рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдХреЛрдб рдХреЛ рдХреИрд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдореВрд▓ C # рдЬреНрдЮрд╛рди рд╣реЛред рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдПрдХрддрд╛ рдХреМрд╢рд▓ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЕрдиреНрдп рдПрдХрддрд╛ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рджреЗрдЦреЗрдВ ред
рдХрд╛рдо рдкрд░ рд▓рдЧрдирд╛
рдЖрдЗрдП рд╣рдо
рдЙрди рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреЛ
рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд░реЗрдВ
рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдЬрд╝рд░реВрд░рдд рд╣реИред
рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЬрдЧрд╣ рдкрд░ рдЦреЛрд▓ рджреЗрдВ рдФрд░ рдпреВрдирд┐рдЯреА рдореЗрдВ
рд╕реНрдХреНрд░рд┐рдкреНрдЯреЗрдмрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓-рд╕реНрдЯрд╛рд░реНрдЯрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЦреЛрд▓реЗрдВред
рдЖрдкрдХреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЦрд░реАрдж рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдП рдЧрдП рдирд┐рдореНрди рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:

- _Setup : рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред
- рджреГрд╢реНрдп : рдПрдХ рддрд▓рд╡рд╛рд░ рд╡реНрдпрд╛рдкрд╛рд░реА рджреГрд╢реНрдп рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдкреВрд░реЗ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВрдЧреЗред рдЗрд╕ рджреГрд╢реНрдп рдХреЛ рдЦреЛрд▓реЗрдВред
- рд╕реНрдХреНрд░рд┐рдкреНрдЯ : рдЕрдм рддрдХ рдХреЗрд╡рд▓ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ, рд▓реЗрдХрд┐рди рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рджреМрд░рд╛рди рд╣рдо рдирдП рдмрдирд╛рдП рдЬрд╛рдПрдВрдЧреЗред
- рддрд▓рд╡рд╛рд░ рдЪрд┐рд╣реНрди : рдЗрд╕рдореЗрдВ рдЕрднреА рднреА рд╡реНрдпрдХреНрддрд┐рдЧрдд рддрд▓рд╡рд╛рд░реЛрдВ рдХреЗ рдЪрд┐рддреНрд░ рд╣реИрдВред
- Sword Prefabs : Sword Merchant рд╕реАрди рдореЗрдВ рд╕рднреА рддрд▓рд╡рд╛рд░реЛрдВ рдХреЗ рдкреНрд░реАрдлрд╝реИрдм рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпреЛрдЧреНрдп рд╡рд╕реНрддреБ рдХрд╛ рдирд┐рд░реНрдорд╛рдг
рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
рддрд▓рд╡рд╛рд░ рд╡реНрдпрд╛рдкрд╛рд░реА рджреГрд╢реНрдп рдкрд░ рдЬрд╛рдПрдВред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:
рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рддреИрдпрд╛рд░ рдХрд░рдирд╛
рдпрд╣ рдкрд╣рд▓реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпреЛрдЧреНрдп рд╡рд╕реНрддреБ рдмрдирд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ!
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ,
SwordData рдирд╛рдордХ рдПрдХ рдирдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ
рдмрдирд╛рдПрдБ ред рдпрд╣ рд╡рд░реНрдЧ рддрд▓рд╡рд╛рд░ рд╡реНрдпрд╛рдкрд╛рд░реА рдХреА рджреБрдХрд╛рди рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕рднреА рддрд▓рд╡рд╛рд░ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдВрдЯреЗрдирд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЗрд╕ рд╢реНрд░реЗрдгреА рдХреЗ рдЕрдВрджрд░,
MonoBehaviour
рдмрдЬрд╛рдп
MonoBehaviour
рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рд╢реБрд░реБрдЖрдд рдХрд░реЗрдВ:
public class SwordData : ScriptableObject { }
рдпрд╣ рдХреНрд░рд┐рдпрд╛ рдпреВрдирд┐рдЯреА рдХреЛ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рд╣рдо рдЕрднреА рднреА рдирд┐рдпрдорд┐рдд рдореЛрдиреЛрдУрд╡рд┐рдЕрд░ рдХреА рддрд░рд╣ рдПрдХрддрд╛ рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдФрд░ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЕрдм рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЧреЗрдордСрдмрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рдирд┐рдпрдорд┐рдд рд╕рдВрдкрддреНрддрд┐ рдХреА рддрд░рд╣ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕реЗ рдЙрд╕реА рддрд░рд╣ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдкреНрд░реАрдлреИрдм, рджреГрд╢реНрдп рдпрд╛ рд╕рд╛рдордЧреНрд░реАред
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЕрдиреБрдХреНрд░рдорд┐рдд рдлрд╝реАрд▓реНрдб рд╕реЗ рднрд░реЗрдВ, рдЬрд┐рд╕рдореЗрдВ рд╕реНрд╡реЙрд░реНрдб рдорд░реНрдЪреЗрдВрдЯ UI рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЕрдиреБрд░реВрдк рд╕рднреА рдбреЗрдЯрд╛ рд╣реЛрдВрдЧреЗред
public class SwordData : ScriptableObject { [SerializeField] private string swordName; [SerializeField] private string description; [SerializeField] private Sprite icon; [SerializeField] private int goldCost; [SerializeField] private int attackDamage; }
- рддрд▓рд╡рд╛рд░рдирд╛рдо :
string
, рдЬрд┐рд╕рдореЗрдВ рддрд▓рд╡рд╛рд░ рдХрд╛ рдирд╛рдо рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред - рд╡рд┐рд╡рд░рдг :
string
, рдЬрд┐рд╕рдореЗрдВ рддрд▓рд╡рд╛рд░ рдХрд╛ рд╡рд┐рд╡рд░рдг рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред - рдЖрдЗрдХрди : рд╕реНрдкреНрд░рд╛рдЗрдЯ рдЬрд┐рд╕рдореЗрдВ рддрд▓рд╡рд╛рд░ рдЖрдЗрдХрди рд╣реЛрдЧрд╛ред
- рдЧреЛрд▓реНрдбрдХреЙрд╕реНрдЯ : рд╕реЛрдиреЗ рдореЗрдВ рддрд▓рд╡рд╛рд░ рдХреЗ рдореВрд▓реНрдп рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ ред
- attackDamage : рдЬрдм рддрд▓рд╡рд╛рд░ рд╕реЗ рд╣рдорд▓рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдХреНрд╖рддрд┐ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИ ред
рдиреЛрдЯ: SerializeField
рдПрдХрддрд╛ рдореЗрдВ, SerializeField рд╡рд┐рд╢реЗрд╖рддрд╛ рдЖрдкрдХреЛ рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдореЗрдВ рдирд┐рдЬреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд░ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдЕрдиреНрдп рд▓рд┐рдкрд┐рдпреЛрдВ рд╕реЗ рдЪрд░ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд┐рдП рдмрд┐рдирд╛ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдорд╛рди рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред
рдкреНрд░рддреНрдпреЗрдХ рддрд▓рд╡рд╛рд░ рдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпреЛрдЧреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ
SwordData рдХреЗ рдЕрдкрдиреЗ рдЕрджреНрд╡рд┐рддреАрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдЗрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиреЛрдВ рдХреЛ рдмрдирд╛ рд╕рдХреЗрдВ, рд╣рдореЗрдВ рдПрд╕реЗрдЯ рдореЗрдиреВ рдореЗрдВ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпреЛрдЧреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред
SwordData рд╡рд░реНрдЧ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝рдХрд░ рд╣рдорд╛рд░реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпреЛрдЧреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдПрд╕реЗрдЯ рдореЗрдиреВ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
[CreateAssetMenu(fileName = "New SwordData", menuName = "Sword Data", order = 51)] public class SwordData : ScriptableObject
- рдлрд╝рд╛рдЗрд▓рдирд╛рдо : рд╕рдВрдкрддреНрддрд┐ рдмрдирд╛рддреЗ рд╕рдордп рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд╛рдоред
- рдореЗрдиреВрдирд╛рдо : рдПрд╕реЗрдЯ рдореЗрдиреВ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдирд╛рдоред
- рдЖрджреЗрд╢ : рдПрд╕реЗрдЯ рдореЗрдиреВ рдореЗрдВ рдПрд╕реЗрдЯ рдкреНрд▓реЗрд╕рдореЗрдВрдЯред рдПрдХрддрд╛ рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ 50 рдХреЗ рдПрдХ рдХрд╛рд░рдХ рдХреЗ рд╕рд╛рде рдЙрдкрд╕рдореВрд╣реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреА рд╣реИред рдЕрд░реНрдерд╛рдд, 51 рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХрд╛ рдорд╛рди рдПрд╕реЗрдЯ рдореЗрдиреВ рдХреЗ рджреВрд╕рд░реЗ рд╕рдореВрд╣ рдореЗрдВ рд░рдЦрддрд╛ рд╣реИред
рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЖрдк
рдПрд╕реЗрдЯреНрд╕ рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ
>> рдореЗрдиреВ рдореЗрдВ рдирдИ
рддрд▓рд╡рд╛рд░ рдбреЗрдЯрд╛ рд╕рдВрдкрддреНрддрд┐
рдмрдирд╛рдПрдВ рдФрд░ рджреЗрдЦреЗрдВред рдЗрд╕реЗ рдлрд╝реЛрд▓реНрдбрд░ рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐ рдХреЗ рддрд╣рдд рджреВрд╕рд░реЗ рд╕рдореВрд╣ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
рдЖрдк рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╡рд┐рдВрдбреЛ рдореЗрдВ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдирдИ рддрд▓рд╡рд╛рд░ рдбреЗрдЯрд╛ рдПрд╕реЗрдЯ рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
рдбреЗрдЯрд╛ рдЬреЛрдбрд╝рдирд╛
рд╣рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ
рд╕реНрдХреНрд░рд┐рдкреНрдЯреЗрдмрд▓ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдирд╛рдордХ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдХрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ
рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░реЗрдВрдЧреЗ , рдФрд░ рдЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдЕрдВрджрд░ рдПрдХ рдЕрдиреНрдп рдлрд╝реЛрд▓реНрдбрд░ рдЬрд┐рд╕реЗ
Sword Data рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред
рдирдП рдмрдирд╛рдП рдЧрдП Sword Data рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдЕрдВрджрд░, рд╣рдорд╛рд░реА рдкрд╣рд▓реА Sword Data рд╕рдВрдкрддреНрддрд┐ рдмрдирд╛рдПрдВред
рдирдИ рддрд▓рд╡рд╛рд░ рдбреЗрдЯрд╛ рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдЕрднреА рднреА рдкрд╣рд▓реЗ рд╕реЗ рддрдп рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд╛рдо
рдлрд╝рд╛рдЗрд▓рдирд╛рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рд╕рд╛рдд рддрд▓рд╡рд╛рд░ рдбреЗрдЯрд╛ рд╕рдВрдкрддреНрддрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЫрд╣ рдмрд╛рд░ (
Ctrl / Cmd + D ) рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░реЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рддрд▓рд╡рд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХред рдЕрдм рдкреНрд░реАрдлрд╝реЗрдмреНрд╕ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдирд╛рдо рдмрджрд▓реЗрдВ:
Sword Data рдлреЛрд▓реНрдбрд░ рдореЗрдВ рдкрд╣рд▓реЗ
Sword Data рдПрд╕реЗрдЯ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░
рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рд╡рд┐рдВрдбреЛ рдХреЛ рджреЗрдЦреЗрдВ:
рдпрд╣рд╛рдВ рд╣рдо рдПрдХ рд╕рдВрдкрддреНрддрд┐ рджреЗрдЦрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рддрд▓рд╡рд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рдПрдЧреАред рдкреНрд░рддреНрдпреЗрдХ рддрд▓рд╡рд╛рд░ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирдХрд╛рд░реА рднрд░реЗрдВред рд╣рдорд▓реЗ рдХреЗ рджреМрд░рд╛рди рдЙрдиреНрд╣реЗрдВ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рд╡рд┐рд╡рд░рдг, рд╕реЛрдиреЗ рдореЗрдВ рдореВрд▓реНрдп рдФрд░ рдиреБрдХрд╕рд╛рди рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред рдЪрд┐рд╣реНрди рд╕реНрдкреНрд░рд╛рдЗрдЯ рдлрд╝реАрд▓реНрдб рдореЗрдВ,
Sword Icons рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд┐рдд рд╕рдВрдЧрдд рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
рдмрдзрд╛рдИ! рдЖрдкрдиреЗ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпреЛрдЧреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдФрд░ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпреЛрдЧреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдХрдИ рд╕рдВрдкрддреНрддрд┐рдпрд╛рдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреАрдВред
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╡рд╕реНрддреБ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдЕрдм рд╣рдо рдЗрди Scriptable рд╡рд╕реНрддреБрдУрдВ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдХреБрдЫ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЧреЗрдЯреНрдЯрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЕрдиреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпреЛрдЧреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЕрдВрджрд░ рдирд┐рдЬреА рдХреНрд╖реЗрддреНрд░реЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХреЗрдВред
SwordData.cs рдЦреЛрд▓реЗрдВ рдФрд░ рдкрд╣рд▓реЗ рдЬреЛрдбрд╝реЗ рдЧрдП рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рддрд╣рдд рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреЛрдбрд╝реЗрдВ:
public string SwordName { get { return swordName; } } public string Description { get { return description; } } public Sprite Icon { get { return icon; } } public int GoldCost { get { return goldCost; } } public int AttackDamage { get { return attackDamage; } }
Sword.cs рдЦреЛрд▓реЗрдВ рдФрд░ рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ:
[SerializeField] private SwordData swordData;
рдпрд╣рд╛рдБ рд╣рдордиреЗ рдЗрд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдЬреЛрдбрд╝рд╛ рд╣реИ:
- рдЗрд╕ рддрд▓рд╡рд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдХрдВрдЯреЗрдирд░ред
- OnMouseDown рдПрдХ рдмрд┐рд▓реНрдЯ-рдЗрди MonoBehaviour рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬрд┐рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрд╛рдИрдВ рдорд╛рдЙрд╕ рдмрдЯрди рджрдмрд╛рддреЗ рд╕рдордп рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
- рд╣рдорд╛рд░реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпреЛрдЧреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐ рд╕реЗ рдбреЗрдЯрд╛ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдЗрд╕рдХреЗ рдЙрджрд╛рд╣рд░рдг
рдПрдХрддрд╛ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВ рдФрд░
рдкрджрд╛рдиреБрдХреНрд░рдо рд╡рд┐рдВрдбреЛ рдкрд░ рдЬрд╛рдПрдВред рддрд▓рд╡рд╛рд░ рдкреНрд░реАрдлрд╝реИрдм рдореЗрдВ 1_Longsword рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рд╡рд┐рдВрдбреЛ рдореЗрдВ Sword.cs рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ Sword рдбреЗрдЯрд╛ рдЪрд░ рдореЗрдВ рдЙрдЪрд┐рдд 1_Longord рдбреЗрдЯрд╛ рдПрд╕реЗрдЯ рдЬреЛрдбрд╝реЗрдВ:
рдПрдХрддрд╛ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдкреНрд▓реЗ (
Ctrl / Cmd + P ) рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рд╕рдмрд╕реЗ рдмрд╛рдИрдВ рдУрд░ рдХреА рддрд▓рд╡рд╛рд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ:
рдХрдВрд╕реЛрд▓ рдХреЛ рдРрд╕реА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдЬреЛ Sword Data рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐ рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рд╕реЗ рдорд┐рд▓рддреА-рдЬреБрд▓рддреА рд╣реЛред
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпреЛрдЧреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рдмрджрд▓рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддреЗ рд╣реИрдВред рддрд▓рд╡рд╛рд░ рдХреЗ рддрд▓рд╡рд╛рд░ рдбреЗрдЯрд╛ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рддрд▓рд╡рд╛рд░ рдбреЗрдЯрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
рдШрдЯрдирд╛ рдпреЛрдЧреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпреЛрдЧреНрдп рд╡рд╕реНрддреБрдПрдБ
рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпреЛрдЧреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛, рдФрд░ рдЖрдкрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдЖрдк рдЧреЗрдо рдХреЗ рдЕрдВрджрд░ рдЗрд╕рдХреЗ рдбреЗрдЯрд╛ рддрдХ рдХреИрд╕реЗ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЕрднреА рднреА UI рдХреЗ рд╕рд╛рде Sword Data рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛!
рдЖрдк рдЗрд╕рдХреЗ рд▓рд┐рдП рддреНрд╡рд░рд┐рдд рдФрд░ рдЧрдВрджреЗ
рд╕рд┐рдВрдЧрд▓рдЯрди рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдиреНрдп рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рд╣реИрдВ ...
... рдЕрд░реНрдерд╛рддреН, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпреЛрдЧреНрдп рд╡рд╕реНрддреБрдПрдБ! рд╣рдо рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрд╡рдЪреНрдЫ рдФрд░ рдмрдбрд╝реЗ рдХрд░реАрдиреЗ рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХреЛрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВрдЧреЗред
рдЗрд╕ рдЦрдВрдб рдореЗрдВ, рдЖрдк рд╕реАрдЦреЗрдВрдЧреЗ рдХрд┐
рдпреВрдирд┐рдЯреАрд╡реЗрдВрдЯ рдХреНрд▓рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧреЗрдо рдЗрд╡реЗрдВрдЯ рдХреИрд╕реЗ рдмрдирд╛рдПрдВред
рдЦреЗрд▓ рдХреА рдШрдЯрдирд╛рдУрдВ рдФрд░ рд╢реНрд░реЛрддрд╛рдУрдВ
рд▓рд┐рдкрд┐рдпреЛрдВ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ, рджреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдПрдБ:
GameEvent.cs рдФрд░
GameEventListener.cs ред рд╡реЗ рдПрдХ-рджреВрд╕рд░реЗ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рджреЛрдиреЛрдВ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
using System.Collections.Generic; using UnityEngine; [CreateAssetMenu(fileName = "New Game Event", menuName = "Game Event", order = 52)]
рдпрд╣рд╛рдБ рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдХреНрдпрд╛ рд╣реИ:
- рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐ рдореЗрдиреВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ GameEvent рдЬреЛрдбрд╝рддрд╛ рд╣реИред
- GameEvent рдПрдХ Scriptable Object рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ ScriptableObject рд╕реЗ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
- GameEventListeners рдХреА рд╕реВрдЪреА GameEvent рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реА рдЬрд╛рдПред
- рд╕рднреА GameEvent рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐ред
- рдЕрдВрддрд┐рдо рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд GameEventListener рдкрд╣рд▓рд╛ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ (рдЕрдВрддрд┐рдо рдмрд╛рд░, рдкрд╣рд▓реЗ рдмрд╛рд╣рд░ рдЖрдУ)ред
- рдкреНрд░рддреНрдпреЗрдХ рдпреВрдирд┐рдЯреАрд╡реЗрдВрдЯ рдЧреЗрдордИрд╡реЗрдВрдЯ рд▓рд╛рдИрд▓реЗрдирд░реНрд╕ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВред
- рдПрдХ рд╡рд┐рдзрд┐ рдЬреЛ GameEventListeners рдХреЛ рдЗрд╕ GameEvent рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред
- рдПрдХ рд╡рд┐рдзрд┐ рдЬреЛ GameEventListeners рдХреЛ рдЗрд╕ GameEvent рд╕реЗ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред
using UnityEngine; using UnityEngine.Events;
рдКрдкрд░ рджрд┐рдЦрд╛рдП рдЧрдП рдХреЛрдб рдореЗрдВ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдЬрд╛рд░реА рд╣реИ:
- рдПрдХрддрд╛ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ред
- GameEvent рдХрд┐ рдпрд╣ GameEventListener рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдЧрд╛ред
- рдЬрдм рдЧреЗрдордИрд╡реЗрдВрдЯ рдЗрд╡реЗрдВрдЯ рдЗрд╕ GameEventListener рдХреЛ рдлреЗрдВрдХрддрд╛ рд╣реИ, рддреЛ рдпреВрдирд┐рдЯреАрдИрд╡реЗрдВрдЯ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЙрдард╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
- рдЗрд╕ GameObject рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдкрд░ GameEventListener рдХреЗ рд▓рд┐рдП рдПрдХ GameEvent рдмрд╛рдВрдзрдирд╛ред
- рдЗрд╕ GameObject рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдкрд░ GameEventListener рд╕реЗ GameEvent рдмрд╛рдВрдзрдирд╛ред
- рдЬрдм рдПрдХ GameEvent рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ GameEventListener рдХреЛ UnityEvent рдШрдЯрдирд╛ рдХрд╣рддрд╛ рд╣реИред
рдХреНрдпрд╛ рдпрд╣ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ? рдХреБрдЫ рднреА рдирд╣реАрдВ, рдЖрдк рдЗрд╕реЗ рд╕рдордп рдХреЗ рд╕рд╛рде рд╕рдордЭ рд▓реЗрдВрдЧреЗ!
рд╕рдВрдкрд╛рджрдХ рдкреНрд░рд╢рд┐рдХреНрд╖рдг
рдПрдХрддрд╛ рд╕рдВрдкрд╛рджрдХ рдкрд░ рд▓реМрдЯреЗрдВ рдФрд░ рд▓рд┐рдкрд┐рдпреЛрдВ рдореЗрдВ рдПрдХ рдирдпрд╛
рдЧреЗрдо рдЗрд╡реЗрдВрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдВ >> ScriptableObjectsред рдлрд┐рд░ рдПрд╕реЗрдЯ рдореЗрдиреВ рд╕реЗ рд╕рд╛рдд рдЧреЗрдо рдЗрд╡реЗрдВрдЯ рдмрдирд╛рдПрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкреНрд░рддреНрдпреЗрдХ рддрд▓рд╡рд╛рд░ рдбреЗрдЯрд╛ рдПрд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдерд╛ред рдЙрдиреНрд╣реЗрдВ рдирдП рдЧреЗрдо рдЗрд╡реЗрдВрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд░рдЦреЗрдВред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ
рд╕рд╛рде Sword.cs рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЕрдВрджрд░ рдХреЛрдб рдмрджрд▓реЗрдВ:
[SerializeField] private GameEvent OnSwordSelected;
рдпрд╣ рдХреЛрдб рддрд▓рд╡рд╛рд░ рд╡реНрдпрд╛рдкрд╛рд░реА рдХреА рджреБрдХрд╛рди рдореЗрдВ рджреЛ рд╕рдВрднрд╛рд╡рдирд╛рдПрдБ рдЬреЛрдбрд╝рддрд╛ рд╣реИ:
- рддрд▓рд╡рд╛рд░ рдЪреБрдирддреЗ рд╕рдордп рдЧреЗрдо рдЗрд╡реЗрдВрдЯ рдХреА рдкреАрдврд╝реАред
- рдИрд╡реЗрдВрдЯ рдкреАрдврд╝реА рдЬрдм рдЖрдк рддрд▓рд╡рд╛рд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВред
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕рд╣реЗрдЬреЗрдВред рдЕрдм, рддрд▓рд╡рд╛рд░ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдкрджрд╛рдиреБрдХреНрд░рдо GameObject рдореЗрдВ, рдЗрд╕реА OnSwordSelected рдИрд╡реЗрдВрдЯ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред
рдкреНрд░рддреНрдпреЗрдХ рддрд▓рд╡рд╛рд░ рдореЗрдВ рдЕрдм рдЙрд╕ рдШрдЯрдирд╛ рдХреА рдПрдХ рдХрдбрд╝реА рд╣реЛрддреА рд╣реИ рдЬреЛ рддрд▓рд╡рд╛рд░ рдХреЛ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░ рдЪрд╛рд▓реВ рд╣реЛ рдЬрд╛рддреА рд╣реИред
рдпреВрдЖрдИ рдПрдХреАрдХрд░рдг
рдЕрдм рдЖрдкрдХреЛ рдпреВрдЖрдИ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдорд╛рд░рд╛ рд▓рдХреНрд╖реНрдп рдкреНрд░рддреНрдпреЗрдХ рддрд▓рд╡рд╛рд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╕рдордп рд╕рдВрдмрдВрдзрд┐рдд рд╕реНрд╡реЙрд░реНрдб рдбреЗрдЯрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рд╣реИред
рдпреВрдЖрдИ рд▓рд┐рдВрдХ
UI рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ UI рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЖрдЗрдП
SwordMerchant.cs рдирд╛рдордХ рдПрдХ рдирдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ
рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕ рдирдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ:
using UnityEngine; using UnityEngine.UI; public class SwordMerchant : MonoBehaviour { [SerializeField] private Text swordName;
рдЗрд╕ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдордиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреЛрдбрд╝рд╛:
- NameText рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдкрд╛рда рдШрдЯрдХ рдХрд╛ рд╕рдВрджрд░реНрднред
- DescriptionText рдЦреЗрд▓ рд╡рд╕реНрддреБ рдХреЗ рдкрд╛рда рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХред
- Sword_Icon рдЦреЗрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЫрд╡рд┐ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХред
- рдЧреЛрд▓реНрдбрдЯреЗрдХреНрд╕реНрдЯ рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЯреЗрдХреНрд╕реНрдЯ рдХрдВрдкреЛрдиреЗрдВрдЯ рдХрд╛ рд▓рд┐рдВрдХред
- AttackText рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЯреЗрдХреНрд╕реНрдЯ рдХрдВрдкреЛрдиреЗрдВрдЯ рдХрд╛ рд▓рд┐рдВрдХред
рдЙрдкрд░реЛрдХреНрдд рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ Hierarchy рд╡рд┐рдВрдбреЛ рдХреЗ
SwordMerchantCanvas >> SwordMerchantPanel рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИрдВред GameObject
SwordMerchantCanvas рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛрдбрд╝реЗрдВ, рдФрд░ рдлрд┐рд░ рд╕рднреА рд▓рд┐рдВрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ:
рд╢реНрд░реЛрддрд╛рдУрдВ рдФрд░ рдпреВрдЖрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдВ
рд╕рднреА рддрд▓рд╡рд╛рд░реЛрдВ рдХреА рдПрдХ рдШрдЯрдирд╛ рд╣реИ рдХрд┐ UI
рдЧреЗрдордПрд╡реЗрдВрдЯрд▓рд┐рд╕реНрдЯрдирд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рджрд╕реНрдпрддрд╛ рд▓реЗ рд╕рдХрддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ OnSwordSelected рдИрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП GameObject
SwordMerchantCan.in рдореЗрдВ рдПрдХ
GameEventListener рдЬреЛрдбрд╝реЗрдВ:
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдорд╛рд░реЗ рдЧреЗрдо рдИрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛ рдХреЗ рдкрд╛рд╕ рджреЛ рдлрд╝реАрд▓реНрдб рд╣реИрдВ: рдЧреЗрдо рдИрд╡реЗрдВрдЯ рдЗрд╡реЗрдВрдЯ рдЬрд┐рд╕реЗ рд╡рд╣ рд╕реБрдирддрд╛ рд╣реИ, рдФрд░ рдЧреЗрдо рдЗрд╡реЗрдВрдЯ рдЬреЗрдирд░реЗрдЯ рд╣реЛрдиреЗ рдкрд░ рдЬреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реЛрддреА рд╣реИред
рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдпреВрдЖрдИ рджреНрд╡рд╛рд░рд╛ рдЕрдкрдбреЗрдЯ рдХреА рдЬрд╛рдПрдЧреАред рдирд┐рдореНрди рд╡рд┐рдзрд┐
SwordMerchant.cs рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
public void UpdateDisplayUI(SwordData swordData) { swordName.text = swordData.SwordName; description.text = swordData.Description; icon.sprite = swordData.Icon; goldCost.text = swordData.GoldCost.ToString(); attackDamage.text = swordData.AttackDamage.ToString(); }
рдЗрд╕ рдкрджреНрдзрддрд┐ рд╕реЗ рдПрдХ Sword Data рд╕рдВрдкрддреНрддрд┐ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИ, рдФрд░ рдлрд┐рд░ рдкреНрд░рддреНрдпреЗрдХ UI рдлрд╝реАрд▓реНрдб рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд Sword рдбреЗрдЯрд╛ рдлрд╝реАрд▓реНрдб рдХреЗ рдорд╛рди рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐
рдЧреЛрд▓реНрдбрдХреЙрд╕реНрдЯ рдФрд░
рдЕрдЯреИрдХрдбреИрдореЗрдЬ рдПрдХ
int
рд╡рд╛рдкрд╕ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕реЗ рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╣рдорд╛рд░реА рдирдИ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдкреНрд░рддреНрдпреЗрдХ
GameEventListener рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛
рдЬреЛрдбрд╝реА рдЧрдИ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ
рдХреЛрдИ рдирд╣реАрдВ (рдСрдмреНрдЬреЗрдХреНрдЯ) рдлрд╝реАрд▓реНрдб рдХреЗ рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдорд╛рд░реЗ
SwordMerchantCanvas рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рдбреНрд░реЙрдк-рдбрд╛рдЙрди рдореЗрдиреВ рд╕реЗ
рд░реЗрдВрдбрдо рдУрдирд▓реА рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪреА рдХреЗ рджрд╛рдИрдВ рдУрд░
SwordMerchant.UpdateDisplayUI рдЪреБрдиреЗрдВред
рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ
OnSwordSelected рдИрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП рд╕рд╣реА Sword рдбреЗрдЯрд╛ рдПрд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдЕрдм рд╣рдо рдЦреЗрд▓ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддрд▓рд╡рд╛рд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдпреВрдЖрдИ рддрджрдиреБрд╕рд╛рд░ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ!
рдЪреВрдВрдХрд┐ рд╣рдо рдЧреЗрдо рдЗрд╡реЗрдВрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЖрдк рдмрд╕
SwordMerchantCanvas рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╕рдм рдХреБрдЫ рдЕрднреА рднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдХреЗрд╡рд▓ рдпреВрдЖрдИ рдХреЗ рдмрд┐рдирд╛ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рддрд▓рд╡рд╛рд░ рдкреНрд░реАрдлреИрдмреНрд╕
SwordMerchantCanvas рд╕реЗ рдЕрд▓рдЧ рд╣реИрдВред
рдЖрдЧреЗ рдХрд╣рд╛рдБ рдЬрд╛рдирд╛ рд╣реИ?
рдпрджрд┐ рдЖрдк рдХрд╣рд╛рдиреА рдХреЗ рджреМрд░рд╛рди рдХреБрдЫ рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк
рддреИрдпрд╛рд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ
рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рд╣реИред
рдпрджрд┐ рдЖрдк рдЖрдЧреЗ рдмрдврд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░рддреНрдпреЗрдХ рддрд▓рд╡рд╛рд░ рдХреЛ рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рдзреНрд╡рдирд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рддрд▓рд╡рд╛рд░ рдбреЗрдЯрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдФрд░
OnSwordSelected
рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реБрдирдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
рдПрдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рд╣рдорд╛рд░реА рдПрдХрддрд╛
рд╡реАрдбрд┐рдпреЛ рд╢реНрд░реГрдВрдЦрд▓рд╛ рджреЗрдЦреЗрдВ рдпрд╛
рдПрдХрддрд╛ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдкрдврд╝реЗрдВред