Unity 6.3
0 онлайн 0 гостей 3 в системе
Вход

EditorGUILayout.CurveField

Declaration

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);

Параметры

Параметр Описание
метка Необязательная метка для отображения перед полем.
значение Кривая для редактирования.
цвет Цвет для отображения кривой.
диапазоны Необязательный прямоугольник, внутри которого ограничивается кривая.
варианты Необязательный список параметров компоновки, задающих дополнительные свойства раскладки. Любые переданные здесь значения переопределяют настройки, заданные style.
Дополнительные ресурсы: GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.

Возвращаемое значение

AnimationCurve Кривая, измененная пользователем.

Описание

Сделайте поле для редактирования AnimationCurve.


Создать анимацию на другой оси и назначить ее GameObject.

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<FollowAnimationCurve>();

comp.SetCurves(curveX, curveY, curveZ); } else { Debug.LogError("No Game Object selected for adding an animation curve"); } } }

И скрипт, который работает с примером:

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(SerializedProperty property, Color color, Rect ranges, params GUILayoutOption[] options);
public static void CurveField(SerializedProperty property, Color color, Rect ranges, GUIContent label, params GUILayoutOption[] options);

Параметры

Параметр Описание
свойство Кривая для редактирования.
цвет Цвет для отображения кривой.
диапазоны Необязательный прямоугольник, внутри которого ограничивается кривая.
варианты Необязательный список параметров компоновки, задающих дополнительные свойства раскладки. Любые переданные здесь значения переопределяют настройки, заданные style.
Дополнительные ресурсы: GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight.
метка Необязательная метка для отображения перед полем. Передайте [[GUIContent.none], чтобы скрыть метку.

Описание

Сделайте поле для редактирования AnimationCurve.