• G#

AnimationMode

kelas di UnityEditor

Description

AnimationMode digunakan oleh AnimasiWindow untuk menyimpan properti yang dimodifikasi oleh pemutaran AnimasiClip.

Ketika keluar AnimationMode semua properti dibalik ke keadaan default mereka. Sifat animasi juga disorot oleh inspektur. Gunakan StartAnimationMode untuk memasukkan mode Animasi. Dalam mode Animasi editor diwarnai untuk menunjukkan bahwa itu menarik. Properti dapat animasi melalui SampleAnimationClip.

Contoh skrip berikut menunjukkan bagaimana GameObject dapat animasi. AnimationMode memiliki fungsi yang mendukung ini. Demo dapat diluncurkan dari Contoh/AnimationMode

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

Sifat Statis

animasiPropertyColor Warna yang digunakan untuk menunjukkan bahwa properti saat ini sedang animasi.
calonPropertyColor Warna yang digunakan untuk menunjukkan bahwa properti animasi telah dimodifikasi.
recordedPropertyColor Warna yang digunakan untuk menunjukkan bahwa properti animasi secara otomatis mencatat perubahan dalam klip animasi.

Metode Statis

AddEditorCurveBinding Tandai properti yang didefinisikan oleh EditorCurveBinding saat ini sedang animasi.
AddPropertyModification Tandai properti saat ini sedang animasi.
BeginSampling Menginisialisasikan awal sampling klip animasi.
EndSampling Selesaikan pengambilan klip animasi.
InAnimationMode Periksa apakah Editor dalam mode Animasi.
IsPropertyAnimated Periksa apakah properti yang ditentukan dalam mode Animasi dan sedang animasi.
SampleAnimationClip Contoh AnimasiClip untuk GameObject dan juga mencatat sifat yang dimodifikasi ketika dalam mode Animasi.
SamplePlayableGraph Contoh indeks output yang ditentukan dari PlayableGraph dan juga mencatat sifat yang dimodifikasi ketika dalam mode Animasi.
StartAnimationMode Memulai mode Animasi.
StopAnimationMode Menghentikan mode Animasi dan mengalihkan sifat apa pun yang animasi sementara dalam mode Animasi.