//何かに触れた時 //private void OnTriggerEnter(Collider other) public void OnCollisionEnter(Collision other) { gameObject.GetComponent <MeshRenderer>().enabled = false; //接触したオブジェクトのTargetDestroyを参照 TargetDestroy target = other.gameObject.GetComponent <TargetDestroy>(); //TargetDestroyがあった場合、ターゲットを消去 if (target) { target.sendDestroy = true; } //パーティクルを親オブジェクト(弾)から切り離し、弾が消えた後も爆発がされるようにする。 explosionParticles.transform.parent = null; //爆発パーティクルを再生 explosionParticles.Play(); //パーティクルが1週がしたらDestory Destroy(explosionParticles.gameObject, explosionParticles.main.duration); ////オブジェクトをDestory //PhotonNetwork.Destroy(gameObject); }
void Shoot() { muzzleFlash.Play(); gunShot.Play(); RaycastHit hit; if (Physics.Raycast(playerCamera.transform.position, playerCamera.transform.forward, out hit)) { TargetDestroy target = hit.transform.GetComponent <TargetDestroy>(); if (target != null) { target.Die(); } } }
//取得したレベルデザインのデータを元に、ターゲットを配置 public void SetLevelDesign() { //レベルを進める level++; //ターゲットの個数をリセットする targetCount = 0; //インスタンスを生成 foreach (LevelDesignData levelData in levelDataList) { //現在のレベルとは異なるデータは配置しない if (levelData.Level != level) { continue; } //テーブルデータの位置、回転、大きさをインスタンスに入れる変数を作る Vector3 insertPos = new Vector3(levelData.PosX, levelData.PosY, levelData.PosZ); //位置を指定する変数をつくる Quaternion insertRate = Quaternion.Euler(levelData.RateX, levelData.RateY, levelData.RateZ); //回転を指定 Vector3 insertScale = new Vector3(levelData.ScaleX, levelData.ScaleY, levelData.ScaleZ); //大きさを指定 //Rigidbody型で、敵船のインスタンスを生成 GameObject targetInstance = PhotonNetwork.Instantiate(targetPrefab.name, insertPos, insertRate, 0); targetInstance.transform.localScale = insertScale; //大きさを指定 //パターン2の場合、反復処理を持った敵船を出す if (levelData.Pattern == 2) { targetInstance.GetComponent <IterateMoveTarget>().enabled = true; } //インスタンスがDestroyされた時に呼ばれるデリゲートを渡す TargetDestroy targetDestroy = targetInstance.GetComponent <TargetDestroy>(); targetDestroy.SendDestroyDelegate(DestroyTargetOne); //ターゲットの個数を数える targetCount++; } }