//マスを移動させる private void moveMas(int aNum, PlayerStatus aPlayer, Action aCallback) { int tCount = 0; Action tMove = () => { }; tMove = () => { int tNextMasNumber = (aPlayer.mCurrentMasNumber + 1) % mElement.mMasStatus.Length; MasStatus tNextMas = mElement.mMasStatus[tNextMasNumber]; MasDisplay tNextDisplay = mElement.mMasDisplay[tNextMasNumber]; mElement.mPlayerPieces[aPlayer.mPlayerNumber].moveToWithSpeed(tNextDisplay.position2D, 10, () => { aPlayer.mCurrentMasNumber = tNextMasNumber; tCount++; //通過イベント runPassEvent(aPlayer, () => { if (tCount < aNum) { tMove(); return; } aCallback(); }); }); }; tMove(); }
public static MasDisplay[] placeMas(StageData aData) { //ルート(白い線)の入れ物 MyBehaviour tRouteContainer = MyBehaviour.create <MyBehaviour>(); tRouteContainer.positionZ = 0.5f; MyBehaviour tRoute; tRouteContainer.name = "routeContainer"; //マスの入れ物 MyBehaviour tMasContainer = MyButton.create <MyBehaviour>(); tMasContainer.name = "masContainer"; List <StageData.Mas> tMasDataList = aData.mMas; MasDisplay[] tDisplay = new MasDisplay[tMasDataList.Count]; MasDisplay tPrefab = Resources.Load <MasDisplay>("prefab/game/mas/land"); for (int i = 0; i < tMasDataList.Count; i++) { switch (tMasDataList[i].mType) { case MasStatus.MasType.land: tDisplay[i] = GameObject.Instantiate <MasDisplay>(tPrefab); break; case MasStatus.MasType.start: tDisplay[i] = GameObject.Instantiate <MasDisplay>(Resources.Load <MasDisplay>("prefab/game/mas/start")); break; case MasStatus.MasType.accident: tDisplay[i] = GameObject.Instantiate <MasDisplay>(Resources.Load <MasDisplay>("prefab/game/mas/" + ((StageData.Accident)tMasDataList[i]).mAccidentType)); break; default: throw new System.Exception("GamePlacer : 不正な土地属性"); } tDisplay[i].position2D = tMasDataList[i].position; tDisplay[i].transform.parent = tMasContainer.transform; //ルート配置 if (i != 0) { tRoute = placeRoute(tDisplay[i - 1].position2D, tDisplay[i].position2D); tRoute.transform.SetParent(tRouteContainer.transform, false); } } //最初のマスと最後のマスのルート配置 tRoute = placeRoute(tDisplay[tMasDataList.Count - 1].position2D, tDisplay[0].position2D); tRoute.transform.parent = tRouteContainer.transform; return(tDisplay); }