• G#

AnimasiHumanStream.SolveIK

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

Declaration

publik void SolveIK();

Description

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