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

AnimationMode

класс в UnityEditor

Описание

AnimationMode используется AnimationWindow для хранения свойств, измененных при воспроизведении AnimationClip.

При выходе AnimationMode все свойства возвращаются к значениям по умолчанию. Анимируемые свойства при этом подсвечиваются инспектором. Использование StartAnimationMode чтобы войти Animation режим. В Animation в режиме анимации редактор затеняется, чтобы показать, что он анимирует. Свойства могут быть анимированы с помощью SampleAnimationClip.

Следующий пример скрипта показывает, как GameObject может быть анимирован. AnimationMode Демонстрацию можно запустить из раздела "Примеры/AnimationMode demo" меню. После запуска этого демо требуется GameObject которые будут отобраны в ходе Scene (Этот пример требует, чтобы игра не была запущена в окне Game (После GameObject Выберите созданный анимационный клип для выбранного клипа и нажмите кнопку "Выбрать". GameObject. После того, как анимационный клип был загружен, анимация может быть применена к GameObject. Нажатие кнопки Анимация добавляет в окно ползунок. Использование ползунок будет применять анимацию к выбранному GameObject. Кнопка Блокировка предотвращает применение анимации к другому объекту. GameObject.

using UnityEngine;
using UnityEditor;

public class ExampleClass : EditorWindow { protected GameObject go; protected AnimationClip animationClip; protected float time = 0.0f; protected bool lockSelection = false; protected bool animationMode = false;

[MenuItem("Examples/AnimationMode demo", false, 2000)] public static void DoWindow() { var window = GetWindowWithRect<ExampleClass>(new Rect(0, 0, 300, 80)); window.Show(); }

// Has a GameObject been selection? public void OnSelectionChange() { if (!lockSelection) { go = Selection.activeGameObject; Repaint(); } }

// Main editor window public void OnGUI() { // Wait for user to select a GameObject if (go == null) { EditorGUILayout.HelpBox("Please select a GameObject", MessageType.Info); return; }

// Animate and Lock buttons. Check if Animate has changed GUILayout.BeginHorizontal(); EditorGUI.BeginChangeCheck(); GUILayout.Toggle(AnimationMode.InAnimationMode(), "Animate"); if (EditorGUI.EndChangeCheck()) ToggleAnimationMode();

GUILayout.FlexibleSpace(); lockSelection = GUILayout.Toggle(lockSelection, "Lock"); GUILayout.EndHorizontal();

// Slider to use when Animate has been ticked EditorGUILayout.BeginVertical(); animationClip = EditorGUILayout.ObjectField(animationClip, typeof(AnimationClip), false) as AnimationClip; if (animationClip != null) { float startTime = 0.0f; float stopTime = animationClip.length; time = EditorGUILayout.Slider(time, startTime, stopTime); } else if (AnimationMode.InAnimationMode()) AnimationMode.StopAnimationMode(); EditorGUILayout.EndVertical(); }

void Update() { if (go == null) return;

if (animationClip == null) return;

// Animate the GameObject if (!EditorApplication.isPlaying && AnimationMode.InAnimationMode()) { AnimationMode.BeginSampling(); AnimationMode.SampleAnimationClip(go, animationClip, time); AnimationMode.EndSampling();

SceneView.RepaintAll(); } }

void ToggleAnimationMode() { if (AnimationMode.InAnimationMode()) AnimationMode.StopAnimationMode(); else AnimationMode.StartAnimationMode(); } }

Статические свойства

Свойство Описание
animatedPropertyColorЦвет, используемый для указания на то, что свойство в настоящее время анимировано.
candidatePropertyColorЦвет, используемый для указания того, что анимированное свойство было изменено.
recordedPropertyColorЦвет, используемый для указания того, что анимированное свойство автоматически записывает изменения в клипе анимации.

Статические методы

Метод Описание
AddEditorCurveBindingПомечает свойство, определенное EditorCurveBinding, как в настоящее время анимированное.
AddPropertyModificationПомечает свойство как находящееся в процессе анимации.
BeginSamplingИнициализация начала семплирования клипа анимации.
EndSamplingЗавершите семплирование клипа анимации.
InAnimationModeПроверяет, находится ли Редактор в режиме Animation.
IsPropertyAnimatedПроверяет, находится ли указанное свойство в режиме Animation и анимировано ли оно.
SampleAnimationClipВыбирает AnimationClip для GameObject и также записывает измененные свойства в режиме Animation.
SamplePlayableGraphПробирует указанный индекс выхода PlayableGraph и также записывает измененные свойства в режиме Animation.
StartAnimationModeЗапускает режим Animation.
StopAnimationModeОстановка режима Animation и возврат всех свойств, которые были анимированы в режиме Animation.