画像の通り子のオブジェクトに当たり判定を入れて足元の判定を取ろうとしのですがUpdateでデバッグログを出力してもisGroundがtrueになりませんこれは何が原因なのでしょうか?
※当たり判定を大きくしましたが以前ログがtrueになりません
Ground.cs
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Ground : MonoBehaviour { public bool isGround; // Start is called before the first frame update void Start() { isGround = false; } // Update is called once per frame void Update() { Debug.Log(isGround); } private void OnCollisionEnter(Collision collision) { isGround = true; } private void OnCollisionExit(Collision collision) { //isGround = false; } }
オブジェクトを当てる側、当たられる側両方にColliderコンポーネントを追加しましたか?
オブジェクトを当てる側、当たられる側どちらかにはRigidBodyコンポーネントを追加しましたか?
その2点だけ確認をお願いします。
確認しましたた、一応治ったのですがいかんせんそのデバッグログが正確に出力されませんこれはなぜでしょうか?
Debug.Logを毎フレーム呼び出しているので、処理が追いついていないのではないでしょうか?
基本的にDebug.Logは「状態が変化した」時に使うものなので、今回の使い方は適切ではありません。
少し面倒ですがTextのGUIにisGroundの状態を表示したら解決するのではないでしょうか?
Debug.LogそうですがonCollisionenterが呼び出せれないのですw
原因は不明ですがTriggerなオブジェクトを足元に設置してそこの中にOnCollisionEnterを書けば解決しませんか?
参考>>http://nnana-gamedev.hatenablog.com/entry/2017/12/02/203824
いえ、解決しませんでした。OnTriggerEnterは呼ばれるのですが
OnCollisionEnterになると呼ばれません。親のプレイヤーにはRigidbodyが入っています。
スクリプトもちゃんとアタッチしてあるます。
回答1件
あなたの回答
tips
プレビュー