我想防止某些属性字段可能被预制件的“应用”按钮更改,有没有办法以编程方式标记属性字段的值被更改(使其始终为粗体)?
问问题
1836 次
2 回答
0
You need different instances of the Waypath so they're unique for each of the instantiated NPC's.
于 2015-01-22T12:42:13.967 回答
0
你的问题很有趣。我做了一个快速的研究来给你一个很好的答案,但我做不到。Unity 对此没有内置的解决方案。它肯定会有用,但很抱歉没有。
我发现唯一有用但自己没有尝试过的是这个论坛帖子。作者为他正在使用的解决方法提供了一段很好的代码来回答自己,您可以根据自己的需要进行调整。
为简单起见,我将其粘贴在这里:
public override void OnInspectorGUI ()
{
serializedObject.Update ();
DrawDefaultInspector ();
SerializedProperty myProperty = serializedObject.FindProperty ("maxDistance");
if (tick) {
myProperty.floatValue = tempValue;
tick = false;
}
if(!Application.isPlaying)
{
if (!myProperty.prefabOverride) {
GUI.color = Color.red;
tick = true;
tempValue =myProperty.floatValue;
myProperty.floatValue += 1;
}
else
GUI.color = Color.green;
}
EditorGUILayout.PropertyField (myProperty);
if (GUI.changed) {
EditorUtility.SetDirty (target);
}
serializedObject.ApplyModifiedProperties ();
}
由于问题的日期,我希望这对您有用。祝你好运!
于 2015-09-30T15:30:04.593 回答