Debug.Log()がコンソールに表示しない、よくあるケースについて見ていきましょう。
今回の例では、Cubeを動かしてSphereに触れたら、コンソールに「ぶつかった!」と出てくるようにします。
Sphereにタグをつけて、当たり判定をつくっています。
CubeMove.csを作成し、Cubeに追加して動かしています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeMove : MonoBehaviour { void Update() { float dx = Input.GetAxis("Horizontal") * Time.deltaTime * 3.0f; float dz = Input.GetAxis("Vertical") * Time.deltaTime * 3.0f; transform.position = new Vector3 ( transform.position.x + dx, transform.position.y, transform.position.z + dz ); } private void OnTriggerEnter(Collider other) { if (other.gameObject.tag == "Target" ) { Debug.Log("ぶつかった!"); } } } |
1.ログを非表示にしている
コンソールウィンドウに、ログの表示を切り替える箇所があります。
何気なく押してしまっていることもよくありますので、まずはここを確認しましょう。
2.触れられる側の「トリガーにする」チェック忘れ
ぶつかられる側(Sphere)に、「トリガーにする」のチェックを忘れがないかどうか、確認します。
3.触れる側にリジッドボディがない
ぶつかる側(Cube)に、リジッドボディが追加されているか、確認します。
4.タグ名の不一致
ぶつかられる側(Sphere)のタグの名前と、スクリプトで記述したタグの名前が、完全に一致しているか、確認します。
まずは以上のような項目をチェックして、デバッグログが表示されない原因を探ってみましょう。