1

我想防止某些属性字段可能被预制件的“应用”按钮更改,有没有办法以编程方式标记属性字段的值被更改(使其始终为粗体)?

4

2 回答 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 回答