using System.Collections; using System.Collections.Generic; using UnityEngine; public class MonsterCreator : MonoBehaviour { [Tooltip("怪物prefab")] public GameObject MonsterPrefab; [Tooltip("怪物生成目錄")] public Transform MonsterFolder; [Tooltip("怪物生成時間間隔")] public float MonsterInterval = 1; [Tooltip("怪物生成位置")] public Transform MonsterCreationPoint; [Tooltip("怪物生命時間")] public float MonsterLifeTime = 6000; void Start() { InvokeRepeating("MonsterCreat", 0.1f, MonsterInterval); Invoke("MonsterEnd", MonsterLifeTime); } void Update() { } void MonsterCreat() { //方法2:使用目前this節點的transform變動組件 //使用目前節點MonsterFolder來生成怪物節點的transform(變換組件,可設定坐標,旋轉角度,縮放scale) //第一個參數:是prefab //第二個參數transform,乃是設定生成物件的位置,旋轉角度,縮放比例) GameObject node = Instantiate(MonsterPrefab, this.transform); //設定節點生成位置 node.transform.position = this.transform.position; //設定怪物節點的生成角度(歐拉角是Vector3) //node.transform.localEulerAngles = this.transform.localEulerAngles; //y軸旋轉180度 node.transform.localEulerAngles = new Vector3(0, 0, 0); //不要在原點建立(會被子彈打到,在原點的x左右隨機偏移第一次出現) float dx = Random.Range(-30, 30); node.transform.Translate(dx, 0, 0, Space.Self); } void MonsterEnd() { Destroy(this.gameObject); Debug.Log("怪物60秒時間到了"); } }