//实现回调接口,将用过的飞碟和飞的动作加入到free列表中 public void SSActionEvent(SSAction source, SSActionEventType events = SSActionEventType.Competeted, int intParam = 0, string strParam = null, UnityEngine.Object objectParam = null) { if (source is CCFlyAction) { DiskNumber--; DiskFactory df = Singleton <DiskFactory> .Instance; df.FreeDisk(source.gameobject); FreeSSAction(source); } }
private void NextRound() { DiskFactory df = Singleton <DiskFactory> .Instance; for (int i = 0; i < diskNumber; i++) { diskQueue.Enqueue(df.getDisk(currentRound)); } actionManager.StartThrow(diskQueue); }
void update() { if (actionManager.DiskNumber == 0 && gameState == GameState.RUNNING) { gameState = GameState.ROUND_FINISH; } if (actionManager.DiskNumber == 0 && gameState == GameState.ROUND_START) { currentRound = currentRound + 1; //NextRound下一个回合 DiskFactory df = Singleton <DiskFactory> .Instance; //取出10个飞碟到列表中 for (int i = 0; i < diskNumber; i++) { diskQueue.Enqueue(df.getDisk(currentRound)); } //开始仍飞碟,初始化动作管理器的飞碟数 actionManager.StartThrow(diskQueue); actionManager.DiskNumber = 10; gameState = GameState.RUNNING; } if (time > 1) { //ThrowDisk仍飞碟 if (diskQueue.Count != 0) { GameObject disk = diskQueue.Dequeue(); //随机确定飞碟出现的位置 Vector3 position = new Vector3(0, 0, 0); float y = UnityEngine.Random.Range(0f, 4f); position = new Vector3(-disk.GetComponent <DiskData>().direction.x * 7, y, 0); disk.transform.position = position; disk.SetActive(true); } time = 0; } else { time += Time.deltaTime; } }