通过脚本设置默认值?

时间:2016-01-13 21:42:31

标签: c# unity3d

我无法通过脚本(而不是检查员)设置默认值,因为有MeshRendererRigiBody等。这些不是数值。

2 个答案:

答案 0 :(得分:1)

使用Reset方法而不是Start / Awake是使用默认值初始化组件的更好方法(仅当默认值与运行时的游戏设置无关时)。

如果要在运行时/游戏时初始化字段,请使用Awake。并将Start用于所有GetComponent逻辑。因为在Start之后调用Awake并确保在调用GetComponent找到它们之前已正确初始化场景中的所有其他组件。

编辑:重置时的单行为示例。

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

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

}

然后将此组件添加到Unity中的GameObject。您会注意到这些值会自动设置。如果您想重置此组件:右键单击并重置。

enter image description here

答案 1 :(得分: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?