Исправление массива игровых объектов - PullRequest
0 голосов
/ 09 июня 2018

У меня проблемы с этим массивом.Мне нужно установить игровые объекты в инспекторе, но у меня проблема с renderer.gameobject.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Obstacle : MonoBehaviour, IRecyle
{

public GameObject[] obstacles;

public void Restart()
{
    var renderer = GetComponent<GameObject>();
    renderer.gameObject = obstacles[Random.Range(0, obstacles.Length)];
}

public void Shutdown()
{

}
}

1 Ответ

0 голосов
/ 10 июня 2018

Рендереры не являются объектами GameObject.Они являются Компонентами.

GameObject - это контейнеры Компонентов - один GameObject содержит много Компонентов.

Эта строка недопустима (GameObjects не являются Компонентами!):

//Invalid!
var renderer = GetComponent<GameObject>();

Выне должен устанавливать свойство gameObject компонента!Это не магически присоединит Компонент к новой игре. Объект:

//Don't do this!!
renderer.gameObject = someGameObject

Вместо:

Renderer rend = someGameObject.AddComponent<Mesh renderer>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...