Объявление
public static AnimationCurve CurveField(AnimationCurve value, params GUILayoutOption[] options);public static AnimationCurve CurveField(string label, AnimationCurve value, params GUILayoutOption[] options);
public static AnimationCurve CurveField(GUIContent label, AnimationCurve value, params GUILayoutOption[] options);
public static AnimationCurve CurveField(AnimationCurve value, Color color, Rect ranges, params GUILayoutOption[] options);
public static AnimationCurve CurveField(string label, AnimationCurve value, Color color, Rect ranges, params GUILayoutOption[] options);
public static AnimationCurve CurveField(GUIContent label, AnimationCurve value, Color color, Rect ranges, params GUILayoutOption[] options);
Параметры
label | Необязательная метка для отображения перед полем. |
value | Кривая для редактирования. |
color | Цвет, которым будет показана кривая. |
ranges | Необязательный прямоугольник, внутри которого ограничивается кривая. |
options | Необязательный список параметров макета, определяющих дополнительные свойства макета. Любые переданные здесь значения переопределяют настройки, заданные стилем .Смотрите так же: GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight. |
Возвращает
AnimationCurve Кривая, отредактированная пользователем.
Описание
Создаёт поле для редактирования AnimationCurve.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
public class FollowCurve : EditorWindow
{
AnimationCurve curveX = AnimationCurve.Linear(0, 0, 10, 10);
AnimationCurve curveY = AnimationCurve.Linear(0, 0, 10, 10);
AnimationCurve curveZ = AnimationCurve.Linear(0, 0, 10, 10);
[MenuItem("Examples/Create Curve For Object")]
static void Init()
{
FollowCurve window = (FollowCurve)EditorWindow.GetWindow(typeof(FollowCurve));
window.Show();
}
void OnGUI()
{
curveX = EditorGUILayout.CurveField("Animation on X", curveX);
curveY = EditorGUILayout.CurveField("Animation on Y", curveY);
curveZ = EditorGUILayout.CurveField("Animation on Z", curveZ);
if (GUILayout.Button("Generate Curve"))
AddCurveToSelectedGameObject();
}
void AddCurveToSelectedGameObject()
{
if (Selection.activeGameObject)
{
FollowAnimationCurve comp =
Selection.activeGameObject.AddComponent();
comp.SetCurves(curveX, curveY, curveZ);
}
else
{
Debug.LogError("No Game Object selected for adding an animation curve");
}
}
}
And the script that works with the example:
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));
}
}
Объявление
public static void CurveField(SerializedProperty property, Color color, Rect ranges, params GUILayoutOption[] options);public static void CurveField(SerializedProperty property, Color color, Rect ranges, GUIContent label, params GUILayoutOption[] options);
Параметры
property | Кривая для редактирования. |
color | Цвет, которым будет показана кривая. |
ranges | Необязательный прямоугольник, внутри которого ограничивается кривая. |
options | Необязательный список параметров макета, определяющих дополнительные свойства макета. Любые переданные здесь значения переопределяют настройки, заданные стилем .Смотрите так же: GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight. |
label | Необязательная метка для отображения перед полем. Передайте [[GUIContent.none], чтобы скрыть метку. |
Описание
Создаёт поле для редактирования AnimationCurve.