/// <summary> /// 初始化战斗游戏 /// </summary> /// <param name="gameCombatData"></param> public void InitGameCombat(MiniGameCombatBean gameCombatData) { SceneArenaManager sceneArenaManager = GameScenesHandler.Instance.manager.GetSceneManager <SceneArenaManager>(); //找到竞技场战斗的地点 sceneArenaManager.GetArenaForCombatBy1(out Vector3 combatPosition); gameCombatData.miniGamePosition = combatPosition; //初始化游戏 MiniGameHandler.Instance.handlerForCombat.InitGame(gameCombatData); }
/// <summary> /// 初始化算账游戏 /// </summary> /// <param name="gameAccountData"></param> public void InitGameAccout(MiniGameAccountBean gameAccountData) { SceneArenaManager sceneArenaManager = GameScenesHandler.Instance.manager.GetSceneManager <SceneArenaManager>(); sceneArenaManager.GetArenaForAccountPlayerBy3(out Vector3 playerPosition); sceneArenaManager.GetArenaForAccountCameraBy3(out Vector3 cameraPosition); sceneArenaManager.GetArenaForAccountMoneyBy3(out Transform tfMoneyPosition); gameAccountData.playerPosition = playerPosition; gameAccountData.cameraPosition = cameraPosition; gameAccountData.tfMoneyPosition = tfMoneyPosition; //初始化游戏 MiniGameHandler.Instance.handlerForAccount.InitGame(gameAccountData); sceneArenaManager.GetArenaForAccountEjectorBy3(out MiniGameAccountEjectorCpt ejectorCpt); MiniGameHandler.Instance.handlerForAccount.miniGameBuilder.ejectorCpt = ejectorCpt; }
/// <summary> /// 初始化弹幕游戏 /// </summary> /// <param name="gameBarrageData"></param> public void InitGameBarrage(MiniGameBarrageBean gameBarrageData) { SceneArenaManager sceneArenaManager = GameScenesHandler.Instance.manager.GetSceneManager <SceneArenaManager>(); //添加竞技场发射台坐标 if (gameBarrageData.launchNumber <= 1) { gameBarrageData.listEjectorPosition = sceneArenaManager.GetArenaForBarrageEjectorBy1(1); } else if (gameBarrageData.launchNumber == 2) { gameBarrageData.listEjectorPosition = sceneArenaManager.GetArenaForBarrageEjectorBy1(2); } else if (gameBarrageData.launchNumber == 3) { gameBarrageData.listEjectorPosition = sceneArenaManager.GetArenaForBarrageEjectorBy1(3); } //添加用户起始位置 sceneArenaManager.GetArenaForBarrageUserPositionBy1(out Vector3 userPosition); gameBarrageData.userStartPosition = userPosition; //弹幕处理初始化 MiniGameHandler.Instance.handlerForBarrage.InitGame(gameBarrageData); }
/// <summary> /// 初始化烹饪游戏 /// </summary> /// <param name="gameCookingData"></param> private void InitGameCooking(MiniGameCookingBean gameCookingData) { switch (gameCookingData.gameReason) { //如果是晋升 case MiniGameReasonEnum.Improve: break; default: break; } SceneArenaManager sceneArenaManager = GameScenesHandler.Instance.manager.GetSceneManager <SceneArenaManager>(); //设置每个玩家的初始位置 sceneArenaManager.GetArenaForCookingPlayerPositionBy2(out Vector3 playerStartPosition); //总共玩家数量为单数 则初始点为playerStartPosition,如果是双数则从playerStartPosition.x -0.5f开始 float positionX = playerStartPosition.x + gameCookingData.listEnemyGameData.Count / 2f; float positionY = playerStartPosition.y; //随机站位 int userRandomPositionNumber = UnityEngine.Random.Range(0, gameCookingData.listEnemyGameData.Count + 1); for (int i = 0; i < gameCookingData.listEnemyGameData.Count + 1; i++) { if (i == userRandomPositionNumber) { gameCookingData.userStartPosition = new Vector3(positionX, positionY); } else { gameCookingData.listEnemyStartPosition.Add(new Vector3(positionX, positionY)); } positionX -= 1; } //设置评审员位置 sceneArenaManager.GetArenaForCookingAuditorPositionBy2(out Vector3 auditorStartPosition); positionX = auditorStartPosition.x + ((gameCookingData.listAuditerGameData.Count - 1) / 2f); positionY = auditorStartPosition.y; for (int i = 0; i < gameCookingData.listAuditerGameData.Count; i++) { gameCookingData.listAuditerStartPosition.Add(new Vector3(positionX, positionY)); positionX -= 1; } //设置主持人位置 List <Vector3> listComperePosition = sceneArenaManager.GetArenaForCookingComperePositionBy2(gameCookingData.listCompereGameData.Count); gameCookingData.listCompereStartPosition = listComperePosition; //设置游戏用通告版 List <MiniGameCookingCallBoardCpt> listCallBoard = sceneArenaManager.GetArenaForCookingCallBoardBy2(); MiniGameHandler.Instance.handlerForCooking.miniGameBuilder.SetListCallBoard(listCallBoard); //设置游戏用评审桌子 List <MiniGameCookingAuditTableCpt> listAuditTable = sceneArenaManager.GetArenaForCookingAuditTableBy2(); MiniGameHandler.Instance.handlerForCooking.miniGameBuilder.SetListAuditTable(listAuditTable); //设置游戏用灶台 List <MiniGameCookingStoveCpt> listStove = sceneArenaManager.GetArenaForCookingStoveBy2(); MiniGameHandler.Instance.handlerForCooking.miniGameBuilder.SetListStove(listStove); MiniGameHandler.Instance.handlerForCooking.miniGameBuilder.SetListStove(listStove); //准备游戏 MiniGameHandler.Instance.handlerForCooking.InitGame(gameCookingData); }