我无法通过脚本(而不是检查员)设置默认值,因为有MeshRenderer
,RigiBody
等。这些不是数值。
答案 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
。您会注意到这些值会自动设置。如果您想重置此组件:右键单击并重置。
答案 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?