Введение
В ходе этого урока будет раскрыто несколько тем, самой важной целью будет понимание принципа построения игр на Unity3D. Будет рассказано как создать своё собственное подобие игры, как сделать для него интерфейс и как именно лучше всего устанавливать взаимодействие компонентов между собой.
Одно из основных понятий в Unity3D это компонент. Компонент это основной кирпичик из разных видов которого собирается игра целиком. Одни компоненты предоставлены по умолчанию, другие можно получить из Asset Store, но самые важные компоненты это те, которые создаёт сам разработчик. Сам по себе компонент существовать внутри игры не может, ему нужен объект-хозяин, частью которого и будет этот компонент.
Для лучшего понимания хотелось бы разделить два понятия объект и компонент.
Объект - это то, что видно в окнах Scene и Hierarchy среды разработки Unity3D, некоторые объекты могут не иметь представления в окне Scene, но абсолютно все отображаются в Hierarchy и если там его нет, значит объект не загружен в сцену. На скриншоте выше Sun, Earth, SolarSystem и т.д. это всё объекты.
Компонент - это обычно скрипты, прикреплённые к объекту. На скриншоте выше вы можете видеть в окне Inspector. Объект может обладать несколькими компонентами, а компонент может принадлежать только одному объекту. Если компонент с одним и тем же именем прикреплён к разным объектам, то эти компоненты это разные экземпляры и их поля и методы работают независимо друг от друга, т.е. если компонент на одном объекте изменит значение одного из своих полей, а это поле не статическое, то компонент на другом объекте этого изменения не заметит. Однако изменение статического поля приведёт к тому, что абсолютно все компоненты схожего типа будут пользоваться изменённым значением. Это особенность C#, а не Unity3d или компонентов.