рд╕рдВрдкрд╛рджрдХ рд╡рд┐рдВрдбреЛ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╡рд╕реНрддреБ рдФрд░ рдХрд╕реНрдЯрдо рд╕рдВрдкрд╛рджрдХ рдХреЗ рд╕рд╛рде рдПрдХрддрд╛ рд╕рдВрдкрд╛рджрдХ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░

рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░! рдореЗрд░рд╛ рдирд╛рдо рдЧреНрд░рд┐рд╢рд╛ рд╣реИ рдФрд░ рдореИрдВ CGDevs рдХрд╛ рд╕рдВрд╕реНрдерд╛рдкрдХ рд╣реВрдВред рдЖрдЬ рдореИрдВ рд╕рдВрдкрд╛рджрдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рдЕрдкрдиреА рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдУрдкрдирд╕реЛрд░реНрд╕ рдореЗрдВ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рд╣реИред

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



рд╕рдВрдкрд╛рджрдХ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпреВрдирд┐рдЯреА 3 рдбреА рдХреЗ рдкрд╛рд╕ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдкрд░реНрдпрд╛рдкреНрдд рдЯреВрд▓рдмреЙрдХреНрд╕ рд╣реИред EditorWindow рдЬреИрд╕реА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╕рд╛рде рд╣реА рдХрд╕реНрдЯрдо рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ , рдкреНрд░реЙрдкрд░реНрдЯреА рдбреНрд░рд╛рд╡рд░ рдФрд░ рдЯреНрд░реА рд╡реНрдпреВ (+ рдпреВрдЖрдИрдИрдПрд▓рдПрд╕ рдХреЛ рдЬрд▓реНрдж рд╣реА рджрд┐рдЦрд╛рдИ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП) рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП, рдпреВрдирд┐рдЯ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдЬрдЯрд┐рд▓рддрд╛ рдХреА рдбрд┐рдЧреНрд░реА рдХреЗ рдЕрдкрдиреЗ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред

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



рд╕рдорд╛рдзрд╛рди рддреАрди рд╡рд░реНрдЧреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЬреИрд╕реЗ EditorWindow (рд╕рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдВрдбреЛ), ScriptableObject (рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░реЗрдЬ) рдФрд░ CustomEditor (рд╕реНрдХреНрд░рд┐рдкреНрдЯреЗрдмрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реАрдХреНрд╖рдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛)ред

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

рдЪрд▓реЛ рджрд┐рд▓рдЪрд╕реНрдк рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред

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

рдПрдХрддрд╛ рдореЗрдВ рдХрдИ рд╢реИрд▓рд┐рдпреЛрдВ рд╣реИрдВ рдЬреЛ рдЦрд┐рдбрд╝рдХреА рдХреЗ рд░рдВрдЧреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреА рд╣реИрдВред

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

рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд░рдВрдЧ
GUI.color = BgColor; GUI.DrawTexture(new Rect(Vector2.zero, maxSize), EditorGUIUtility.whiteTexture); GUI.color = Color.white; 



рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рд╣рдордиреЗ рдкреВрд░реА рд╡рд┐рдВрдбреЛ рдореЗрдВ BgColor рд░рдВрдЧ рдмрдирд╛рд╡рдЯ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛ред



рдЧреНрд░рд┐рдб рдХреЛ рдбреНрд░рд╛ рдФрд░ рдореВрд╡ рдХрд░реЗрдВ

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

рд╕реНрдХреНрд░реАрди рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд▓рд┐рдП рд╡рд┐рдВрдбреЛ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛
 public Vector2 GUIToGrid(Vector3 vec) { Vector2 newVec = ( new Vector2(vec.x, -vec.y) - new Vector2(_ParentWindow.position.width / 2, -_ParentWindow.position.height / 2)) * _Zoom + new Vector2(_Offset.x, -_Offset.y); return newVec.RoundCoordsToInt(); } public Vector2 GridToGUI(Vector3 vec) { return (new Vector2(vec.x - _Offset.x, -vec.y - _Offset.y) ) / _Zoom + new Vector2(_ParentWindow.position.width / 2, _ParentWindow.position.height / 2); } 



рдЬрд╣рд╛рдБ _ParentWindow рд╡рд╣ рд╡рд┐рдВрдбреЛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдЧреНрд░рд┐рдб рдЦреАрдВрдЪрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, _Offset рдЧреНрд░рд┐рдб рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рд╣реИ, рдФрд░ _Zoom рд╕рдиреНрдирд┐рдХрдЯрди рдХреА рдбрд┐рдЧреНрд░реА рд╣реИред

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

рдбреНрд░рд╛рдЗрдВрдЧ рдбреНрд░рд╛рдЗрдВрдЧ
 void DrawLODLines(int level) { var gridColor = SkinManager.Instance.CurrentSkin.GridColor; var step0 = (int) Mathf.Pow(10, level); int halfCount = step0 * CELLS_IN_LINE_COUNT / 2 * 10; var length = halfCount * DEFAULT_CELL_SIZE; int offsetX = ((int) (_Offset.x / DEFAULT_CELL_SIZE)) / (step0 * step0) * step0; int offsetY = ((int) (_Offset.y / DEFAULT_CELL_SIZE)) / (step0 * step0) * step0; for (int i = -halfCount; i <= halfCount; i += step0) { Handles.color = new Color(gridColor.r, gridColor.g, gridColor.b, 0.3f); Handles.DrawLine( GridToGUI(new Vector2(-length + offsetX * DEFAULT_CELL_SIZE, (i + offsetY) * DEFAULT_CELL_SIZE)), GridToGUI(new Vector2(length + offsetX * DEFAULT_CELL_SIZE, (i + offsetY) * DEFAULT_CELL_SIZE)) ); Handles.DrawLine( GridToGUI(new Vector2((i + offsetX) * DEFAULT_CELL_SIZE, -length + offsetY * DEFAULT_CELL_SIZE)), GridToGUI(new Vector2((i + offsetX) * DEFAULT_CELL_SIZE, length + offsetY * DEFAULT_CELL_SIZE)) ); } offsetX = (offsetX / (10 * step0)) * 10 * step0; offsetY = (offsetY / (10 * step0)) * 10 * step0; ; for (int i = -halfCount; i <= halfCount; i += step0 * 10) { Handles.color = new Color(gridColor.r, gridColor.g, gridColor.b, 1); Handles.DrawLine( GridToGUI(new Vector2(-length + offsetX * DEFAULT_CELL_SIZE, (i + offsetY) * DEFAULT_CELL_SIZE)), GridToGUI(new Vector2(length + offsetX * DEFAULT_CELL_SIZE, (i + offsetY) * DEFAULT_CELL_SIZE)) ); Handles.DrawLine( GridToGUI(new Vector2((i + offsetX) * DEFAULT_CELL_SIZE, -length + offsetY * DEFAULT_CELL_SIZE)), GridToGUI(new Vector2((i + offsetX) * DEFAULT_CELL_SIZE, length + offsetY * DEFAULT_CELL_SIZE)) ); } } 



рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ рдЧреНрд░рд┐рдб рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред рдЙрдирдХрд╛ рдЖрдВрджреЛрд▓рди рдмрд╣реБрдд рд╕рд░рд▓рддрд╛ рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╣реИред _Offset рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд╡рд░реНрддрдорд╛рди "рдХреИрдорд░рд╛" рд╕реНрдерд┐рддрд┐ рд╣реИред

рдЧреНрд░рд┐рдб рдЖрдВрджреЛрд▓рди
  public void Move(Vector3 dv) { var x = _Offset.x + dv.x * _Zoom; var y = _Offset.y + dv.y * _Zoom; _Offset.x = x; _Offset.y = y; } 



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

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

рдЕрдкрд╛рд░реНрдЯрдореЗрдВрдЯ рд╡рд░реНрдЧ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛
  public class Apartment : ScriptableObject { #region fields public float Height; public bool IsGenerateOutside; public Material OutsideMaterial; public Texture PlanImage; [SerializeField] private List<Room> _Rooms; [SerializeField] private Rect _Dimensions; private Vector2[] _DimensionsPoints = new Vector2[4]; #endregion 



рд╕рдВрдкрд╛рджрдХ рдореЗрдВ, рдпрд╣ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:



рдпрд╣рд╛рдБ, рдмреЗрд╢рдХ, CustomEditor рдкрд╣рд▓реЗ рд╣реА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ _Dimensions, Height, IsGenerateOutside, OutsideMaterial рдФрд░ PlanImage рдЬреИрд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

рд╕рднреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдлрд╝реАрд▓реНрдб рдФрд░ [SerializeField] рд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд рдлрд╝реАрд▓реНрдб рдХреНрд░рдордмрджреНрдз рд╣реИрдВ (рдЬреЛ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬреЗ рдЧрдП рд╣реИрдВ)ред рдпрджрд┐ рдЖрдкрдХреЛ рдЪрд┐рддреНрд░ рд╕рд╣реЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдмрд╣реБрдд рдорджрдж рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди ScriptableObject рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдФрд░ рд╕рднреА рд╕рдВрдкрд╛рджрдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рд╛рде, рдЖрдкрдХреЛ рдпрд╣ рдпрд╛рдж рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП AssetDatabase.SaveAssets () рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рдЕрдиреНрдпрдерд╛, рдкрд░рд┐рд╡рд░реНрддрди рд╕рд╣реЗрдЬреЗ рдирд╣реАрдВ рдЬрд╛рдПрдВрдЧреЗред рдпрджрд┐ рдЖрдк рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╣рд╛рде рд╕реЗ рдирд╣реАрдВ рдмрдЪрд╛рддреЗ рд╣реИрдВред

рдЕрдм рд╣рдо рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдЕрдкрд╛рд░реНрдЯрдореЗрдВрдЯрдХрд╕реНрдЯрдо рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рд╡рд░реНрдЧ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдХреНрд▓рд╛рд╕ рдЕрдкрд╛рд░реНрдЯрдореЗрдВрдЯрдХрд╕реНрдЯрдо рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░
  [CustomEditor(typeof(Apartment))] public class ApartmentCustomInspector : Editor { private Apartment _ThisApartment; private Rect _Dimensions; private void OnEnable() { _ThisApartment = (Apartment) target; _Dimensions = _ThisApartment.Dimensions; } public override void OnInspectorGUI() { TopButtons(); _ThisApartment.Height = EditorGUILayout.FloatField("Height (cm)", _ThisApartment.Height); var dimensions = EditorGUILayout.Vector2Field("Dimensions (cm)", _Dimensions.size).RoundCoordsToInt(); _ThisApartment.PlanImage = (Texture) EditorGUILayout.ObjectField(_ThisApartment.PlanImage, typeof(Texture), false); _ThisApartment.IsGenerateOutside = EditorGUILayout.Toggle("Generate outside (Directional Light)", _ThisApartment.IsGenerateOutside); if (_ThisApartment.IsGenerateOutside) _ThisApartment.OutsideMaterial = (Material) EditorGUILayout.ObjectField( "Outside Material", _ThisApartment.OutsideMaterial, typeof(Material), false); GenerateButton(); var dimensionsRect = new Rect(-dimensions.x / 2, -dimensions.y / 2, dimensions.x, dimensions.y); _Dimensions = dimensionsRect; _ThisApartment.Dimensions = _Dimensions; } private void TopButtons() { GUILayout.BeginHorizontal(); CreateNewBlueprint(); OpenBlueprint(); GUILayout.EndHorizontal(); } private void CreateNewBlueprint() { if (GUILayout.Button( "Create new" )) { var manager = ApartmentsManager.Instance; manager.SelectApartment(manager.CreateOrGetApartment("New Apartment" + GUID.Generate())); } } private void OpenBlueprint() { if (GUILayout.Button( "Open in Builder" )) { ApartmentsManager.Instance.SelectApartment(_ThisApartment); ApartmentBuilderWindow.Create(); } } private void GenerateButton() { if (GUILayout.Button( "Generate Mesh" )) { MeshBuilder.GenerateApartmentMesh(_ThisApartment); } } } 


CustomEditor рдПрдХ рдмрд╣реБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд╕рдВрдкрд╛рджрдХ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред ScriptableObject рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛, рдпрд╣ рдЖрдкрдХреЛ рд╕рд░рд▓, рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рд╕рд╣рдЬ рд╕рдВрдкрд╛рджрдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рд╡рд░реНрдЧ рд╕рд┐рд░реНрдл рдмрдЯрди рдЬреЛрдбрд╝рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдореВрд▓ рдХрдХреНрд╖рд╛ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ [SerializeField] рдирд┐рдЬреА рд╕реВрдЪреА _Rooms рдлрд╝реАрд▓реНрдб рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдирд┐рд░реАрдХреНрд╖рдХ рдореЗрдВ рдЗрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рджреВрд╕рд░рд╛ - рдЗрд╕рд╕реЗ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдХреАрдбрд╝реЗ рдФрд░ рдбреНрд░рд╛рдЗрдВрдЧ рд░рд╛рдЬреНрдп рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред OnInspectorGUI рд╡рд┐рдзрд┐ рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдмрдЯрди рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕рдореЗрдВ DrawDefaultInspector () рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рднреА рдлрд╝реАрд▓реНрдб рдЦреАрдВрдЪреЗ рдЬрд╛рдПрдВрдЧреЗред

рдЖрд╡рд╢реНрдпрдХ рдлрд╝реАрд▓реНрдб рдФрд░ рдмрдЯрди рддрдм рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред EditorGUILayout рд╡рд░реНрдЧ рдХреЗ рдкрд╛рд╕ рдЗрдХрд╛рдИ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рдлрд╝реАрд▓реНрдб рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХрдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВред рд▓реЗрдХрд┐рди рдПрдХрддрд╛ рдореЗрдВ рдмрдЯрди рдкреНрд░рддрд┐рдкрд╛рджрди GUILayout рд╡рд░реНрдЧ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдмрдЯрди рджрдмрд╛рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред OnInspectorGUI - рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдорд╛рдЙрд╕ рдЗрд╡реЗрдВрдЯ (рдорд╛рдЙрд╕ рдЖрдВрджреЛрд▓рди, рд╕рдВрдкрд╛рджрдХ рд╡рд┐рдВрдбреЛ рдХреЗ рдЕрдВрджрд░ рдорд╛рдЙрд╕ рдХреНрд▓рд┐рдХ, рдЖрджрд┐) рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмреЙрдХреНрд╕ рдореЗрдВ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╡рд┐рдзрд┐ рд╕рд╣реА рд╣реЛ рдЬрд╛рддреА рд╣реИ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рддрд░реАрдХреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд 'рдЕрдЧрд░' рдХреЗ рдЕрдВрджрд░ рд╣реИрдВред рдПрдХред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

рдореЗрд╖ рдкреАрдврд╝реА рдмрдЯрди
 private void GenerateButton() { if (GUILayout.Button( "Generate Mesh" )) { MeshBuilder.GenerateApartmentMesh(_ThisApartment); } } 


рдЬрдм рдЖрдк рдЬрдирд░реЗрдЯ рдореЗрд╢ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕реНрдЯреЗрдЯрд┐рдХ рдореЗрдердб рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓реЗрдЖрдЙрдЯ рдХреЗ рдореЗрд╢ рдХреЛ рдЬреЗрдирд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрддрд╛ рд╣реИред

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

рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмрд╕ Selection.activeObject = MyAwesomeUnityObject рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдФрд░ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ ScriptableObject рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рд╡рд╣ рдбреНрд░рд╛рдЗрдВрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рдЦрд┐рдбрд╝рдХреА рдореЗрдВ рдПрдХ рдбреНрд░рд╛рдЗрдВрдЧ рдФрд░ рдХрдорд░реЗ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред

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

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


All Articles