Как привести объект в GameObject? - PullRequest
1 голос
/ 06 апреля 2020

Я пытался получить Terrains от Resources.FindObjectsOfTypeAll(typeof(Terrain)), а затем активировать его в зависимости от ситуации.

Но он возвращает Objects.

Я пытался разыграть его в GameObject с помощью (GameObect)obj и obj as GameObject.

Первый вызвал ошибку Invalid cast, а второй - null.

Примеры, которые я смог найти в Интернете, говорили о Resources.Load в основном, что требует Instantiation.

Но я не думаю, что FindObjectsOfTypeAll требует инстанцирования, потому что GameObjects «уже есть»! Правильно!?

Так может ли кто-нибудь быть таким добрым и научить меня, как я могу кастовать Объекты в GameObject, чтобы я мог его активировать!?

Очень признателен!

Ответы [ 2 ]

1 голос
/ 06 апреля 2020

Привет, думаю, вы могли бы использовать что-то вроде поиска местности с именем объекта или именем тега, может быть, это могло бы помочь:

public class ExampleClass : MonoBehaviour
{
    public GameObject terrain;
    public GameObject[] terrains;

    void Example()
    {
        // This returns the GameObject named Hand.
        terrain = GameObject.Find("Hand");

        // returns a list of the game objects with tags = 'terrain'
        terrains = GameObject.FindGameObjectsWithTag("terrain");

        //returns a single object with the tag terrain
        terrain = GameObject.FindWithTag("terrain");

    }
}
1 голос
/ 06 апреля 2020

Terrain - это компонент , поэтому к его ассоциированному GameObject можно получить доступ через свойство gameObject.

Что-то вроде:

var go = ((Terrain)obj).gameObject;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...