キャラクタの子に武器を持たせてそのスクリプトが提示スクリプトですまたカプセルコライダーが入っています。
質問1 なぜOnCollisionEnterが呼ばれないのでしょうか?不可解でしかたありません。w
キャラクタにRigidbodyとカプセルコライダー
キャラの子に武器オブジェクトがあり カプセルコライダーが入っていて提示スクリプトはその武器のスクリプト
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Weapon : MonoBehaviour { private GameObject player; private Player sPlayer; // Start is called before the first frame update void Start() { player = GameObject.Find("Ethan"); sPlayer = player.GetComponent<Player>(); } // Update is called once per frame void Update() { Debug.Log("aaaaaa"); } private void OnCollisionEnter(Collision c) { if (c.gameObject.tag == "Coin") //if(sPlayer.isAttack == true && c.gameObject.tag == "Coin") { Destroy(c.gameObject); } } private void OnTriggerEnter(Collider c) { } }
何を言っているかよく分かりません。
「武器に付いているカプセルコライダーを大きくするとOnCollisionEnterが呼ばれない」ということですか?
OnCollisionEnter内のif文の前に「Debug.Log(c.gameObject.name);」と入れるとどんなログが出ますか?(または全くログが出ませんか?)
コライダー同士がシーン開始時に接触しているのか/していないのかを教えてください。
OnColliderEnter()の代わりにOnColliderStay()を試してみてその結果も書いていただけるとなお参考になります。
念のため、当たる側、当たられる側、両方にコライダーが、どちらか一方にリジットボディが入っていることを確認した方がいいと思います。
falseですねコインにRigidbodyとコリジョンが入っていて武器にコリジョンが入っていてコリジョンを大きくしてるので当たってないわけはないかと
追記ですが武器にアタッチしてるOnCollisionEnter自体呼ばれていないそうです。w
回答1件
あなたの回答
tips
プレビュー