0

Unity でアニメーターを使用しているときに問題が発生しました。を使ってキャラクターの位置から前方に光線を放ちたい

Ray ray = new Ray(transform.position, transform.forward);
Physics.Raycast(ray, out hitInfo);

しかし、Root Transform Position(Y) の "Bake Into Pose" をチェックすると、アニメーター (ランニングとウォーキング) が位置を変更し、Y 軸が実際の値よりも低くなり、負になります。そのため、光線が何にも当たらないことがありました。しかし、「Bake Into Pose」のチェックを外すと、キャラクターは重力を失います。では、どうすれば修正できますか?

4

1 に答える 1

0

常に特定の高さ (y) でレイキャストしたい場合は、キャストしている場所から原点を制限できます。交換 ?フロート、変数、または事前に計算された値。

Vector3 rayOrigin = transform.position;
rayOrigin.y = ? // locked y

Ray ray = new Ray(rayOrigin, transform.forward);
Physics.Raycast(ray, out hitInfo);
于 2015-12-20T11:14:03.133 に答える