前提・実現したいこと
Unityで、スイッチに見立てたキューブにプレイヤーが接触したときだけジャンプ台が起動してボールを上に飛ばす
プレイヤー側のスクリプトのUpdate内でジャンプ台のBoxColliderを無効化して、スイッチとプレイヤーが接触したときにBoxColliderを有効化して上に乗っているボールをImpulseを使って上に飛ばす機能を作っています。
発生している問題・エラーメッセージ
BoxColliderを無効化することはできたが、プレイヤーとスイッチが接触してもBoxColliderが有効にならずボールを飛ばせない。
該当のソースコード
Unity
1ソースコード:プレイヤー側 2using System.Collections; 3using UnityEngine; 4using System.Collections.Generic; 5 6 7public class Player : MonoBehaviour 8{ 9 public GameObject Jumpdai; 10 void Start() 11 { 12 13 } 14 15 // Update is called once per frame 16 void Update() 17 { 18 19 Jumpdai.GetComponent<BoxCollider>().enabled = false; 20 } 21 } 22 void OnTriggerEnter (Collider other) 23 { 24 if (other.CompareTag("Switch")) 25 { 26 Jumpdai.GetComponent<BoxCollider>().enabled = true; 27 } 28 } 29} 30ソースコード:ジャンプ台側 31using System.Collections; 32using System.Collections.Generic; 33using UnityEngine; 34 35public class Jumpdai : MonoBehaviour 36{ 37 public float jumpForce = 15.0f; 38 void Start() 39 { 40 41 } 42 void Update() 43 { 44 45 } 46 47 void OnCollisionEnter(Collision collision) 48 { 49 if (collision.gameObject.name =="Sphere") 50 { 51 collision.gameObject.GetComponent<Rigidbody>().AddForce(0, jumpForce, 0, ForceMode.Impulse); 52 } 53 } 54} 55
試したこと
プログラム開始時にBoxColliderのチェックボックスのチェックが外れているのを確認しました。
Debug.logを使って当たり判定が機能してるか調べましたが問題ありませんでした。
補足情報(FW/ツールのバージョンなど)
Unity 2020.3.5f1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/22 10:20