Параметры
target | Объект, чтобы определить, содержит ли он анимацию. |
propertyPath | Имя анимации для поиска. |
Возвращает
bool Найден ли поиск недвижимости или нет.
Описание
Проверяет, находится ли указанное свойство в режиме анимации и анимируется ли оно.
IsPropertyAnimated проверяет, анимируется ли свойство. Для этой проверки также требуется объект, в котором можно найти свойство.
color
ищется в следующем примере скрипта. Он является частью объекта Renderer
. Обратите внимание, что в примере используется сфера GameObject и файл анимации color.anim. Цветовая анимация в color.anim имеет цвет от желтого до синего.
// Демонстрация, показывающая, как можно использовать IsPropertyAnimated() для определения того, является ли свойство
// на объекте, который анимируется. В этом примере цвет в Renderer
// анимированный.
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();
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();
}
}