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.
CloseUntuk 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.
CloseMengeksekusi pemecahan IK.
Pemecah IK humanoid dieksekusi menggunakan posisi tujuan IK, rotasi, dan berat saat ini ditetapkan dalam AnimasiHumanStream.
using UnityEngine; using UnityEngine.Playables; using UnityEngine.Animations;
public struct IKJob : IAnimationJob { public TransformSceneHandle effector; public PropertySceneHandle positionWeight; public PropertySceneHandle rotationWeight;
public void ProcessRootMotion(AnimationStream stream) {}
public void ProcessAnimation(AnimationStream stream) { AnimationHumanStream humanStream = stream.AsHuman(); if (effector.IsValid(stream) && positionWeight.IsValid(stream) && rotationWeight.IsValid(stream)) { humanStream.SetGoalPosition(AvatarIKGoal.LeftFoot, effector.GetPosition(stream)); humanStream.SetGoalRotation(AvatarIKGoal.LeftFoot, effector.GetRotation(stream)); humanStream.SetGoalWeightPosition(AvatarIKGoal.LeftFoot, positionWeight.GetFloat(stream)); humanStream.SetGoalWeightRotation(AvatarIKGoal.LeftFoot, rotationWeight.GetFloat(stream)); }
humanStream.SolveIK(); } }
.
Copyright ©2022 Unity Technologies. Tanggal Publikasi: 2022-04-04.