EditorGUI.CurveField
Declaration
public static AnimationCurve CurveField(Rect position, AnimationCurve value);public static AnimationCurve CurveField(Rect position, string label, AnimationCurve value);public static AnimationCurve CurveField(Rect position, GUIContent label, AnimationCurve value);public static AnimationCurve CurveField(Rect position, AnimationCurve value, Color color, Rect ranges);public static AnimationCurve CurveField(Rect position, string label, AnimationCurve value, Color color, Rect ranges);public static AnimationCurve CurveField(Rect position, GUIContent label, AnimationCurve value, Color color, Rect ranges);Параметры
| Параметр | Описание |
|---|---|
| должность | Прямоугольник на экране, который будет использоваться для поля. |
| метка | Необязательная метка для отображения перед полем. |
| значение | Кривая для редактирования. |
| цвет | Цвет для отображения кривой. |
| диапазоны | Необязательный прямоугольник, внутри которого ограничивается кривая. |
Возвращаемое значение
AnimationCurve Кривая, измененная пользователем.
Описание
Создает поле для редактирования AnimationCurve.
Поле кривой в окне редактора.
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor;
public class EditorGUICurveField : EditorWindow { AnimationCurve curveX = AnimationCurve.Linear(0, 0, 1, 0); AnimationCurve curveY = AnimationCurve.Linear(0, 0, 1, 1); AnimationCurve curveZ = AnimationCurve.Linear(0, 0, 1, 0);
[MenuItem("Examples/Curve Field demo")] static void Init() { EditorWindow window = GetWindow(typeof(EditorGUICurveField)); window.position = new Rect(0, 0, 400, 199); window.Show(); }
void OnGUI() { curveX = EditorGUI.CurveField( new Rect(3, 3, position.width - 6, 50), "Animation on X", curveX); curveY = EditorGUI.CurveField( new Rect(3, 56, position.width - 6, 50), "Animation on Y", curveY); curveZ = EditorGUI.CurveField( new Rect(3, 109, position.width - 6, 50), "Animation on Z", curveZ);
if (GUI.Button(new Rect(3, 163, position.width - 6, 30), "Generate Curve")) AddCurveToSelectedGameObject(); }
// A GameObject with the FollowAnimationCurve script must be selected void AddCurveToSelectedGameObject() { if (Selection.activeGameObject) { FollowAnimationCurve comp = Selection.activeGameObject.GetComponent<FollowAnimationCurve>(); comp.SetCurves(curveX, curveY, curveZ); } else { Debug.LogError("No Game Object selected for adding an animation curve"); } } }
Это скрипт времени выполнения, который анимирует приложенный GameObject:
// Note that this must be FollowAnimationCurve.cs
using UnityEngine; using System.Collections;
public class FollowAnimationCurve : MonoBehaviour { public AnimationCurve curveX; public AnimationCurve curveY; public AnimationCurve curveZ;
public void SetCurves(AnimationCurve xC, AnimationCurve yC, AnimationCurve zC) { curveX = xC; curveY = yC; curveZ = zC; }
void Update() { transform.position = new Vector3( curveX.Evaluate(Time.time), curveY.Evaluate(Time.time), curveZ.Evaluate(Time.time)); } }
Declaration
public static void CurveField(Rect position, SerializedProperty property, Color color, Rect ranges);public static void CurveField(Rect position, SerializedProperty property, Color color, Rect ranges, GUIContent label);Параметры
| Параметр | Описание |
|---|---|
| должность | Прямоугольник на экране, который будет использоваться для поля. |
| свойство | Кривая для редактирования. |
| цвет | Цвет для отображения кривой. |
| диапазоны | Необязательный прямоугольник, внутри которого ограничивается кривая. |
| метка | Необязательная метка для отображения перед полем. Передайте [[GUIContent.none], чтобы скрыть метку. |
Описание
Создает поле для редактирования AnimationCurve.