【发布时间】:2020-03-22 18:20:43
【问题描述】:
我正在尝试实现 OnValueChanged 方法,该方法将在更改目标字段时自动调用。例如,我有一个统一的 MonoBehaviour 类,如果它的枚举字段值发生更改,则执行一些代码。这是伪代码
public class SomeClass : MonoBehaviour {
public enum SomeEnum { Value1, Value2 }
public SomeEnum MyEnum;
void Update() {
if(MyEnum value isChanged){
call OnMyEnumChanged();
}
}
public void OnMyEnumChanged() {
}
}
希望我的问题很清楚,任何建议都非常感谢
【问题讨论】:
-
在字段上放一个getter和setter,在设置时,调用一个deligate for onenumchanged
-
我试过了,但它不起作用,因为当我从统一编辑器更改值时,没有检测到值变化
-
如果您在编辑器中使用此脚本,请考虑使用
ExecuteInEditMode属性。 docs.unity3d.com/ScriptReference/ExecuteInEditMode.html -
不,不。这不是我想要的
-
@UnityDev define
if it's enum field value is changed.. 你的意思是通过代码还是通过 Inspector?
标签: c# unity3d game-development