unity3d 即使在PlayMode中,ScriptableObjects也会在编辑器中序列化
示例
访问ScriptableObject实例中的序列化字段时,应格外小心。
如果public通过标记或序列化了一个字段SerializeField,则永久更改其值。当退出播放模式时,它们不会像MonoBehaviours一样重置。有时这可能很有用,但也会造成混乱。
因此,最好使序列化字段为只读,并完全避免使用公共字段。
public class MyScriptableObject : ScriptableObject
{
[SerializeField]
int mySerializedValue;
public int MySerializedValue
{
get { return mySerializedValue; }
}
}如果您希望在播放会话之间重置的ScriptableObject中存储公共值,请考虑使用以下模式。
public class MyScriptableObject : ScriptableObject
{
//专用字段未序列化,重置后将重置为默认值
private int mySerializedValue;
public int MySerializedValue
{
get { return mySerializedValue; }
set { mySerializedValue = value; }
}
}
热门推荐
1 如何训练狗狗不叫
2 训练狗狗不叫
3 训练狗狗随行
4 怎么训练狗狗不叫
7 训练比熊狗狗教程
10 上海狗狗训练
11 怎么训练狗狗上厕所
12 训练狗狗趴下
13 狗狗服从训练
14 训练狗狗拒食
15 训练狗狗笑
16 训练狗狗大便
17 训练狗狗立
18 训练狗狗捡东西