学习了自然妙有猫仙人的FlappyBird基于GameFramework的教程受益很大。 现记录一下学习过程中的思考。避免以后自己忘记了,后续再拿出来看看。其实写的这些问题都是花了我很多时间的总结。
我根据教程自己学着做了一个FlappyBird,新添加了一个暂停按钮。
我的unity版本是2022.3.1LST
我的GitHub项目地址:https://github.com/LinYi6/GameFramework-My_FlappyBird
国内Gitee项目地址:https://gitee.com/linjiangxue8/GameFramework-My_FlappyBird
一、关于流程的一些记录
GameFramework主要还是基于流程的,不同场景是对流程的切换,然后在流程里面实现功能。比如点击开始游戏时从ProcedureMenu切换到ProcedureMain流程,游戏结束选择返回主菜单时又从ProcedureMain切换到ProcedureMenu。这里有一点要注意,在出现游戏结束界面时,游戏还在ProcedureMain流程里,并没有切换流程,我们可以看到游戏界面的背景和管道还在生成和运动。
所以当小鸟死亡时,积分界面脚本收到小鸟死亡事件,然后它打开了游戏结束界面,此时积分界面的脚本会执行OnPause(),会清除当前积分,并更改显示文本,同时OnPause()利用gameObject.SetActive(false);隐藏积分界面。
当游戏结束界面选择重新开始时,积分界面默认执行OnResume(),利用gameObject.SetActive(true);显示积分界面,ProcedureMain一直在执行OnUpdate()里的东西。
当在游戏结束界面选择返回主菜单时ProcedureMain流程执行了OnLeave(),把积分界面UI关闭了,切换至ProcedureMenu流程。
以上几点值得注意。如果不清楚可以自己在疑惑的地方打Debug.Log(),看看输出信息就知道其中执行顺序了。一开始可能感觉比较乱。
二、关于一些函数的提醒
在流程rocedureBase基类里有OnEnter()、OnInit()、OnOpen()、OnLeave()、OnUpdate()、OnDestroy()函数
在UIFormLogic基类里有 OnOpen()、 OnUpdate()、OnShow()、OnPause()、OnResume()、OnClose()函数
在EntityLogic基类里有OnHide()、OnUpdate()、OnHide()、OnShow()函数
这些函数得看看源代码,里面有解释,感觉会混淆,多用用,多体会体会
三、slider动态value值问题
slider这个滑条UI感觉比较坑。写的函数需要用到value值时,我们在按钮或滑条类想调用函数名时要先把脚本挂载到物体上,然后在UI的OnClick或OnValueChange处选择挂载了脚本的物体,这样就可以选择函数名了。但是sliderUI需要注意,我们如果想要获得滑动改变的value值并动态传递给函数里的value参数时,需要在sliderUI界面选择dynamic 值的函数名。否则value传参一直是固定的0,除非我们手动改。
例如:

比如下面这几行代码,我们想让上面slider滑动时的值动态的传递给OnMusicButtonChange函数的value变量。
public
FlappyBird教程:GameFramework实战与Unity流程管理

最低0.47元/天 解锁文章
5602





