unity中的UI状态机,用于各界面之间的切换和跳转

在Unity游戏开发中,为了解决界面切换时繁琐的对象显示与隐藏操作,开发者通常会使用UI状态机来简化和维护。本文将介绍如何创建UI界面基类、状态机管理器、登录及主菜单界面的UI脚本,以及一些关键的公共类脚本,以实现高效的游戏界面管理。
摘要由CSDN通过智能技术生成

首先感谢姜雪松先生,大家可以去他的博客查看注释以及代码等,http://jxwgame.blog.51cto.com/943299/1613585 

言归正传:

1.在开发项目的过程中,总是会遇到这样的问题,从一个界面跳转到另外一个界面,每次操作都要对一些对象进行显示与隐藏,操作很麻烦也不方便维护修改。
2.于是很多人在这样的一个基础上开发出了很多便于维护和管理的UI框架或者UI状态机。
3.所以简单说下UI状态机,来管理项目中各个界面之间的切换等

1.UI界面的基类

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class StateBehaviour : MonoBehaviour, IState
{

    public FiniteStateMachine BelongToFSM { get; protected set; }
    public string StateName { get; protected set; }

    protected Dictionary<string, string> transitionMap = new Dictionary<string, string>();


    public virtual void Init(FiniteStateMachine belongToFSM)
    {
        StateName = GetType().Name;

        BelongToFSM = belongToFSM;
        BelongToFSM.Register(StateName, this);

        foreach (KeyValuePair<string, string> pair in transitionMap)
        {
            BelongToFSM.State(StateName).On(pair.Key).Enter(pair.Value);
        }
    }



    public virtual void OnEnter(string prevState)
    {
#if UNITY_EDITOR
        Debug.LogWarning("[" + BelongToFSM.Name + "] On Enter State: " + StateName + ", previous state is: " + prevState + transitionMap.Count);
#endif
  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值