Как заставить GameObject иметь параметр в единстве (C#)?

Пожалуйста, помогите мне, как получить значение "currentPeople.timeCount;" например у меня есть скрипт:

public class BuildingPlacement : MonoBehaviour 
{
    public GameObject currentPeople;public int DelayTime;private int timeCount;
}

если я хочу сказать, что

DelayTime = currentPeople.timeCount;

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

DelayTime = (BuildingPlacement)currentPeople.GetComponent(typeof(BuildingPlacement).timeCount);

Как я могу получить значение currentPeople.timeCount? Является ли это возможным?

1 ответ

Решение

Вы не можете добавить переменную в GameObject, как указано в исходном вопросе. Весьма вероятно, что вы захотите добавить скрипт в GameObject, который также делает timeCount переменная доступна для этого GameObject.

Если это так, выберите currentPeople GameObject и перетащите BuildingPlacement Сценарий к нему в редакторе. Это называется прикреплением скрипта к GameObject. Вы также можете сделать это с помощью кода:

currentPeople.AddComponent<BuildingPlacement>();

Чтобы получить доступ к timeCount переменная, которая находится в BuildingPlacement скрипт, который прикреплен к currentPeople GameObject:

 int value =  currentPeople.GetComponent<BuildingPlacement>().timeCount;

Кажется, вам не хватает базовых знаний об Unity. Вы можете начать отсюда.

Другие вопросы по тегам