Как обратиться к объекту через C# скрипт Unity

Есть объект "objBall" - это asset, просто готовый круг. И этот объект должен появляться случайно в разных местах канваса, а игрок должен успеть кликнуть по нему. Сам алгоритм прост, язык C# знаю, по крайней мере - основы, а вот с Unity впервые. И ещё вопрос, скрипт можно прилепить на главную камеру сцены для удобства? Или же надо для отдельного объекта новый скрипт?


Ответы (1 шт):

Автор решения: ssa112112
  1. Скрипт лучше прикрепит на отдельный объект, например "BallSpawner" или "GameManager". Хотя вариант с камерой будет работать.

  2. Что бы сослаться на объект из скрипта есть довольно много способов. Для вашего случая идеальным будет создать поле класса:

    [SerializeField] //не public, но видно в inspectore
    GameObject BallPrefab;
    

Теперь в инспекторе можно на поле BallPrefab перетащить игровой объект (лучше prefab)

  1. Теперь spawn объектов, его можно реализовать так:

     var positionForInstaniate = //здесь генерим случайную позицию
     Instantiate(BallPrefab, positionForInstaniate, Quaternion.identity);
    

Для определения времени spawn удобно использовать таймеры или корутины

  1. И останется обрабатывать клики игрока. Здесь можно обратится к OnMouseDown()

PS: для образца можно посмотреть мою домашнюю работу: GitHub.Asteroids , там все несколько сложнее, но если начать с AsteroidsSpawner.cs вполне можно распутать клубок того, что происходит.

→ Ссылка