前提・実現したいこと
1秒毎に生成されるオブジェクト(ここだとobj)をマウスクリックによって消していくというゲームを作っています。
発生している問題・エラーメッセージ
その際に生成されるオブジェクトを右クリックすることでDebug.Logにて出力することはできました。
しかし、今度はそれを消そうとした際にDestroy()の中身がわからず仕舞いとなってしまいました。
enemyprefabを入れてみると最初の1個目をクリックして消したあと、その後生成がされなくなってしまいました。
該当のソースコード
using
1using System.Collections.Generic; 2using UnityEngine; 3 4public class Enemy : MonoBehaviour 5{ 6 public GameObject enemyprefab; 7 8 9 //敵の生成感覚を決める。Elapsedは経過という意味 10 public float timeOut = 1.0f; 11 private float timeElapsed = 0; 12 13 // Start is called before the first frame update 14 void Start() 15 { 16 17 } 18 19 // Update is called once per frame 20 void Update() 21 { 22 //timeElapsedに経過時間(Time.deltaTime)を加算 23 timeElapsed += Time.deltaTime; 24 if (timeElapsed > timeOut) 25 { 26 //時間経過を0.0fに戻す 27 timeElapsed = 0.0f; 28 29 //GameObjectでPrefabの中のEnemyを読み込み。この時ちゃんと「as GameObject」でちゃんと「GameObject型」であるようにする 30 //GameObject obj = Resources.Load("Prefab/Enemy") as GameObject; 31 GameObject obj = Instantiate(enemyprefab) as GameObject; 32 float px = Random.Range(-3, 4); 33 float py = Random.Range(3, 7); 34 obj.transform.position = new Vector2(px, py); 35 } 36 if (Input.GetMouseButtonDown(0)) 37 { 38 Debug.Log("マウスクリック!");//ここまではOK 39 Destroy();//←ここの()の中身がわからず…… 40 } 41 } 42}
試したこと
試しにenemyprefabを入れてみると最初の1個目をクリックして消したあと、その後生成がされなくなってしまいました。
補足情報(FW/ツールのバージョンなど)
Unity Ver.2019.3.5f1 です