2016-01-13 5 views

ответ

0

Так же, как вы можете инициализировать элементарное значение в скрипте вы также можете сделать это с объектами, как это:

public class ExampleScript : MonoBehaviour { 

    public int Velocity = 0; 
    public Vector2 Position = new Vector2(0, 0); 

    void Start(){ 
     ... 
    } 

    void Update(){ 
     ... 
    } 
} 

Но вы можете только создавать объекты, если вам нужно изменить его каким-то образом вы РЕКОМЕНДУЕМЫМ используйте методы Start/Awake.

Подробнее об этом здесь: Initialize class fields in constructor or at declaration?

1

Используя Reset метод вместо Start/Awake это лучший способ инициализировать компонент со значениями по умолчанию (только если значения по умолчанию не связаны настройки игры во время выполнения) ,

Используйте команду Awake, если вы хотите инициализировать свои поля во время исполнения/игры. И используйте Start для всей логики GetComponent. Потому что Start вызывается после Awake и гарантирует, что все остальные компоненты в сцене будут правильно инициализированы, прежде чем вы вызовете GetComponent, чтобы найти их.

Редактировать: Пример monobehaviour с сбросом.

public class Player : MonoBehaviour 
{ 
    public string Name; 
    public float Health; 
    public float Armor; 

    void Reset() 
    { 
     Name = "UNKNOWN"; 
     Health = 100; 
     Armor = 0; 
    } 

} 

Затем добавьте этот компонент в GameObject в Unity. Вы заметите, что эти значения будут автоматически установлены. Если вы хотите сбросить этот компонент: щелкните правой кнопкой мыши и выполните сброс.

enter image description here

+0

Да, 'Сброс', кажется, путь. Можете ли вы отредактировать свой ответ с примером «Сброс», применяемым в скрипте? Я не уверен, как его использовать ... –

Смежные вопросы