• G#

Login Login

antarmuka dalam UnityEngine. Login

Sarankan perubahan

Success!

Terima kasih untuk membantu kami meningkatkan kualitas Dokumentasi Unity. Meskipun kami tidak dapat menerima semua pengajuan, kami membaca setiap perubahan yang disarankan dari pengguna kami dan akan melakukan pembaruan di mana berlaku.

Close

Penjelasan gagal

Untuk beberapa alasan perubahan yang disarankan Anda tidak dapat diajukan. Silahkan <a>try lagi</a> dalam beberapa menit. Dan terima kasih untuk mengambil waktu untuk membantu kami meningkatkan kualitas Dokumentasi Unity.

Close

Cancel

Description

Memungkinkan kelas untuk memodifikasi bagaimana AnimasiClip dicontohkan di jendela Animasi dengan menyediakan node Playable sendiri ke jendela Animasi PlayableGraph. Kelas juga harus mengherankan dari MonoBehaviour.

using UnityEngine;
using UnityEngine.Animations;
using UnityEngine.Playables;

[RequireComponent(typeof(Animator))] public class ExampleScript : MonoBehaviour, IAnimationWindowPreview { public Vector3 offset = Vector3.zero;

private AnimationScriptPlayable m_Playable; private AnimationJob m_Job; private Vector3 m_CurrentOffset;

struct AnimationJob : IAnimationJob { public TransformStreamHandle transform; public Vector3 offset;

public void ProcessRootMotion(AnimationStream stream) { Vector3 position = transform.GetLocalPosition(stream); position += offset;

transform.SetLocalPosition(stream, position); }

public void ProcessAnimation(AnimationStream stream) { } }

public void StartPreview() { m_CurrentOffset = offset; }

public void StopPreview() { }

public void UpdatePreviewGraph(PlayableGraph graph) { if (m_CurrentOffset != offset) { m_Job.offset = offset; m_Playable.SetJobData(m_Job);

m_CurrentOffset = offset; } }

public Playable BuildPreviewGraph(PlayableGraph graph, Playable input) { Animator animator = GetComponent<Animator>();

m_Job = new AnimationJob(); m_Job.transform = animator.BindStreamTransform(transform); m_Job.offset = offset;

m_Playable = AnimationScriptPlayable.Create(graph, m_Job, 1);

graph.Connect(input, 0, m_Playable, 0);

return m_Playable; } }

Metode publik

BuildPreviewGraph Daftar kustom Diaktifkan node ke jendela Animasi PlayableGraph.
StartPreview Pemberitahuan callback ketika jendela Animasi dimulai pratinjau AnimasiClip.
StopPreview Pemberitahuan callback ketika jendela Animasi berhenti bertinjau AnimasiClip.
UpdatePreviewGraph Pemberitahuan callback ketika jendela Animasi memperbarui PlayableGraph sebelum pengambilan gambar AnimasiClip.