≡
导航
搜索
教程
插件
模型
模板
博客
交易
朋友
Unity 3D 游戏引擎吧
已关注 | 取消
+关注
关注:
46
帖子:
451
签到
05月05日 尚未签到
看帖
图片
精品
视频
共有回帖数
0
个
【交流】playMaker与uScript使用后的比较~
取消只看楼主
收藏
回复
幻梦如戏
等级:
贴吧中使用StateMachine类型插件的用户应该不少,我用了段时间playMaker和uScript,发下小总结。如有偏颇、错误,请告知。
PlayMaker
优点
1、基于PlaymakerFsm Component,内核在该组件中进行,Fsm中的设置全部序列化,不用编译。
2、有基于实例化在场景中的GameObject所在的Fsm的Runtime Debugging。这个非常牛逼
比如两个同样的Fsm,但实例化出来2个GameObject,选择一个后就只会Debug当前选择。
3、进入某一个State之后,只会执行该State里的Action相应代码,不会涉及到非当前的State代码,这个比较清晰,相比uScript里所有Action.Update()都会在宿主Update的时候一起调用。
4、有比较好的Fsm之间的通讯方式,虽然EventInfo不够详细,但可扩展。
5、有Template之说,可以大量重用已有的解决方案。包括在一个Fsm中运行一个基于Template的SubFsm。
缺点
1、参考优点1中所述,大量的序列化的数据保存,比如Fsm对象,State,Action都有序列化的值,可能会增加Build后的尺寸
2、Fsm的Variables中,无法添加Array类型。比如FsmBool[] 没有,只有FsmBool,这不是扯么~~~~。不过正在研究添加一套Array操作的Actions来解决一下。
3、制作成Prefab之后,场景中实例出来的以及Prefab本身,都会在PlayMaker编辑器窗口罗列出来,有很多Fsm时,来回切换选择时比较麻烦,而且Instance和Prefab的修改要唯一,否则很容易互相覆盖修改,导致出现奇怪的问题(特别是删减Variables时)。建议要么只修改Instance的Go,然后Apply,要么只修改Prefab来引起Instance的更新。
uScript
优点
1、编译出最终代码,比较干净清晰,少量序列化的值
2、能Reflect任何已有类的变量、Property、方法等,对已有插件或代码组件的支持比较好。
3、有Nested Graph之说,可以嵌套Graph
4、uScript还比较新,才1.0.25xx的版本,可以给他一个提升的期望空间~。
缺点
1、Debug不方便,不清晰,可参考playMaker优点2。
2、每个带Update的Action,都会在宿主的Update中调用,即使未运行到该Action。如果自己写的Action的Update没考虑这个,增加了很多复杂操作,会拖性能。
3、尚未发现比较现成的Graph之间的通讯方式,除了SendMessage。
4、Graph中私有变量无法赋值,特别是静态资源,比如一个AudioClip变量,无法直接赋值到Asset中的xx.wav。只有’Exposed to Unity’之后,才可以在被赋予Graph对应的组件赋值,有点傻。
楼主 2015-10-28 21:01
回复
共有回帖数
0
个
回 帖
表情
图片
视频
欢迎来到本吧,您可以在此发帖和众多大咖交流学习.
选择或直接输入昵称
Tips:支持QQ截图直接粘贴
发表
登录直线网账号
自动登录
忘记密码
免费注册
本吧信息
查看详情
吧主:
mygameplay
本吧公告
优秀文章 【交流】Unity 脚本入门 个人经验及常用方法块 http://www.linecg.com/tieba/content_4292.html 大家可以看一下
我常逛的吧
我管理的吧
Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号
意见反馈
|
关于直线
|
版权声明
|
会员须知