zoukankan      html  css  js  c++  java
  • Unity3d简易状态机

    SimpleFSM 包含状态切换以及事件驱动传递参数

    下面的代码是登录的状态码

     1 using System;
     2 using UnityEngine;
     3 using System.Collections;
     4 
     5 public class LoginState : SingletonPrivider<LoginState>, GameState
     6 {
     7     private delegate void LoginEventHandler(object sender, LoginEventArgs args);
     8     private event LoginEventHandler LoginEvent;
     9 
    10     public void Init()
    11     {
    12         Debug.Log("Init: LoginState");
    13         LoginEvent += UILogin.Instance.GetLoginInfo;
    14         Enter();
    15     }
    16 
    17     public void Enter()
    18     {
    19         Debug.Log("Enter: Login");
    20         LoginEvent(this, new LoginEventArgs("冷雨夜", "123"));        
    21     }
    22 
    23     public void Exit()
    24     {
    25         Debug.Log("Exit: LoginState");
    26         LoginEvent -= UILogin.Instance.GetLoginInfo;
    27     }
    28 
    29     public GameState Previous()
    30     {
    31         return null;
    32     }
    33 
    34     public GameState Next()
    35     {
    36         Exit();
    37         GameObject.Destroy(UILogin.Instance.gameObject);
    38         LobbyState.Instance.Init();
    39         return LobbyState.Instance;
    40     }
    41 }
    42 
    43 public class LoginEventArgs : EventArgs
    44 {
    45     public string username;
    46     public string password;
    47 
    48     public LoginEventArgs(string username, string password)
    49     {
    50         this.username = username;
    51         this.password = password;
    52     }
    53 }
    View Code

    demo在这里

    希望给予留言并指正一二

  • 相关阅读:
    iOS开发Xcode7真机调试教程
    tableView 局部刷新
    CocoaPods 安装
    Mac OS
    iOS
    NSFileManager
    Label Font 字体样式设置
    iOS项目之企业证书打包和发布
    React Native学习之自定义Navigator
    React Native学习之DeviceEventEmitter传值
  • 原文地址:https://www.cnblogs.com/leng-yuye/p/3903479.html
Copyright © 2011-2022 走看看