Curvefield在2017.1版本中消失了

时间:2017-10-03 06:44:41

标签: c# unity3d

在我的自定义脚本对象的自定义编辑器脚本中的EditorGUILayout.Curvefield("curve", new AnimationCurve());函数中编写OnInspectorGUI后,它不会出现在Inspector中。但是,如果我将代码更改为EditorGUILayout.Curvefield("curve", null);。将有一个曲线字段,但无法在曲线编辑窗口中进行编辑。 如何更改代码以使曲线字段有效? 或者这是团结的错误?

1 个答案:

答案 0 :(得分:0)

EditorGUILayout.Curvefield("curve", new AnimationCurve());

每次调用OnInspectorGUI时,这将创建一个只读 AnimationCurve

EditorGUILayout.Curvefield("curve", null);

空曲线有什么意义?这是完全错误的。

正确使用EditorGUILayout.CurveField

MyScript.cs

using UnityEngine;
public class MyScript : MonoBehaviour
{
    public AnimationCurve myCurve = AnimationCurve.Linear(0, 0, 10, 10);
}

编辑/ MyScriptEditor.cs

using UnityEditor;
using UnityEngine;    
[CustomEditor(typeof(MyScript))]
public class MyScriptEditor : Editor
{
    void OnInspectorGUI()
    {
        var myScript = (MyScript)target;
        EditorGUILayout.CurveField("curve", myScript.myCurve);
    }
}

然后结果是:
result

可编辑。

相关问题