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

SerializedProperty.gradientValue

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

public Gradient gradientValue;

描述

渐变属性的值。

using System;
using UnityEditor;
using UnityEngine;

[CreateAssetMenu] public class SerializedPropertyGradientExample : ScriptableObject { public Gradient m_Gradient;

[Range(0, 1)] public float m_EvaluationTime;

public SerializedPropertyGradientExample() { // Establish a default gradient var colorKeys = new GradientColorKey[] { new GradientColorKey() { color = Color.red, time = 0.0f }, new GradientColorKey() { color = Color.green, time = 0.5f }, new GradientColorKey() { color = Color.blue, time = 1.0f } }; var alphaKeys = new GradientAlphaKey[] { new GradientAlphaKey() { alpha = 0.5f, time = 0.0f }, new GradientAlphaKey() { alpha = 1.0f, time = 1.0f } }; m_Gradient = new Gradient(); m_Gradient.SetKeys(colorKeys, alphaKeys); } }

// Override the default inspector behavior to add extra text line after the two properties [CustomEditor(typeof(SerializedPropertyGradientExample))] public class SerializedPropertyGradientExampleEditor : Editor { public override void OnInspectorGUI() { DrawDefaultInspector();

var gradient = serializedObject.FindProperty("m_Gradient").gradientValue; var evalPoint = serializedObject.FindProperty("m_EvaluationTime").floatValue; GUILayout.Label($"Gradiant at time {evalPoint}: {gradient.Evaluate(evalPoint)}"); } }