private static void ReplacePlayerWheelParticle(IParkourPlayerController player, RaceSceneControl.IParkourSceneDefine sceneDefine) { GameObject particleObject = (GameObject)Instantiate((GameObject)sceneDefine.frontWheelParticlePrefabs); particleObject.transform.parent = player.particleList[0].transform.parent; particleObject.transform.localPosition = player.particleList[0].transform.localPosition; particleObject.transform.localRotation = player.particleList[0].transform.localRotation; UnityEngine.Object.Destroy(player.particleList[0].gameObject); player.particleList[0] = particleObject.GetComponent <ParticleSystem>(); particleObject = (GameObject)Instantiate((GameObject)sceneDefine.backWheelParticlePrefabs); particleObject.transform.parent = player.particleList[1].transform.parent; particleObject.transform.localPosition = player.particleList[1].transform.localPosition; particleObject.transform.localRotation = player.particleList[1].transform.localRotation; UnityEngine.Object.Destroy(player.particleList[1].gameObject); player.particleList[1] = particleObject.GetComponent <ParticleSystem>(); }
internal virtual void Initialization(RaceSceneControl.IParkourSceneDefine sceneDefine, GameStatus status, IParkourPlayer_Xiong.PlayerIndex[] players) { currentSceneDefine = sceneDefine; gameStatus = status; //激活为当前监听源 //AudioListenerCtrl.activeAudio = gameAudioListenerCtrl; //首先替换掉赛道预置对象 hCheckPointsMainCS.hPatchesRandomizerCS.IsRandomPath = currentSceneDefine.IsRandomPath; hCheckPointsMainCS.hPatchesRandomizerCS.patchesPrefabs = currentSceneDefine.patchesPrefabs; //替换掉角色的粒子 ReplacePlayerWheelParticle(playerGuangTouQiang, currentSceneDefine); ReplacePlayerWheelParticle(playerXiong2, currentSceneDefine); ReplacePlayerWheelParticle(playerXiongDa, currentSceneDefine); //设置角色状态 switch (gameStatus) { case GameStatus.status_Standby: { playerGuangTouQiang.IsAIController = true; playerGuangTouQiang.IsInputController = false; playerXiong2.IsAIController = true; playerXiong2.IsInputController = false; playerXiong2.IsEnterStart = false; playerXiongDa.IsAIController = true; playerXiongDa.IsInputController = false; playerXiongDa.IsEnterStart = false; } break; case GameStatus.status_NewGame: case GameStatus.status_ContinueGame: { playerGuangTouQiang.IsAIController = true; playerGuangTouQiang.IsInputController = false; if (players == null || players.Length == 0) { playerXiong2.IsAIController = true; playerXiong2.IsInputController = false; playerXiongDa.IsAIController = true; playerXiongDa.IsInputController = false; } else { bool flag = false; for (int i = 0; i < players.Length; i++) { if (playerXiong2.playerIndex == players[i] && playerXiong2.IsEnterStart) { playerXiong2.IsAIController = false; playerXiong2.IsInputController = true; flag = true; break; } } if (!flag) { playerXiong2.IsAIController = true; playerXiong2.IsInputController = false; } flag = false; for (int i = 0; i < players.Length; i++) { if (playerXiongDa.playerIndex == players[i] && playerXiongDa.IsEnterStart) { playerXiongDa.IsAIController = false; playerXiongDa.IsInputController = true; flag = true; break; } } if (!flag) { playerXiongDa.IsAIController = true; playerXiongDa.IsInputController = false; } } } break; } //先暂定游戏刷新 isGamePaused = true; }