AnimationMode.IsPropertyAnimated
Declaration
public static bool IsPropertyAnimated(Object target, string propertyPath);Параметры
| Параметр | Описание |
|---|---|
| Цель | Объект для определения того, содержал ли он анимацию. |
| propertyPath | Имя анимации для поиска. |
Возвращаемое значение
логическое Находится ли свойство поиска в списке.
Описание
Проверяет, находится ли указанное свойство в режиме Animation и анимировано ли оно.
IsPropertyAnimated проверяют, анимировано ли свойство. Эта проверка требует также объекта, в котором это свойство может быть найдено.
color ищется в следующем примере скрипта. Он является частью объекта Renderer. Обратите внимание, что в примере используется сфера GameObject и файл анимации color.anim. Цветовая анимация в color.anim имеет цвет от желтого до синего.
// Demo showing how IsPropertyAnimated() can be used to determine if a property // on an object is being animated. In this example the color in a Renderer is // animated.
using UnityEngine; using UnityEditor;
public class ExampleClass : EditorWindow { protected GameObject go; protected AnimationClip animationClip; protected float time = 0.0f; protected bool showColor = false;
[MenuItem("Examples/AnimationMode demo")] public static void DoWindow() { var window = GetWindow<ExampleClass>(); window.Show(); }
void OnGUI() { if (go == null) { EditorGUILayout.HelpBox("Select a GO", MessageType.Info); return; }
EditorGUILayout.LabelField("Color slider");
if (animationClip == null) { AnimationMode.StartAnimationMode(); animationClip = AssetDatabase.LoadAssetAtPath<AnimationClip>("Assets/color.anim"); }
if (animationClip != null) { float startTime = 0.0f; float stopTime = animationClip.length; time = EditorGUILayout.Slider(time, startTime, stopTime); }
if (showColor) { EditorGUILayout.LabelField("Red color being animated"); } }
void Update() { if (go == null) return;
if (animationClip == null) return;
if (AnimationMode.InAnimationMode()) { Renderer rend = go.GetComponent<Renderer>();
if (AnimationMode.IsPropertyAnimated(rend, "material._Color.r")) { showColor = true; } else { showColor = false; }
AnimationMode.BeginSampling(); AnimationMode.SampleAnimationClip(go, animationClip, time); AnimationMode.EndSampling();
SceneView.RepaintAll(); } }
// Has a GameObject been selection? public void OnSelectionChange() { go = Selection.activeGameObject; Repaint(); }
public void OnDestroy() { Debug.Log("Shutting down"); AnimationMode.StopAnimationMode(); } }