0
を使用して明らかであるかどうかを検出は、現在、私のコードは次のようになります。Unityは:パスは、レイキャスト
Vector3 tempPos = transform.position;
Vector3 checkPos = new Vector3(tempPos.x, tempPos.y, Mathf.Round(tempPos.z + 1));
if (Input.GetKey(KeyCode.W))
{
Vector3 direction = checkPos - transform.position;
Ray ray = new Ray(transform.position, direction);
RaycastHit hit;
if (Physics.Raycast(ray, out hit))
{
Debug.Log(hit.point);
}
Debug.DrawRay(transform.position, direction, Color.black, 20, false);
}
をしかし、私は、右のオブジェクトに対して最大だ場合でも、私は私のDEBUG.LOG()文から何も得ます。実際には、何も表示されないので、Debug.DrawRay()ステートメントを呼び出すことさえできません。私は間違っていますか?どんな助けもありがとう。前もって感謝します!
はそれが可能tempPos.z + 1であるが、まだあなたのメッシュの内側に表示され、あなただけのカント線を_see_? – Bejasc
これは 'update()'ループですか?このコードはどこですか? 'if'ステートメントの外でも、そのコードのどこにでも' Debug.Log'を置くとヒットしません。この問題は、コード自体がどこにあるのかと思われます。 –
@MaxvonHippel https://hastebin.com/vupiyidaqi.cs <<これはPlayerController.csクラス全体です。問題のメソッドはvoidです。MovePlayer() –