版本: Unity 6 (6000.0)
语言英语
  • C#

EditorGUI.CurveField

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实阅读了用户提出的每个建议更改,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

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

参数

position 屏幕上用于该字段的矩形。
label 可选标签,显示在字段前面。
value 要编辑的曲线。
color 显示曲线的颜色。
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)); } }

声明

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

参数

position 屏幕上用于该字段的矩形。
property 要编辑的曲线。
color 显示曲线的颜色。
ranges 可选矩形,曲线在此范围内受限。
label 可选标签,显示在字段前面。传递 [[GUIContent.none] 以隐藏标签。

描述

创建一个用于编辑AnimationCurve 的字段。