как изменить переменные в скрипте, прикрепленном к префабу через скрипт во время выполнения? - PullRequest
0 голосов
/ 14 мая 2018

Я создал префаб в сцене, который разрушается через 2 секунды. Я хочу изменить переменную скорости в скрипте перемещения так, чтобы каждый раз, когда он создавал экземпляр, он имел новую скорость.

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

Функция instantiate возвращает созданный вами игровой объект.

GameObject prefabObject = Instantiate(...);

Тогда вы, очевидно, можете сделать что-то вроде

prefabObject.GetComponent<moveScript>().speed = 4;
0 голосов
/ 14 мая 2018

Вы не предоставили достаточно информации, но я постараюсь ответить.

Будет ли это сделано с помощью другого скрипта или скрипта Move, который вы прикрепили к префабу?

Если изЗатем переместите сценарий:

private void Awake()
{
    speed = MY_NEW_SPEED;
}

Если из другого сценария вам сначала нужно получить доступ к созданному объекту, а затем к его сценариям перемещения.Вы не предоставили достаточно информации, поэтому я предполагаю, что у вас уже есть ссылка на ваш экземпляр объекта:

instantiatedObject.GetComponent<Move>().speed = MY_NEW_SPEED;

https://docs.unity3d.com/ScriptReference/GameObject.GetComponent.html

...