using UnityEngine; using System.Collections; using UnityEngine.SceneManagement; public class Main : MonoBehaviour { public StateManager StateManager; void Start() { StateManager.State_Start(); StateManager.State_Initialize(); } void FixedUpdate() { StateManager.State_FixedUpdate(); if (StateManager.State_End() == true) { StateManager.State_Change(); } } void Update() { StateManager.State_Update(); } }
using UnityEngine; using System.Collections; public class StateManager : MonoBehaviour { public IState IState; public void State_Start() { IState.State_Start(); } public void StartState(IState State) { IState = State; IState.State_Initialize(); } public void State_Update() { IState.State_Update(); } public void State_FixedUpdate() { IState.State_FixedUpdate(); } public void State_Initialize() { IState.State_Initialize(); } public bool State_End() { return IState.State_End(); } public void State_Change() { IState.State_Change(ref IState); IState.State_Initialize(); } }
using UnityEngine; using System.Collections; public abstract class IState : MonoBehaviour { public abstract void State_Start(); public abstract void State_Update(); public abstract void State_FixedUpdate(); public abstract void State_Initialize(); public abstract bool State_End(); public abstract void State_Change(ref IState State); }
using UnityEngine; using System.Collections; using System; public class StateStandby : IState { public IState NextState; bool Finish; public override void State_Start() { Debug.Log("StateStandby StartUp"); } public override void State_Update() { } public override void State_FixedUpdate() { Finish = true; } public override void State_Initialize() { Finish = false; } public override bool State_End() { return Finish; } public override void State_Change(ref IState State) { State = NextState; } }
© 僕の説明書おきばwiki All Rights Reserved.
コメントをかく