物が落ちてくる衝突ゲームを作成しています。
りんごと爆弾の2種類をつくり、当たるとそれぞれ別の音が発生するように検討しています。
言語はunityです
お手数おかけしますが、ご回答いただけますと幸いです。
PlayerController
1 2using System.Collections; 3using System.Collections.Generic; 4using UnityEngine; 5 6public class PlayerController : MonoBehaviour 7{ 8 public AudioClip appleSE; 9 public AudioClip bombSE; 10 AudioSource aud; 11 GameObject director; 12 13 14 // Start is called before the first frame update 15 void Start() 16 { 17 this.director = GameObject.Find("GameDirector"); 18 this.aud = GetComponent<AudioSource>(); 19 } 20 21 void OnTriggerEnter(Collider other) 22 { 23 if(other.gameObject.tag =="Apple") 24 { 25 this.director.GetComponent<GameDirector>().AddPoint(); 26 this.aud.PlayOneShot(this.appleSE); 27 } 28 else 29 { 30 this.director.GetComponent<GameDirector>().DecreaseHp(); 31 this.aud.PlayOneShot(this.bombSE); 32 } 33 } 34 35 // Update is called once per frame 36 void Update() 37 { 38 //左矢印が押された時 39 if(Input.GetKeyDown(KeyCode.LeftArrow)) 40 { 41 transform.Translate(-1, 0, 0); //左に「1」動かす 42 43 } 44 45 if(Input.GetKeyDown(KeyCode.RightArrow)) 46 { 47 transform.Translate(1, 0, 0); //右に「1」動かす 48 } 49 } 50} 51
BombController
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class BombController : MonoBehaviour 6{ 7 GameObject gameFuwapon; 8 9 // Start is called before the first frame update 10 void Start() 11 { 12 this.gameFuwapon = GameObject.Find("gameFuwapon"); 13 } 14 15 // Update is called once per frame 16 void Update() 17 { 18 //フレームごとに等速で落下させる 19 transform.Translate(0, -0.1f, 0); 20 21 //画面の外に出たらオブジェクトを破棄する 22 if(transform.position.y < -5.0f) 23 { 24 Destroy(gameObject); 25 } 26 27 //当たり判定 28 Vector2 p1 = transform.position; 29 Vector2 p2 = this.gameFuwapon.transform.position; 30 Vector2 dir = p1 - p2; 31 float d = dir.magnitude; 32 float r1 = 0.15f; //りんごの半径 33 float r2 = 1.0f; //プレイヤーの半径 34 35 if(d < r1 + r2) 36 { 37 //監督スクリプトにプレイヤーと衝突したことを伝える 38 GameObject director = GameObject.Find("GameDirector"); 39 director.GetComponent<GameDirector>().DecreaseHp(); 40 41 //衝突した場合は矢を消す 42 Destroy(gameObject); 43 } 44 } 45} 46
AppleController
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class AppleController : MonoBehaviour 6{ 7 GameObject gameFuwapon; 8 public AudioClip appleSE; 9 AudioSource aud; 10 11 // Start is called before the first frame update 12 void Start() 13 { 14 this.gameFuwapon = GameObject.Find("gameFuwapon"); 15 this.aud = GetComponent<AudioSource>(); 16 } 17 18 // Update is called once per frame 19 void Update() 20 { 21 //フレームごとに等速で落下させる 22 transform.Translate(0, -0.1f, 0); 23 24 //画面の外に出たらオブジェクトを破棄する 25 if(transform.position.y < -5.0f) 26 { 27 Destroy(gameObject); 28 } 29 30 //当たり判定 31 Vector2 p1 = transform.position; 32 Vector2 p2 = this.gameFuwapon.transform.position; 33 Vector2 dir = p1 - p2; 34 float d = dir.magnitude; 35 float r1 = 0.15f; //りんごの半径 36 float r2 = 1.0f; //プレイヤーの半径 37 38 if(d < r1 + r2) 39 { 40 //監督スクリプトにプレイヤーと衝突したことを伝える 41 GameObject director = GameObject.Find("GameDirector"); 42 this.aud.PlayOneShot(this.appleSE); 43 director.GetComponent<GameDirector>().AddPoint(); 44 45 //衝突した場合は矢を消す 46 Destroy(gameObject); 47 } 48 } 49} 50
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/18 14:07
2021/08/18 14:43
2021/08/19 13:10