// Use this for initialization void Start() { m_Runner = new FSMRunner(gameObject); m_Runner.RegisterState <GameMaster_State_RunSingleTurn>(); m_Runner.RegisterState <GameMaster_State_CheckGoal>(); m_Runner.RegisterState <GameMaster_State_GameOver>(); m_Runner.RegisterState <GameMaster_State_Victory>(); m_Runner.RegisterState <GameMaster_State_Terminate>(); m_Runner.RegisterState <GameMaster_State_DummyLoop>(); GameMaster_State_Init stateInit = m_Runner.RegisterState <GameMaster_State_Init>(); stateInit.m_FadeWidget = m_InitFadeWidget; stateInit.m_InitColor = m_InitColor; GameMaster_State_PlayIntro statePlayIntro = m_Runner.RegisterState <GameMaster_State_PlayIntro>(); statePlayIntro.m_IntroCutscene = m_IntroCutscene; m_Runner.StartState((int)GameMasterState.Init); m_Pawns = new List <GameObject>(); m_SceneParameter = GameSceneManager.GetInstance().GetParameter <CombatSceneParameter>(); m_Settings = GetComponent <Combat_Settings>(); for (int prefabId = 0; prefabId < m_SceneParameter.m_EnemiesPawns.Count; prefabId++) { Transform prefab = m_SceneParameter.m_EnemiesPawns[prefabId]; Vector3 position = m_Settings.ComputePawnEnemyGlobalPosition(prefabId); Quaternion orientation = m_Settings.ComputePawnEnemyGlobalOrientation(prefabId); Transform pawn = (Transform)Instantiate(prefab, position, orientation); pawn.parent = gameObject.transform.root; m_Pawns.Add(pawn.gameObject); StickToGround.Apply(pawn.gameObject); } for (int prefabId = 0; prefabId < m_SceneParameter.m_PlayerPawns.Count; prefabId++) { Transform prefab = m_SceneParameter.m_PlayerPawns[prefabId]; Vector3 position = m_Settings.ComputePawnPlayerGlobalPosition(prefabId); Quaternion orientation = m_Settings.ComputePawnPlayerGlobalOrientation(prefabId); Transform pawn = (Transform)Instantiate(prefab, position, orientation); pawn.parent = gameObject.transform.root; m_Pawns.Add(pawn.gameObject); StickToGround.Apply(pawn.gameObject); } m_UIEffects.HideDamageEffect(); m_UIEffects.HideGameOverEffect(); m_UIEffects.HideVictoryEffect(); }
public override void OnEnter() { CombatSceneParameter param = new CombatSceneParameter(); param.m_EnemiesPawns.AddRange(m_Behavior.m_EnemyCombatSettings.m_PawnsPrefab); Transform prefabPawnPlayer = Resources.Load <Transform>("Prefabs/Pawns/Pawn_Player"); Transform prefabPawnSidekick = Resources.Load <Transform>("Prefabs/Pawns/Pawn_Sidekick"); param.m_PlayerPawns.Add(prefabPawnPlayer); param.m_PlayerPawns.Add(prefabPawnSidekick); GameSceneManager.GetInstance().LoadCombatScene("Level_01_Combat_01", param); m_Runner.SetImmediateCurrentState((int)LevelMasterState.Nothing); }