Unity多线程修改主线程的问题解决方案 有限状态机相关理解

本文探讨了在Unity项目中遇到的多线程修改主线程问题及其解决方案,并深入介绍了有限状态机的概念和应用,通过与同事的交流,对状态机的实现和管理有了更深入的认识。
摘要由CSDN通过智能技术生成

今天在项目中研究了下状态机 又问了同事 对状态机油有了更深的理解

突然想到之前Unity中主线程的UI界面的时候 比如说在线程 B 中修改了主线程 A 中的按钮上的文字 那么就会出错
既然不让访问 那么就可以转移到主线程某个cs文件中Update中做手脚
比如:主线程A
Update()
{
if(1 == state)//state默认值是0
{
if(1 == actor)
修改按钮文字
if(2 == actor)
修改按钮颜色
if(3 == actor)
修改按钮大小
...

}
if(2 == state)//state默认值是0
{
if(1 == actor)
修改图片文字
if(2 == actor)
修改图片颜色
if(3 == actor)
修改图片大小
...

}
}
线程B
...
xx.state = 1;
...

这样就能够修改主线程的东西了
但是这样会出现问题
执行一个操作就要在这里创个状态变量 然后在update用来判断是否执行了该操作 多了的话很不好管理
在了解状态机之后 可以大概这么改 将每个状态分成几个模块 然后再判断动作 这样能避免状态多的时候不好管理的问题
(动作依然是这样判断 个人认为 动作可变性比较大 所以没有进行判断更改)
主线程A:
FSM.cs
enum State
{
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值