// Start is called before the first frame update void Start() { manager = new HFSMManagerSystem(); HomeSystem homeSystem = new HomeSystem("HomeSystem", manager); ReadBookState readBookState = new ReadBookState("ReadBookState", homeSystem, systemText, stateText); readBookState.AddTransition("Cook", "CookState"); CookState cookState = new CookState("CookState", homeSystem, systemText, stateText); cookState.AddTransition("Sleep", "SleepState"); SleepState sleepState = new SleepState("SleepState", homeSystem, systemText, stateText); sleepState.AddTransition("ReadBook", "ReadBookState"); homeSystem.AddState(readBookState); homeSystem.AddState(cookState); homeSystem.AddState(sleepState); MarketSystem marketSystem = new MarketSystem("MarketSystem", manager); BuyState buyState = new BuyState("BuyState", marketSystem, systemText, stateText); buyState.AddTransition("Pay", "PayState"); PayState payState = new PayState("PayState", marketSystem, systemText, stateText); payState.AddTransition("Buy", "BuyState"); marketSystem.AddState(buyState); marketSystem.AddState(payState); manager.AddSubSystem(homeSystem); manager.AddSubSystem(marketSystem); }