Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- public class Yoba : MonoBehaviour
- {
- IYoba m_YobaStateController;
- void Awake()
- {
- m_YobaStateController = new YobaStateController ();
- }
- public void GetYobaAction()
- {
- m_YobaStateController.DooSomething ();
- }
- public void SetNextState()
- {
- m_YobaStateController.SetNextState ();
- }
- }
- public interface IYoba
- {
- void DooSomething ();
- void SetNextState();
- }
- public interface IYobaStatable
- {
- void SetMaliYobaState ();
- void SetBolshoYobaState ();
- }
- public class YobaStateController : IYoba, IYobaStatable
- {
- IYobaState m_MaliYobaState;
- IYobaState m_BolshoYobaState;
- IYobaState m_CurrentYobaState;
- public YobaStateController()
- {
- m_MaliYobaState = new MaliYobaState ();
- m_BolshoYobaState = new BolshoYobaState ();
- SetMaliYobaState ();
- }
- public void DooSomething ()
- {
- m_CurrentYobaState.DooSomething ();
- }
- public void SetNextState()
- {
- m_CurrentYobaState.SetNextState (this);
- }
- public void SetMaliYobaState()
- {
- m_CurrentYobaState = m_MaliYobaState;
- }
- public void SetBolshoYobaState()
- {
- m_CurrentYobaState = m_BolshoYobaState;
- }
- }
- public interface IYobaState
- {
- void DooSomething ();
- void SetNextState (IYobaStatable statable);
- }
- public class MaliYobaState : IYobaState
- {
- public void DooSomething ()
- {
- Debug.Log ("pssss... mali yoba turn to bolsho yoba");
- }
- public void SetNextState (IYobaStatable statable)
- {
- statable.SetBolshoYobaState ();
- }
- }
- public class BolshoYobaState : IYobaState
- {
- public void DooSomething (IYobaStatable statable)
- {
- Debug.Log ("pssss... bolsho yoba turn to mali yoba");
- }
- public void SetNextState (IYobaStatable statable)
- {
- statable.SetMaliYobaState ();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement