рдЕрд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЗрдВрдЬрди 4 рдореЗрдВ UObject рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░

рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░! рдореЗрд░рд╛ рдирд╛рдо рдЕрд▓реЗрдХреНрдЬреЗрдВрдбрд░ рд╣реИ, рдореИрдВ 5 рд╕рд╛рд▓ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд╕реЗ рдЕрд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЗрдВрдЬрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рд▓рдЧрднрдЧ рд╕рднреА рд╕рдордп - рдиреЗрдЯрд╡рд░реНрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рд╛рдеред

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



рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВрдиреЗ рд▓реЗрдЦ рдХреЛ рд╕рдВрджрд░реНрдн рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдзрд┐рдХ рд▓рд┐рдЦрд╛ред рдЕрдзрд┐рдХрд╛рдВрд╢ рдЬрд╛рдирдХрд╛рд░реА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдпрд╛ рд╕рдореБрджрд╛рдп рдореЗрдВ рдЦреЛрдЬрдирд╛ рдмреЗрд╣рдж рдХрдард┐рди рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рдЖрдк рд▓рд┐рдВрдХ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡рд╛рдВрдЫрд┐рдд рдХреЛрдб рдХреЙрдкреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдЖрдкрдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕реА рд╕рдордп рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛! рд▓реЗрдЦ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖рд┐рдд рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА UE4 рд╕реЗ рдереЛрдбрд╝рд╛ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВред C ++ рдХреЛрдб рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕реЗ рдЬрд╛рдирдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рдЖрдк рдмрд╕ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдЪреАрдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рдм рдХреБрдЫ рдХреЙрдкреА рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рдЖрдк рдЖрд╡рд╢реНрдпрдХ рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдиреБрднрд╛рдЧ рд╕реЗ рдХреЛрдб рдкреЗрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред



UObject рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛


UObject рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рд╣реИ рдЬреЛ рдЕрд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЗрдВрдЬрди рдореЗрдВ рд╣реИ 4. рдЖрдкрдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдпрд╛ рдХреЗрд╡рд▓ рд╕реНрдореГрддрд┐ рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рд╡рд┐рд╢рд╛рд▓ рдмрд╣реБрдордд рдЗрд╕рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ: рдордВрдЪ рдкрд░ рд╡рд╕реНрддреБрдПрдВ (рдПрдХреНрдЯрд░), рдШрдЯрдХ (UActorComponent), рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдбреЗрдЯрд╛ рдФрд░ рдЕрдиреНрдпред

рдХрдХреНрд╖рд╛ рд╣реА, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдбреЗрд░рд┐рд╡реЗрдЯрд┐рд╡ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЖрд╕рд╛рди рд╣реИ, рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрд╛рдлреА рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕рдореЗрдВ рдХрдИ рдЙрдкрдпреЛрдЧреА рдШрдЯрдирд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдЪрд░ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдмрджрд▓рдирд╛ рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдп, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд░рд┐рдп рдирд╣реАрдВ рд╣реИрдВред

рдЗрд╕ рд╡рд░реНрдЧ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рд╡рд╕реНрддреБрдПрдВ рдордВрдЪ рдкрд░ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕реНрдореГрддрд┐ рдореЗрдВ рдореМрдЬреВрдж рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ рдЕрднрд┐рдиреЗрддрд╛рдУрдВ рдХреЗ рдШрдЯрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдШрдЯрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рд╕реНрд╡рдпрдВ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред

рдЕрдЧрд░ рдПрдПрдХреНрдЯрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореЗрд░реА рдЬрд╝рд░реВрд░рдд рдХреА рд╣рд░ рдЪреАрдЬрд╝ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рддреЛ рдореБрдЭреЗ UObject рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЙрдкрдпреЛрдЧ рдХреЗ рдХрдИ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВред рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╕реВрдЪреА рдЖрдЗрдЯрдо рд╣реИред рдордВрдЪ рдкрд░, рдХрд╣реАрдВ рдЖрдХрд╛рд╢ рдореЗрдВ, рдЙрдиреНрд╣реЗрдВ рд╕реНрдЯреЛрд░ рдХрд░рдирд╛ рдЕрд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рд░реЗрдВрдбрд░ рд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ рдФрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЧреБрдгреЛрдВ рдХреЛ рдмрдирд╛рдП рдмрд┐рдирд╛ рдЙрдиреНрд╣реЗрдВ рдореЗрдореЛрд░реА рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рддрдХрдиреАрдХреА рддреБрд▓рдирд╛ рдкрд╕рдВрдж рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдПрдПрдХрд░ рдПрдХ рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ (1016 рдмрд╛рдЗрдЯреНрд╕) рд▓реЗрддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдЦрд╛рд▓реА рдпреВрдУрдмрдЬреЗрдХреНрдЯ рдХреЗрд╡рд▓ 56 рдмрд╛рдЗрдЯреНрд╕ рд╣реИред



рдПрдХ UObject рд╕рдорд╕реНрдпрд╛ рдХреНрдпрд╛ рд╣реИ?


рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╛ рдореИрдВ рдЕрднреА рдЙрдирдХреЗ рд╕рд╛рдордиреЗ рдирд╣реАрдВ рдЖрдпрд╛ рд╣реВрдВред UObject рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдПрдПрдХреНрдЯрд░ рдпрд╛ рдШрдЯрдХреЛрдВ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдХрдореА рд╣реИред рдпрд╣рд╛рдБ рд╡реЗ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ рдЬреЛ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЕрднреНрдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рдкрд╣рдЪрд╛рдиреА рд╣реИрдВ:

  • UObjects рдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рджреЛрд╣рд░рд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ;
  • рдкрд╣рд▓реЗ рдмрд┐рдВрджреБ рдХреЗ рдХрд╛рд░рдг, рд╣рдо RPC рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ;
  • рдЖрдк рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рдореЗрдВ рджреБрдирд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╡рд╛рд▓реЗ рд╡реНрдпрд╛рдкрдХ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ;
  • рдЙрдирдХреЗ рдкрд╛рд╕ BeginPlay рдФрд░ Tick рдЬреИрд╕реА рдорд╛рдирдХ рдШрдЯрдирд╛рдПрдВ рдирд╣реАрдВ рд╣реИрдВ;
  • рдЖрдк рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рдореЗрдВ UObjects рд╕реЗ AActor рддрдХ рдШрдЯрдХ рдирд╣реАрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗред

рдЬреНрдпрд╛рджрд╛рддрд░ рдЪреАрдЬреЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рд╣рд▓ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВред рд▓реЗрдХрд┐рди рдХреБрдЫ рдЯрд┐рдВрдХрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред



UObject рдмрдирд╛рдирд╛


рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЕрдкрдиреА рдХрдХреНрд╖рд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдЗрдП рд╕рдВрдкрд╛рджрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЬрдирд░реЗрдЯрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╡рд╣ рд╕рдм рдХреБрдЫ рд▓рд┐рдЦ рджреЗ рдЬреЛ рд╣реЗрдбрд░ (.h) рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рд╣рдо рдирдП рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдФрд░ рдирдИ C ++ рдХрдХреНрд╖рд╛ рдХрд╛ рдЪрдпрди рдХрд░рдХреЗ рд╕рд╛рдордЧреНрд░реА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдПрдХ рдирдИ рдХрдХреНрд╖рд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред



рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдХрдХреНрд╖рд╛ рдХреЛ рд╕реНрд╡рдпрдВ рдЪреБрдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдЗрд╕реЗ рдЦреЛрд▓реЗрдВ рдФрд░ UObject рдЪреБрдиреЗрдВред



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

рд╢реБрд░реБрдЖрддреА, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рджреЛ рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рдИ рдЧрдИ рд╣реИрдВ: .h рдФрд░ .ccpред .H рдореЗрдВ, рдЖрдк рдЪрд░ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░реЗрдВрдЧреЗ, рдФрд░ .cpp рдореЗрдВ рдЖрдк рдЙрдирдХреЗ рддрд░реНрдХ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВрдЧреЗред рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рджреЛрдиреЛрдВ рдлрд╛рдЗрд▓реЗрдВ рдЦреЛрдЬреЗрдВред рдпрджрд┐ рдЖрдкрдиреЗ рдкрде рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ / рд╕реНрд░реЛрдд / рдкреНрд░реЛрдЬреЗрдХреНрдЯ / рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЬрдм рддрдХ рд╣рдо рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ, рддрдм рддрдХ рдХрдХреНрд╖рд╛ рдШреЛрд╖рдгрд╛ рдХреЗ рдКрдкрд░ UCLASS () рдореИрдХреНрд░реЛ рдореЗрдВ рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рдпреЛрдЧреНрдп рдкреИрд░рд╛рдореАрдЯрд░ рд▓рд┐рдЦреЗрдВред рдЖрдкрдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдорд┐рд▓рдирд╛ рдЪрд╛рд╣рд┐рдП:

рдЬ

UCLASS(Blueprintable) class MYPROPJECT_API UMyObject : public UObject { GENERATED_BODY() } 

рдЗрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЖрдк рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕ рд╡рд╕реНрддреБ рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╣рд░ рдЪреАрдЬрд╝ рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рджреЗрдЧрд╛ред



UObject рдкреНрд░рддрд┐рдХреГрддрд┐


рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, UObjects рдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рджреЛрд╣рд░рд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдХрдИ рдкреНрд░рддрд┐рдмрдВрдз рддрдм рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ рдЬрдм рдЖрдкрдХреЛ рдкрд╛рд░реНрдЯрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рдпрд╛ рддрд░реНрдХ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рджреБрдирд┐рдпрд╛ рдореЗрдВ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рдЕрд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЗрдВрдЬрди 4 рдореЗрдВ, рдкреНрд░рддрд┐рдХреГрддрд┐ рджреБрдирд┐рдпрд╛ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдХрд╛рд░рдг рдареАрдХ рд╣реЛрддреА рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдмрд╕ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рдмрдирд╛рдирд╛ рдФрд░ рдЙрд╕рдХреА рдирдХрд▓ рдХрд░рдирд╛ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рдПрдХ рд╕реНрд╡рд╛рдореА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬреЛ рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдмреАрдЪ рдСрдмреНрдЬреЗрдХреНрдЯ рдбреЗрдЯрд╛ рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░реЗрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреА рд╡рд╕реНрддреБ рдЪрд░рд┐рддреНрд░ рдХрд╛ рдХреМрд╢рд▓ рд╣реИ, рддреЛ рдЪрд░рд┐рддреНрд░ рдХреЛ рд╣реА рдорд╛рд▓рд┐рдХ рдмрдирдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡рд╣ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рд╕реВрдЪрдирд╛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдВрдбрдХреНрдЯрд░ рднреА рд╣реЛрдЧрд╛ред

рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА рд╡рд╕реНрддреБ рддреИрдпрд╛рд░ рдХрд░реЗрдВред рд╣реЗрдбрд░ рдореЗрдВ рдЕрдм рддрдХ рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

рдЬ

 UCLASS(Blueprintable) class MYPROPJECT_API UMyObject : public UObject { GENERATED_BODY() public: virtual bool IsSupportedForNetworking () const override { return true; }; } 

IsSupportedForNetworking () рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдФрд░ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рд▓рд┐рдЦрд╛ рд╣реИ, рдЖрдкрдХреЛ рдПрдХ рд╕реНрд╡рд╛рдореА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдкреНрд░рдпреЛрдЧ рдХреА рд╢реБрджреНрдзрддрд╛ рдХреЗ рд▓рд┐рдП, рдПрдХ рдПрдПрдХреНрдЯрд░ рдмрдирд╛рдПрдВ рдЬреЛ рдЗрд╕реЗ рджреЛрд╣рд░рд╛рдПрдЧрд╛ред рдпрд╣ рдареАрдХ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ UObject, рдХреЗрд╡рд▓ рдореВрд▓ рд╡рд░реНрдЧ, рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, AActorред

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

рдЕрдВрджрд░ рд╣рдореЗрдВ 3 рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдПрдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░, рд╕рдмреЛрдмреИрдХреНрдЯреНрд╕ рдХреА рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди, рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдПрдПрдХреНрдЯрд░ (рдЪрд░, рд╡рд╕реНрддреБ рд╕рдВрджрд░реНрдн, рдЖрджрд┐) рдХреЗ рдЕрдВрджрд░ рдХреНрдпрд╛ рджреЛрд╣рд░рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╡рд╣ рд╕реНрдерд╛рди рдЬрд╣рд╛рдВ рд╣рдо рдЕрдкрдиреА рд╡рд╕реНрддреБ рдмрдирд╛рддреЗ рд╣реИрдВред

рдПрдХ рд╡реИрд░рд┐рдПрдмрд▓ рдмрдирд╛рдирд╛ рди рднреВрд▓реЗрдВ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╣рдорд╛рд░реА рд╡рд╕реНрддреБ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рдПрдЧреА:

рдЬ

 class MYPROPJECT_API AMyActor : public AActor { GENERATED_BODY() public: AMyActor(); virtual bool ReplicateSubobjects (class UActorChannel *Channel, class FOutBunch *Bunch, FReplicationFlags *RepFlags) override; void GetLifetimeReplicatedProps (TArray<FLifetimeProperty>& OutLifetimeProps) const override; virtual void BeginPlay (); UPROPERTY(Replicated, BlueprintReadOnly, Category="Object") class UMyObject* MyObject; } 

рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрджрд░ рд╣рдореЗрдВ рд╕рдм рдХреБрдЫ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛:

рд╕реАрдкреАрдкреА

 //  #include "MyActor.h" #include "Net/UnrealNetwork.h" #include "Engine/World.h" #include "Engine/ActorChannel.h" #include "   UObject/MyObject.h" AMyActor::AMyActor() { //  Actor  . bReplicates = true // . NetCullDistanceSquared = 99999; //  (  ). NetUpdateFrequency = 1.f; } void AMyActor::GetLifetimeReplicatedProps (TArray<FLifetimeProperty>& OutLifetimeProps) { Super::GetLifetimeReplicatedProps(OutLifetimeProps); //       .           . DOREPLIFETIME(AMyActor, MyObject); } bool AMyActor::ReplicateSubobjects(UActorChannel * Channel, FOutBunch * Bunch, FReplicationFlags * RepFlags) { bool WroteSomething = Super::ReplicateSubobjects(Channel, Bunch, RepFlags); //   . if (MyObject ) WroteSomething |= Channel->ReplicateSubobject(MyObject , *Bunch, *RepFlags); return WroteSomething; } AMyActor::BeginPlay() { /*       (  )  .    this.        . ,       ,     . */ if(HasAuthority()) { MyObject = NewObject<UMyObject>(this); //       if(MyObject) UE_LOG(LogTemp, Log, TEXT("%s created"), *MyObject->GetName()); } } 

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



UObject рдореЗрдВ рдЪрд░ рдХрд╛ рдкреНрд░рддрд┐рдХреГрддрд┐


рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ рдЕрдЧрд░ рдЗрд╕рдореЗрдВ рдРрд╕реА рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдмреАрдЪ рднреА рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рд╣реЛрдЧреАред рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реА рд╡рд╕реНрддреБ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рддрд┐рдХреГрддрд┐ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЪрд░ рдХреЛ рдкрд╛рд░ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╣рдорд╛рд░реЗ рдЕрднрд┐рдиреЗрддрд╛ рдХреЗ рдЕрдВрджрд░ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

рдЬ

 UCLASS(Blueprintable) class MYPROPJECT_API UMyObject : public UObject { GENERATED_BODY() public: virtual bool IsSupportedForNetworking () const override { return true; }; void GetLifetimeReplicatedProps (TArray<FLifetimeProperty>& OutLifetimeProps) const override; UPROPERTY(Replicated, BlueprintReadWrite, Category="Object") int MyInteger; //   } 

рд╕реАрдкреАрдкреА

 //  #include "MyObject.h" #include "Net/UnrealNetwork.h" UMyObject ::UMyObject () { //  Object  .     . bReplicates = true //       ,     . } void UMyObject ::GetLifetimeReplicatedProps (TArray<FLifetimeProperty>& OutLifetimeProps) { Super::GetLifetimeReplicatedProps(OutLifetimeProps); //   Integer  . DOREPLIFETIME(UMyObject, MyInteger); } } 

рдПрдХ рдЪрд░ рдЬреЛрдбрд╝рдХрд░ рдФрд░ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдзреНрд╡рдЬрд╛рдВрдХрд┐рдд рдХрд░рдХреЗ, рд╣рдо рдЗрд╕реЗ рджреЛрд╣рд░рд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ рдФрд░ рдПрдПрдХреНрдЯрд░ рдХреЗ рд╕рдорд╛рди рд╣реИред

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

рд▓рдмреНрдмреЛрд▓реБрдЖрдм рдпрд╣ рд╣реИ рдХрд┐ рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рдХреЗ рд╡рд╛рд░рд┐рд╕ рдореЗрдВ рдмрдирд╛рдП рдЧрдП рдЪрд░ рдХреЛ рджреЛрд╣рд░рд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛ред рдЗрдВрдЬрди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдмреАрдкреА рдореЗрдВ рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдореВрд▓реНрдп рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрд▓рд╛рдЬ рд╣реИред рдмреАрдкреА рдЪрд░ рдХреА рд╕рд╣реА рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред GetLifetimeReplicatedProps () рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЬреЛрдбрд╝реЗрдВ:

рд╕реАрдкреАрдкреА

 void UMyObject ::GetLifetimeReplicatedProps (TArray<FLifetimeProperty>& OutLifetimeProps) { Super::GetLifetimeReplicatedProps(OutLifetimeProps); //   Integer  . DOREPLIFETIME(UMyObject, MyInteger); //       UBlueprintGeneratedClass* BPClass = Cast<UBlueprintGeneratedClass>(GetClass()); if (BPClass) BPClass->GetLifetimeBlueprintReplicationList(OutLifetimeProps); } 

рдмрд╛рд▓ рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдЪрд░ рдЕрдм рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ рджреЛрд╣рд░рд╛рдП рдЬрд╛рдПрдВрдЧреЗред



UObject рдореЗрдВ RPC рдШрдЯрдирд╛рдПрдБ


RPC (рджреВрд░рд╕реНрде рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЙрд▓) рдИрд╡реЗрдВрдЯ рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░реНрдп рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЗ рджреВрд╕рд░реА рддрд░рдл рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рд╕рд░реНрд╡рд░ рд╕реЗ рдЕрдиреНрдп рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рд╕рд░реНрд╡рд░ рдкрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд▓рд┐рдЦрддреЗ рд╕рдордп рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдФрд░ рдЕрдХреНрд╕рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рдЙрдирд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдореИрдВ рдПрдХ рд▓реЗрдЦ рдкрдврд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред рдпрд╣ C ++ рдФрд░ рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред

рдЬрдмрдХрд┐ UObject рдШрдЯрдирд╛рдУрдВ рдореЗрдВ рдЕрднрд┐рдиреЗрддрд╛ рдпрд╛ рдЙрдирдХреЗ рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдШрдЯрдХреЛрдВ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдЬрд╣рд╛рдВ рдЙрдиреНрд╣реЗрдВ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд╣рд╛рдВ рдЬрд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ рд░рд┐рдореЛрдЯ рдХреЙрд▓ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдШрдЯрдХ рдХреЛрдб (UActorComponent) рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рд╣рдо рдХрдИ рдлрд╝рдВрдХреНрд╢рди рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдХреЙрд▓ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ UActorComponent рдХреЛ UObject рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдХреЛрдб рдХреЗ рдЖрд╡рд╢реНрдпрдХ рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреЛ рдХреЙрдкреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреА рд╡рд╕реНрддреБ рдореЗрдВ рдкреЗрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░реЗ:

рдЬ

 //   #include "Engine/EngineTypes.h" UCLASS(Blueprintable) class MYPROPJECT_API UMyObject : public UObject { GENERATED_BODY() public: virtual bool CallRemoteFunction (UFunction * Function, void * Parms, struct FOutParmRec * OutParms, FFrame * Stack) override; virtual int32 GetFunctionCallspace (UFunction* Function, void* Parameters, FFrame* Stack) override; //   } 

рд╕реАрдкреАрдкреА

 //   #include "Engine/NetDriver.h" //       . bool UMyObject::CallRemoteFunction(UFunction * Function, void * Parms, FOutParmRec * OutParms, FFrame * Stack) { if (!GetOuter()) return false; UNetDriver* NetDriver = GetOuter()->GetNetDriver(); if (!NetDriver) return false; NetDriver->ProcessRemoteFunction(GetOuter(), Function, Parms, OutParms, Stack, this); return true; } int32 UMyObject::GetFunctionCallspace(UFunction * Function, void * Parameters, FFrame * Stack) { return (GetOuter() ? GetOuter()->GetFunctionCallspace(Function, Parameters, Stack) : FunctionCallspace::Local); } 

рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде, рд╣рдо RPC рдШрдЯрдирд╛рдУрдВ рдХреЛ рди рдХреЗрд╡рд▓ рдХреЛрдб рдореЗрдВ, рдмрд▓реНрдХрд┐ рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рдореЗрдВ рднреА рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдпрд╛ рд╕рд░реНрд╡рд░ рдИрд╡реЗрдВрдЯ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рд╕реНрд╡рд╛рдореА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХрд╛ рд╕реНрд╡рд╛рдореА рд╣рдорд╛рд░рд╛ рдЦрд┐рд▓рд╛рдбрд╝реА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЪрд░рд┐рддреНрд░ рдпрд╛ рдЙрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реНрд╡рд╛рдореА рдкреНрд▓реЗрдпрд░ рдХрд╛ рдкреНрд▓реЗрдпрд░ рдХрдВрдЯреНрд░реЛрд▓рд░ рд╣реЛрддрд╛ рд╣реИред



рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рдореЗрдВ рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ


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

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

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



рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрд▓рд╛рдЬ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рджреЛред

рдЖрдЗрдП рдкрд╣рд▓реЗ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдХрд▓реНрдк рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рд╣рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рджреБрдирд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рджреЗрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╕рдВрдкрд╛рджрдХ рд╕рдордЭ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдЦреЗрд▓ рдореЗрдВ рд╣реА рдпрд╣ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ:

рдЬ

 UCLASS(Blueprintable) class MYPROPJECT_API UMyObject : public UObject { GENERATED_BODY() //  GetWorld()    . virtual UWorld* GetWorld() const override; //   } 

рд╕реАрдкреАрдкреА

 UWorld* UMyObject::GetWorld() const { //       ,    . if (GIsEditor && !GIsPlayInEditorWorld) return nullptr; else if (GetOuter()) return GetOuter()->GetWorld(); else return nullptr; } 

рдЕрдм рдпрд╣ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╕рдВрдкрд╛рджрдХ рд╕рдордЭ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд╛рдВрдЫрд┐рдд рдкреЙрдЗрдВрдЯрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИ) рдФрд░ рдмреАрдкреА рдореЗрдВ рд╡реИрд╢реНрд╡рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдорд╛рд▓рд┐рдХ (GetOuter ()) рдХреЛ рднреА рджреБрдирд┐рдпрд╛ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдпрд╣ рджреГрд╢реНрдп рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЧреЗрдЯрд╡рд░реНрд▓реНрдб (), рдШрдЯрдХ рдпрд╛ рдЕрднрд┐рдиреЗрддрд╛ рд╡рд╕реНрддреБ рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ UObject рд╣реЛ рд╕рдХрддрд╛ рд╣реИред



рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рд╣реИред рдХреНрд▓рд╛рд╕ рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░рддреЗ рд╕рдордп UCLASS () рдореИрдХреНрд░реЛ рдореЗрдВ рдПрдХ рд▓реЗрдмрд▓ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдХрд┐ BPC рдореЗрдВ рд╕реНрдерд┐рд░ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ WorldContextObject рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рднреА рд╡рд╕реНрддреБ рдЬреЛ "рджреБрдирд┐рдпрд╛" рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдВрдбрдХреНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддреА рд╣реИ рдФрд░ рдЗрдВрдЬрди рдХреЗ рд╡реИрд╢реНрд╡рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЦрд┐рд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИ, рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрдИ рджреБрдирд┐рдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рджрд░реНрд╢рдХ рдХреЗ рд▓рд┐рдП рдЦреЗрд▓ рдХреА рджреБрдирд┐рдпрд╛ рдФрд░ рджреБрдирд┐рдпрд╛):

рдЬ

 //   WorldContext      UCLASS(Blueprintable, meta=(ShowWorldContextPin)) class MYPROPJECT_API UMyObject : public UObject { GENERATED_BODY() //   } 

рдпрджрд┐ рдЖрдк BP рдореЗрдВ рдЦреЛрдЬ рдореЗрдВ GetGamemode рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЕрдиреНрдп рд╕рдорд╛рди рдлрд╝рдВрдХреНрд╢рди рдХреА рддрд░рд╣ рд╕реВрдЪреА рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛, рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░ WorldContextObject рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреЛ рдЕрднрд┐рдиреЗрддрд╛ рдХреЗ рд▓рд┐рдВрдХ рдХреЛ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред



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

рдЬ

 UCLASS(Blueprintable, meta=(ShowWorldContextPin)) class MYPROPJECT_API UMyObject : public UObject { GENERATED_BODY() //      ,     . public: UFUNCTION(BlueprintPure) AActor* GetOwner() const {return Cast<AActor>(GetOuter());}; //   } 

рдЕрдм рдЖрдк рдмрд╕ рдорд╛рд▓рд┐рдХ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд╢реБрджреНрдз рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рдВрдпреЛрдЬрди рдореЗрдВ рд╡реИрд╢реНрд╡рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



рдпрджрд┐ рдЖрдк рджреВрд╕рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рднреА рдЧреЗрдЯрд╡рд░реНрд▓реНрдб () рдХреЛ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк WorldContextObject рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдЕрдкрдиреЗ рдЖрдк рдХреЛ (рд╕реНрд╡рдпрдВ рдпрд╛ рдпрд╣) рдПрдХ рд╕рдВрджрд░реНрдн рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



BeginPlay рдФрд░ рдЯрд┐рдХ рдШрдЯрдирд╛рдУрдВ


рдПрдХ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдЬрд┐рд╕рдХрд╛ рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕рд╛рдордирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдХреЛрдИ StartPlay рдФрд░ рдЯрд┐рдХ рдЗрд╡реЗрдВрдЯ рдирд╣реАрдВ рд╣реИрдВред рдмреЗрд╢рдХ, рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЦреБрдж рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреВрд╕рд░реА рдХрдХреНрд╖рд╛ рд╕реЗ рдмреБрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдЬрдм рдпрд╣ рд╕рднреА рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИред

рд╢реБрд░реБрдЖрдд рдкреНрд▓реЗ рдмрдирд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рд╕рдордЭрдХрд░ рдХрд░реЗрдВред рд╣рдо рдмреАрдкреА рдореЗрдВ рдкреБрдирд░реНрд▓реЗрдЦрди рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдХреНрд▓рд╛рд╕ рдХреЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрдИ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рд╕рдордп рдЖрдкрдХреА рдСрдмреНрдЬреЗрдХреНрдЯ рдЕрднреА рддрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред

рд╕рднреА рд╡рд░реНрдЧреЛрдВ рдореЗрдВ, PostInitProperties () рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рдЬреЛ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдкреНрд░рд╛рд░рдВрдн рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдЖрдВрддрд░рд┐рдХ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдкрдВрдЬреАрдХрд░рдг рдХреЗ рдмрд╛рдж рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдПред рдЗрд╕рдореЗрдВ, рдЖрдк рдХреЗрд╡рд▓ рд╣рдорд╛рд░реЗ рдИрд╡реЗрдВрдЯ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:

рдЬ

 UCLASS(Blueprintable) class MYPROPJECT_API UMyObject : public UObject { GENERATED_BODY() //      . virtual void PostInitProperties() override; // ,      . UFUNCTION(BlueprintImplementableEvent) void BeginPlay(); //   } 

рд╕реАрдкреАрдкреА

 void UMyObject::PostInitProperties() { Super::PostInitProperties(); //   ,   .   BeginPlay    if(GetOuter() && GetOuter()->GetWorld()) BeginPlay(); } 

рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдпрджрд┐ (GetOuter () && GetOuter () -> GetWorld ()) рдЖрдк рдмрд╕ (GetWorld ()) рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд▓рд┐рдпрд╛ рд╣реИред

рд╕рд╛рд╡рдзрд╛рди! рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, PostInitProperties () рдХреЛ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрдм рд╣рдо рдЕрдкрдиреЗ BP рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ BeginPlay рдЗрд╡реЗрдВрдЯ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирдиреЗ рдкрд░ рдЗрд╕реЗ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред

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

рдЬ

 //   #include "Tickable.h" //   c FTickableGameObject UCLASS(Blueprintable) class MYPROPJECT_API UMyObject : public UObject, public FTickableGameObject { GENERATED_BODY() public: //   virtual void Tick(float DeltaTime) override; virtual bool IsTickable() const override; virtual TStatId GetStatId() const override; protected: //     UFUNCTION(BlueprintImplementableEvent) void EventTick(float DeltaTime); //   } 

рд╕реАрдкреАрдкреА

 void UMyObject::Tick(float DeltaTime) { //       . EventTick(DeltaTime); //     . } //     bool UMyObject::IsTickable() const { return true; } TStatId UMyObject::GetStatId() const { return TStatId(); } 

рдпрджрд┐ рдЖрдк рдЕрдкрдиреА рд╡рд╕реНрддреБ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдмреАрдкреА рд╡рд░реНрдЧ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ EventTick рдШрдЯрдирд╛ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧреА, рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдлреНрд░реЗрдо рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рдХрд╛ рдХрд╛рд░рдг рдмрдиреЗрдЧреАред



UObjects рд╕реЗ рдШрдЯрдХ рдЬреЛрдбрд╝рдирд╛


UObject рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рдореЗрдВ, рдЖрдк рдЕрднрд┐рдиреЗрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдШрдЯрдХреЛрдВ рдХреЛ рд╕реНрдкреЙрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдПрдХреНрдЯрд░ рдХреЙрдордкреЛрдиреНрдЯ рдХреЗ рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИред рдПрдкрд┐рдХ рдЧреЗрдореНрд╕ рдХрд╛ рддрд░реНрдХ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ C ++ рдореЗрдВ рдРрд╕рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдХреЗрд╡рд▓ рд▓рд┐рдВрдХ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдЕрднрд┐рдиреЗрддрд╛ рд╕реЗ рджреВрд╕рд░реЗ рдЕрднрд┐рдиреЗрддрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рдШрдЯрдХ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

рдПрдХрдорд╛рддреНрд░ рд╡рд┐рдХрд▓реНрдк рдЬреЛ рдореИрдВ рдЗрд╕ рд╕рдордп рдкреЗрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд╡рд╣ рд╣реИ UObject рдХреНрд▓рд╛рд╕ рдореЗрдВ рдПрдХ рд░реИрдкрд░ рдмрдирд╛рдирд╛, рдЬреЛ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд░рд▓ рдЬреЛрдбрд╝ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЕрднрд┐рдиреЗрддрд╛ рдХреЗ рд▓рд┐рдП рдШрдЯрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕реНрдкреЙрди рдХреЗ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдорд┐рдд рдЗрдирдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред рдЕрдХреНрд╕рд░, рдпрд╣ рдЙрдкреЗрдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред



рд╕рдВрдкрд╛рджрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛


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

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

рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

рдЬ

 class MYPROPJECT_API AMyActor : public AActor { GENERATED_BODY() public: UPROPERTY(EditAnywhere) TSubclassOf<class UMyObject> MyObjectClass; } 



рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕рдореЗрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрд╢реЛрдзрдХ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЕрдиреНрдп рдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд░реНрдЧ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред рд╕рд╣рдордд рд╣реИрдВ, рд╕рд╛рдордЧреНрд░реА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рджрд░реНрдЬрдиреЛрдВ рдХрдХреНрд╖рд╛рдПрдВ рд╣реЛрдирд╛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ рдореВрд▓реНрдпреЛрдВ рдореЗрдВ рднрд┐рдиреНрди рд╣реИрдВред рдЗрд╕реЗ рдареАрдХ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдЖрдк USTRUCT () рдХреЗ рдЕрдВрджрд░ рдХреБрдЫ рдлрд╝реАрд▓реНрдбреНрд╕ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдХрдВрдЯреЗрдирд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдпрд╣ рднреА рдЗрдВрдЧрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдЗрдВрд╕реНрдЯреЗрдВрд╕реЗрд╕ рд╣реЛрдВрдЧреА, рдФрд░ рди рдХреЗрд╡рд▓ рдЧреИрд░-рдореМрдЬреВрдж рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдпрд╛ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ:

рдЬ

 UCLASS(Blueprintable, DefaultToInstanced, EditInlineNew) //  -        class MYPROPJECT_API UMyObject : public UObject { GENERATED_BODY() UPROPERTY(EditAnywhere) //       uint8 MyValue; // ,    //   } 

рдпрд╣ рдЕрдХреЗрд▓рд╛ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ, рдЕрдм рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдХрдХреНрд╖рд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдЪрд░ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реЛрдЧрд╛ред рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИ рдЬрд╣рд╛рдВ рдЖрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЪрд░рд┐рддреНрд░ рд╕рдВрд╢реЛрдзрдХ рдкреНрд░рдмрдВрдзрдХ рдореЗрдВ:

рдЬ

 class MYPROPJECT_API AMyActor : public AActor { GENERATED_BODY() public: UPROPERTY(EditAnywhere, Instanced) //   Instanced    class UMyObject* MyObject; //    } 

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

рдЫрд╡рд┐



рдЬрд╛рдирдХрд╛рд░реА


рдЕрд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЗрдВрдЬрди рдореЗрдВ рдПрдХ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд░реНрдЧ рд╣реИред рдпрд╣ AInfo рд╣реИред рдПрдПрдХреЗрд░ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рдПрдХ рд╡рд░реНрдЧ рдЬрд┐рд╕рдХреЗ рдкрд╛рд╕ рджреБрдирд┐рдпрд╛ рдореЗрдВ рджреГрд╢реНрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдирд╣реАрдВ рд╣реИред рдЬрд╛рдирдХрд╛рд░реА рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ рдЬреИрд╕реЗ: рдЧреЗрдо рдореЛрдб, рдЧреЗрдорд╕реНрдЯреЗрдЯ, рдкреНрд▓реЗрдпрд░рд╕реНрдЯреИрдЯ рдФрд░ рдЕрдиреНрдпред рдпрд╣реА рд╣реИ, рдХрдХреНрд╖рд╛рдПрдВ рдЬреЛ рдПрдПрдХреНрдЯрд░ рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдЪрд┐рдкреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рддрд┐рдХреГрддрд┐, рд▓реЗрдХрд┐рди рджреГрд╢реНрдп рдкрд░ рдирд╣реАрдВ рд░рдЦреА рдЬрд╛рддреА рд╣реИрдВред

рдпрджрд┐ рдЖрдкрдХреЛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд, рд╡реИрд╢реНрд╡рд┐рдХ рдкреНрд░рдмрдВрдзрдХ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдиреЗрдЯрд╡рд░реНрдХ рдФрд░ рд╕рднреА рдкрд░рд┐рдгрд╛рдореА рдЕрднрд┐рдиреЗрддрд╛ рд╡рд░реНрдЧреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗ, рддреЛ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдкрдХреЛ UObject рд╡рд░реНрдЧ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдПред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдпрджреНрдпрдкрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдХреЛрдИ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдирд╣реАрдВ рд╣реИ, рдХреЛрдИ рджреГрд╢реНрдп рдШрдЯрдХ рдирд╣реАрдВ рд╣реИ рдФрд░ рдпрд╣ рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдЕрднреА рднреА рдЕрднрд┐рдиреЗрддрд╛ рд╡рд░реНрдЧ рдХрд╛ рд╡рдВрд╢рдЬ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рд╕рдорд╛рди рднрд╛рд░реА рд╣реИред рдЙрдЪрд┐рдд рдорд╛рддреНрд░рд╛ рдореЗрдВ рдФрд░ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



рдирд┐рд╖реНрдХрд░реНрд╖


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

, , UObject, , , .

, , Unreal Engine 4. - , . , - , UObject.

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


All Articles