UE4 | рдорд▓реНрдЯреАрдкреНрд▓реЗрдпрд░ рдХреЗ рд▓рд┐рдП рдЗрдиреНрд╡реЗрдВрдЯрд░реА # 1 | DataAsset рдкрд░ рдбреЗрдЯрд╛ рд╡реЗрдпрд░рд╣рд╛рдЙрд╕

рд▓реЗрдЦреЛрдВ рдХреА рд╕реВрдЪреА

UE4 | рдорд▓реНрдЯреАрдкреНрд▓реЗрдпрд░ рдХреЗ рд▓рд┐рдП рдЗрдиреНрд╡реЗрдВрдЯрд░реА # 1 | DataAsset рдкрд░ рдбреЗрдЯрд╛ рд╡реЗрдпрд░рд╣рд╛рдЙрд╕
UE4 | рдорд▓реНрдЯреАрдкреНрд▓реЗрдпрд░ # 2 рдХреЗ рд▓рд┐рдП рдЗрдиреНрд╡реЗрдВрдЯрд░реА | рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рдХреЛ C ++ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ
UE4 | рдорд▓реНрдЯреАрдкреНрд▓реЗрдпрд░ рдХреЗ рд▓рд┐рдП рдЗрдиреНрд╡реЗрдВрдЯрд░реА # 3 | рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рд╕рдВрд░рдЪрдирд╛
UE4 | рдорд▓реНрдЯреАрдкреНрд▓реЗрдпрд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдг # 4 | рдХрдВрдЯреЗрдирд░ рдмрдирд╛рдирд╛ рдФрд░ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛
UE4 | рдорд▓реНрдЯреАрдкреНрд▓реЗрдпрд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдг # 5 | рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдмреАрдЪ рд╕реВрдЪрдирд╛ рд╣рд╕реНрддрд╛рдВрддрд░рдг




DataAsset рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рднрдВрдбрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛рд╕реЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рдЕрд░реНрде рдФрд░ рдХрд╛рд░реНрдпрдкреНрд░рдгрд╛рд▓реА рдХреЛ рдкреНрд░рдХрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛, рдФрд░ рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдЕрднрд┐рдиреЗрддрд╛рдУрдВ рдФрд░ рдЙрдирдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИред




рдереЛрдбрд╝рд╛ рдкрд░рд┐рдЪрдп рдЫреЛрдбрд╝реЗрдВ

рд▓рдЧрднрдЧ 2 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдПрдХ рдЧреЗрдо рдмрдирд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдореЗрдВ, рдЗрд╕рдиреЗ рдореЗрд░реА рдорджрдж рдХреА рдХрд┐ рдореИрдВ рдЧрд▓рддреА рд╕реЗ рдЕрд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЗрдВрдЬрди 4 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкрд░ рдареЛрдХрд░ рдЦрд╛ рдЧрдпрд╛ рдФрд░ рдкрдврд╝рд╛ рдХрд┐ рдпрд╣ рдХрд┐рддрдирд╛ рд╢рд╛рдВрдд рдФрд░ рд╕рд░рд▓ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдЬреЛ рдЗрдВрдЬрди рд╕реЗ рд╡рд░реНрдХрдкреАрд╕ рдХреЗ рдорд╛рдирдХ рд╕реЗрдЯ рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рд╕рдВрд╢реЛрдзрди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ, рдЬреЛ рдХреБрдЫ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб (рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдЗрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛) рдирд╣реАрдВ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреНрдЮрд╛рди рдХреА рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рд╛рде, рд╕реБрдкрд░-рдореЗрдЧрд╛ рдЧреЗрдо рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЗрдЪреНрдЫрд╛ рдзреАрд░реЗ-рдзреАрд░реЗ рдПрдХ рд╢реМрдХ рдореЗрдВ рдмрдврд╝реАред 3 рдбреА рдореЙрдбрд▓рд┐рдВрдЧ рдФрд░ рдПрдиреАрдореЗрд╢рди рд╕реЗ, рдФрд░ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЦреЗрд▓ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреА рд╕рднреА рдкрд░рддреЛрдВ рдХреЛ рдЙрдард╛рдирд╛ рдереЛрдбрд╝рд╛ рд╕рдВрднрд╡ рдЙрджреНрдпрдо рд▓рдЧрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдорд╕реНрддрд┐рд╖реНрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫреА рдХрд╕рд░рдд рд╣реИред


рдЖрдкрдиреЗ рдХреБрдЫ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХреНрдпреЛрдВ рдХрд┐рдпрд╛? .. рд╢рд╛рдпрдж рдЙрд╕реА рд╡рдЬрд╣ рд╕реЗред рдкреНрд░рд╕реНрддреБрдд рдореИрдиреБрдЕрд▓ рдпрд╛ рддреЛ рдмрд╣реБрдд рд╕рддрд╣реА рдЬреНрдЮрд╛рди рджреЗрддреЗ рд╣реИрдВ (рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╣реИрдВ), рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рдмрд╣реБрдд рд╣реА рдкреЗрд╢реЗрд╡рд░ рдХреЗ рд▓рд┐рдП рдФрд░ рдХреЗрд╡рд▓ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рд░реНрджреЗрд╢ рд╣реЛрддреЗ рд╣реИрдВред


рд╢реБрд░реБрдЖрдд рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИред рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛ рдХрд┐ рдореИрдВ рд╣рдореЗрд╢рд╛ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдпрдерд╛рд╕рдВрднрд╡ рдпрдерд╛рд╕рдВрднрд╡ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВред


рдмреЗрд╢рдХ, рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЙрдкрдХрд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рдмрдВрдж рдмреЙрдХреНрд╕ рд╣реЛрдиреЗ рдкрд░, рдпрд╣ рд╕рдордЭрдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдирдХреА рдорджрдж рд╕реЗ рдХреНрдпрд╛ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рддреЛ рдЪрд▓реЛ рдЗрд╕ рдмреЙрдХреНрд╕ рдХреЛ рдЦреЛрд▓реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдЕрдВрджрд░ рдХреНрдпрд╛ рд╣реИред




рдЬрд╡рд╛рдм рджреЗрдиреЗ рд╡рд╛рд▓рд╛ рдкрд╣рд▓рд╛ рд╕рд╡рд╛рд▓ред рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреНрдпреЛрдВ?


  1. рдмрд╣реБрдд рдмрд╛рд░ рд▓реЗрдЦ рдФрд░ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рдЖрдк рдбреЗрдЯрд╛рдЯреЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдмреБрд░рд╛ рдХреНрдпреЛрдВ рд╣реИ? рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдкрддрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЙрд╕рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд▓реЗ рдЬрд╛рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╕рд╣рдордд - рдЕрд╕рд╣рдЬ? рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд╕рд╛рде, рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд╕рднреА рд╕рдВрдЪрд╛рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред рдпрджрд┐ рдЖрдк рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЖрд╢реНрд╡рд╕реНрдд рд╣реИрдВ, рддреЛ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЖрдк рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
  2. рджреВрд╕рд░рд╛ рдирд┐рд░реНрд╡рд┐рд╡рд╛рдж рд▓рд╛рдн рдЬрдЯрд┐рд▓ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ, рдЬреИрд╕реЗ рд╕рдВрд░рдЪрдирд╛рдУрдВ (рд╕рдВрд░рдЪрдирд╛) рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред

рдЕрдм рд░рд┐рд╢реНрддреЗрджрд╛рд░ рдиреБрдХрд╕рд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рджреЗрдЦрддрд╛ рд╣реВрдВред рдпрд╣ C ++ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред


рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдП рдмрд┐рдирд╛ рдЖрдк рдХреБрдЫ рднреА рдорд╣рд╛рдХрд╛рд╡реНрдп рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рддреЛ рдпрд╣ рдПрдХ рдЦрд╛рдореА рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред


рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рднрдВрдбрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрднрд┐рдиреЗрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реИ -ред рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди C ++ рд╕реАрдЦрдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рди рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рдмрд╣рд╛рдиреЗ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ, рдФрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдПрдХ рдореГрдд рдЕрдВрдд рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд░рдЦрддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рдЖрд╢реНрд╡рд╕реНрдд рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреА рдЬрд░реВрд░рдд рдХреА рд╕рднреА рдЪреАрдЬреЗрдВ рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рдкрд░ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рддреЛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред




рдЕрдм рдЬрдм рдЖрдк рдкрд╣рд▓реЗ рд╣реА рдорд╛рди рдЪреБрдХреЗ рд╣реИрдВ рдХрд┐ DataAsset рдЕрдЪреНрдЫрд╛ рд╣реИ, рддреЛ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред


рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЕрднреА рднреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ 'рдЯреИрдВрдХ рдореЗрдВ рдирд╣реАрдВ' рд╣реИрдВ
рдпреВрдИ 4 рдХреЛ рд╕рдорд░реНрдкрд┐рдд рд░реВрд╕реА-рднрд╛рд╖рд╛ рдордВрдЪ рдкрд░ рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдФрд░ рдЪрд┐рддреНрд░реЛрдВ рдХрд╛ рдмрд╣реБрдд рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рд╣реИред рдмрд╕ рдХреЗ рд▓рд┐рдП "UE4 DataAsset" рдЧреВрдЧрд▓ ред рдЙрдиреНрд╣реЛрдВрдиреЗ рд▓рдЧрднрдЧ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдЗрд╕ рдореИрдиреБрдЕрд▓ рдХреА рдмреБрдирд┐рдпрд╛рджреА рдмрд╛рддреЛрдВ рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХреАред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, UDataAsset рд╕реЗ рдЪрд╛рдЗрд▓реНрдб рдХреА рддрд░рд╣ C ++ рдХреНрд▓рд╛рд╕ рдмрдирд╛рдПрдВ ред
(рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╕рднреА рдХреЛрдб рдореЗрд░реЗ рдЕрдЬрдиреНрдореЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдмрд╕ рдЖрдк рдЬреИрд╕реЗ рдЪрд╛рд╣реЗрдВ рдирд╛рдореЛрдВ рдХреЛ рдмрджрд▓ рджреЗрдВред)


/// Copyright 2018 Dreampax Games, Inc. All Rights Reserved. #pragma once /* Includes from Engine */ #include "Engine/DataAsset.h" #include "Engine/Texture2D.h" #include "GameplayTagContainer.h" /* Includes from Dreampax */ //no includes #include "DreampaxItemsDataAsset.generated.h" UCLASS(BlueprintType) class DREAMPAX_API UDreampaxItemsDataAsset : public UDataAsset { GENERATED_BODY() } 

рдЕрдм, рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдк рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдХрд░рдирд╛ рдЬрд▓реНрджрдмрд╛рдЬреА рд╣реЛрдЧреА ... рдЕрднреА рддрдХ рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдбрдореА рд╣реИред рдпрджреНрдпрдкрд┐, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдмрдирд╛рд╡рдЯ рдФрд░ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд╣рд▓реЗ рд╣реА рдмрдирд╛рдпреЗ рдЬрд╛ рдЪреБрдХреЗ рд╣реИрдВред




рдЗрд╕ рдХреНрд╖рдг рд╕реЗ, рдЖрдк рдЕрдкрдиреЗ рднрдВрдбрд╛рд░ рдХрд╛ рдврд╛рдВрдЪрд╛ рдмрдирд╛рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕реЗ рдХрдИ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрддреНрдпрдзрд┐рдХ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рддреБрд░рдВрдд рдЖрдкрдХреЗ рднрдВрдбрд╛рд░рдг рдХреЛ рди рднрд░реЗрдВред рддреАрди рд╕реЗ рдкрд╛рдВрдЪ рддрддреНрд╡, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрдиреНрд╡реЗрдВрдЯреНрд░реА рдЖрдЗрдЯрдо, рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдХрднреА-рдХрднреА, рд╕рдВрдХрд▓рди рдХреЗ рдмрд╛рдж, рдЖрдкрдХрд╛ рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рд╡рд░реНрдЬрд┐рди рдЦрд╛рд▓реА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдмреЗрд╣рдж рдЕрдкреНрд░рд┐рдп рд╣реИ рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рджрд░реНрдЬрди рдпрд╛ рджреЛ рдкрджреЛрдВ рдХреЛ рднрд░ рдЪреБрдХреЗ рд╣реИрдВред


рдЖрдк рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реАрдзреЗ рдПрдХ рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕реЗ рдХрд╣реАрдВ рдФрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред рдЖрдорддреМрд░ рдкрд░, рдореИрдВ рдЗрд╕реЗ рдПрдХ рдЕрд▓рдЧ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ "SrtuctName.h" рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдЬрд╣рд╛рдВ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рдЗрд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реВрдВ ред


рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ
 USTRUCT(BlueprintType) struct FItemsDatabase { GENERATED_USTRUCT_BODY() /* Storage for any float constant data */ UPROPERTY(EditDefaultsOnly, Category = "ItemsDatabase") TMap<FGameplayTag, float> ItemData; /* Gameplay tag container to store the properties */ UPROPERTY(EditDefaultsOnly, Category = "ItemsDatabase") FGameplayTagContainer ItemPropertyTags; /* Texture for showing in the inventory */ UPROPERTY(EditDefaultsOnly, Category = "ItemsDatabase") UTexture2D* IconTexture; /* The class put on the Mesh on the character */ UPROPERTY(EditDefaultsOnly, Category = "ItemsDatabase") TSubclassOf<class ADreampaxOutfitActor> ItemOutfitClass; /* The class to spawn the Mesh in the level then it is dropped */ UPROPERTY(EditDefaultsOnly, Category = "ItemsDatabase") TSubclassOf<class ADreampaxPickupActor> ItemPickupClass; //TODO internal call functions }; 

TMap рдХреЗ рд╕рд╛рде рдЦрд╛рддреЗ рд╣реИрдВ ред рджреЛрд╣рд░рд╛рдпрд╛ рдирд╣реАрдВ рдЧрдпрд╛! рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред


рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореИрдВ FName рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ ред рдЖрдзреБрдирд┐рдХ рд░реБрдЭрд╛рдиреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, FGameplayTag рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдзрд┐рдХ рд╕рд╣реА рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрд╛рдлреА рддреНрд░реБрдЯрд┐ рдХреЗ рдЬреЛрдЦрд┐рдо рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрдИ рдлрд╛рдпрджреЗ рд╣реИрдВ рдЬреЛ рдмрд╛рдж рдореЗрдВ рдХрд╛рдо рдЖрдПрдВрдЧреЗред


рд╕рдВрдкрд╛рджрдХ рдореЗрдВ GameplayTag
GameplayTag

GameplayTag рдХреЗ рд▓рд┐рдП DataTable Excel рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЧрдпрд╛
DataTable

рдпрд╣ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдЪрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдЕрдЪреНрдЫрд╛ рдЕрднреНрдпрд╛рд╕ рд╣реИ , рдЬреИрд╕реЗ рдЧреЗрдЯрд╕рдореЗрд▓рд┐рдВрдЧ () ред рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░, рдореБрдЭреЗ рдЕрднреА рднреА рдЕрдкрдиреА рдкрд░рд╡рд░рд┐рд╢ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ, рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдРрд╕реА рдХреЛрдИ рдХреЙрд▓ рдирд╣реАрдВ рдХреА рд╣реИред


рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рд╕реА рдЕрдиреНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
 USTRUCT(BlueprintType) struct FBlocksDatabase { GENERATED_USTRUCT_BODY() /* The class put on the Mesh for the building block */ UPROPERTY(EditDefaultsOnly, Category = "BlocksDatabase") TSubclassOf<class ADreampaxBuildingBlock> BuildingBlockClass; UPROPERTY(EditDefaultsOnly, Category = "BlocksDatabase") FVector DefaultSize; UPROPERTY(EditDefaultsOnly, Category = "BlocksDatabase") FVector SizeLimits; UPROPERTY(EditDefaultsOnly, Category = "BlocksDatabase") TArray<class UMaterialInterface *> BlockMaterials; FORCEINLINE TSubclassOf<class ADreampaxBuildingBlock> * GetBuildingBlockClass() { return &BuildingBlockClass; } FORCEINLINE FVector GetDefaultSize() { return DefaultSize; } FORCEINLINE FVector GetSizeLimits() { return SizeLimits; } FORCEINLINE TArray<class UMaterialInterface *> GetBlockMaterials() { return BlockMaterials; } }; 

рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ рдбреЗрдЯрд╛рдмреЗрд╕ рдШреЛрд╖рдгрд╛ рд╣реИ:


 UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "ItemsDatabase") TMap<FGameplayTag, FItemsDatabase> ItemsDataBase; 

рдЕрдм рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣рдорд╛рд░рд╛ рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рднрд░ рд╕рдХрддреЗ рд╣реИрдВред


DataAsset рдЙрджрд╛рд╣рд░рдг рднрд░реЗрдВ
DataAsset рдЙрджрд╛рд╣рд░рдг рднрд░реЗрдВ

рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдФрд░ рдХреЙрд▓ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦреЗрдВрдЧреЗред


DreampaxItemsDataAsset.h
 /// Copyright 2018 Dreampax Games, Inc. All Rights Reserved. #pragma once /* Includes from Engine */ #include "Engine/DataAsset.h" #include "Engine/Texture2D.h" #include "GameplayTagContainer.h" /* Includes from Dreampax */ //no includes #include "DreampaxItemsDataAsset.generated.h" USTRUCT(BlueprintType) struct FItemsDatabase { GENERATED_USTRUCT_BODY() /* Storage for any float constant data */ UPROPERTY(EditDefaultsOnly, Category = "ItemsDatabase") TMap<FGameplayTag, float> ItemData; /* Gameplay tag container to store the properties */ UPROPERTY(EditDefaultsOnly, Category = "ItemsDatabase") FGameplayTagContainer ItemPropertyTags; /* Texture for showing in the inventory */ UPROPERTY(EditDefaultsOnly, Category = "ItemsDatabase") UTexture2D* IconTexture; /* The class put on the Mesh on the character */ UPROPERTY(EditDefaultsOnly, Category = "ItemsDatabase") TSubclassOf<class ADreampaxOutfitActor> ItemOutfitClass; /* The class to spawn the Mesh in the level then it is dropped */ UPROPERTY(EditDefaultsOnly, Category = "ItemsDatabase") TSubclassOf<class ADreampaxPickupActor> ItemPickupClass; //TODO internal call functions }; UCLASS(BlueprintType) class DREAMPAX_API UDreampaxItemsDataAsset : public UDataAsset { GENERATED_BODY() protected: /* This GameplayTag is used to find a Max size of the stack for the Item. This tag can be missed in the ItemData */ UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "ItemsDatabase") FGameplayTag DefaultGameplayTagForMaxSizeOfStack; /* This is the main Database for all Items. It contains constant common variables */ UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "ItemsDatabase") TMap<FGameplayTag, FItemsDatabase> ItemsDataBase; public: FORCEINLINE TMap<FGameplayTag, float> * GetItemData(const FGameplayTag &ItemNameTag); FORCEINLINE FGameplayTagContainer * GetItemPropertyTags(const FGameplayTag &ItemNameTag); /* Used in the widget */ UFUNCTION(BlueprintCallable, Category = "ItemDatabase") FORCEINLINE UTexture2D * GetItemIconTexture(const FGameplayTag & ItemNameTag) const; FORCEINLINE TSubclassOf<class ADreampaxOutfitActor> * GetItemOutfitClass(const FGameplayTag & ItemNameTag); FORCEINLINE TSubclassOf<class ADreampaxPickupActor> * GetItemPickupClass(const FGameplayTag & ItemNameTag); int GetItemMaxStackSize(const FGameplayTag & ItemNameTag); FORCEINLINE bool ItemIsFound(const FGameplayTag & ItemNameTag) const; }; 

DreampaxItemsDataAsset.spp
 /// Copyright 2018 Dreampax Games, Inc. All Rights Reserved. #include "DreampaxItemsDataAsset.h" /* Includes from Engine */ // no includes /* Includes from Dreampax */ // no includes TMap<FGameplayTag, float>* UDreampaxItemsDataAsset::GetItemData(const FGameplayTag & ItemNameTag) { return & ItemsDataBase.Find(ItemNameTag)->ItemData; } FGameplayTagContainer * UDreampaxItemsDataAsset::GetItemPropertyTags(const FGameplayTag & ItemNameTag) { return & ItemsDataBase.Find(ItemNameTag)->ItemPropertyTags; } UTexture2D* UDreampaxItemsDataAsset::GetItemIconTexture(const FGameplayTag &ItemNameTag) const { if (ItemNameTag.IsValid()) { return ItemsDataBase.Find(ItemNameTag)->IconTexture; } return nullptr; } TSubclassOf<class ADreampaxOutfitActor>* UDreampaxItemsDataAsset::GetItemOutfitClass(const FGameplayTag &ItemNameTag) { return & ItemsDataBase.Find(ItemNameTag)->ItemOutfitClass; } TSubclassOf<class ADreampaxPickupActor>* UDreampaxItemsDataAsset::GetItemPickupClass(const FGameplayTag &ItemNameTag) { return & ItemsDataBase.Find(ItemNameTag)->ItemPickupClass; } int UDreampaxItemsDataAsset::GetItemMaxStackSize(const FGameplayTag & ItemNameTag) { // if DefaultGameplayTagForMaxSizeOfStack is missed return 1 for all items if (!DefaultGameplayTagForMaxSizeOfStack.IsValid()) { return 1; } int MaxStackSize = floor(GetItemData(ItemNameTag)->FindRef(DefaultGameplayTagForMaxSizeOfStack)); if (MaxStackSize > 0) { return MaxStackSize; } // if Tag for MaxStackSize is "0" return 1 return 1; } bool UDreampaxItemsDataAsset::ItemIsFound(const FGameplayTag & ItemNameTag) const { if (ItemsDataBase.Find(ItemNameTag)) { return true; } return false; } 

рдорд▓реНрдЯреАрдкреНрд▓реЗрдпрд░ рд╕реЗ рдЕрднреА рднреА рдХреБрдЫ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдкрд╣рд▓рд╛ рдХрджрдо рд╣реИ рдЬреЛ рд╕рд╣реА рджрд┐рд╢рд╛ рдореЗрдВ рдЙрдард╛рдпрд╛ рдЧрдпрд╛ рд╣реИред


рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ C ++ рдореЗрдВ рдбреЗрдЯрд╛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП DataAsset (рд╣рд╛рдБ, рдФрд░ рдХрд┐рд╕реА рднреА рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ ) рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ рдФрд░ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХреМрди рд╕рд╛ рд╕рдмрд╕реЗ рд╕рд╣реА рд╣реИред


рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрд┐рд╕реА рднреА рдкрд╣рд▓реВ рдХреЛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдкреНрд░рдХрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╢реНрди рдпрд╛ рд╕реБрдЭрд╛рд╡ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗрдВред

Source: https://habr.com/ru/post/hi418913/


All Articles