//取得可用的小雞物件 private GameObject GetChickenObject() { GameObject result; if (GetIdleChicken != null) //若事件內容不為空 { IdleChickenEventArgs _eventArgs = new IdleChickenEventArgs(); GetIdleChicken.Invoke(this, _eventArgs); if (_eventArgs.idleChickenObject != null) //有取得閒置中的小雞物件 { result = _eventArgs.idleChickenObject; return(result); } } result = Instantiate(chickenPrefab, parentHolder); //找不到閒置中的小雞時, 創建一隻新的 ChickenMove _moving = result.GetComponent <ChickenMove>(); //取得腳本 _moving.Initialize(this); //小雞行為初始化 return(result); }
//回傳閒置狀態 public void ReturnIdleState(object sender, IdleChickenEventArgs eventArgs) { if (!isIdling) { return; //非閒置狀態, 結束程序 } if (eventArgs.idleChickenObject != null) { return; //已有閒置小雞存在時, 結束程序 } eventArgs.idleChickenObject = this.gameObject; }