2D横版冒险文字游戏Horror Book2项目总结

本文是作者在开发2D横版冒险文字游戏Horror Book2过程中的经验总结,涉及Unity的GUI制作、动画系统、Spine动画、PlayMaker以及数据存储等方面。在GUI制作中,作者分享了如何解决UI与美术协调的问题,推荐了DOTween作为动画插件。对于Unity的Animator,作者指出了其优缺点,并提供了使用技巧。在Spine动画部分,作者提到了导入Unity时的注意事项以及处理FadeOut动画的解决方案。此外,作者还推荐了PlayMaker作为游戏逻辑工具,强调了其可视化的状态机在复杂逻辑中的优势。文章最后提到了EasySave用于存档功能,以及JSON在文本存储中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前些时间接手了个烂尾的社团游戏,其实也没出什么事,就是上一个码农字面意思上的删码跑路了而已(想想也是蛮吓人的orz),美术他们手上只剩下一个仅做了标题界面的demo,没办法只能找新的猴子重构一个游戏出来。做到现在核心功能的开发已经全部完成,剩下的工作是满足新增的需求和debug,因为还在等测试那边给反馈,难得有一天放假,写写开发心得也好以后要是遇到相同的issue能快速解决。

单人开发比起团队开发更加要注重效率,因为一个人的时间是有限的,游戏做不到可以玩的完全体就是0,团队开发你可以钻研一个东西很深,例如信息交互,写一个系统内的Message传递,或者写个大家都能用的任务队列,但是单人开发不可以,唯一的目标就是做出来可以玩的东西,性能和代码low不low应该是第二去考虑的事情。如何最大利用单人开发0沟通成本的优势,回避开发人时少的劣势是作为单身开发者必须要想明白的问题


1、聊聊GUI的制作

我觉得只要是开发者,UI都是绕不开的坎,工程量大,微调耗时,经常会因为像素级的UI摆放和美术打架,是个没啥意思还不好搞的活。

想要解决和美工打架的问题,想办法从PS里得到WorldPosition再原封不动丢进Unity里再做分层是比较好的办法,不过Unity的UGUI默认并不显示WorldPosition(也许只是我没找到显示的按钮),虽然可以代码控制,但如果想要手动修正的话还是比较麻烦,我解决的办法是导入Unity时不依靠UGUI的Canve,而是当做Sprite做导入,这样导入进来的坐标是Tranform,基于World,然后再统一地把tranform组件换成Recttransform然后加一个Canve作为父物件。如果做的过程中想要微调worldposition可以直接把物体从Canve的子关系里拉出来,记录Transform的数值后再拉回去orz。

UGUI的AnchorPosition我觉得太过注重屏幕自动适配功能的便利,然而忽视了做UI动画时方面的考虑,UI的动画我个人强烈不推荐将AnchoredPosition作为动画的坐标参数,因为只要美术突发奇想要求你改锚点来适应新的美术需求,用了这个参数的动画就会立马崩溃。我觉得Unity他觉得UI动画这种东西也应该放在Unity里面去做,而不是在外面做好了导入进来,依靠我们的Animator/Animation不是很好嘛,可实际上很多时候UI动画应该是怎么样美术方面早就定好了,比起让程序员自己做动画的主观美术,更多的需求是用代码对动画的死的控制,动画的位置是有很强的相对关系的,就是我定好一个点,之后的动画素材应该距离这个点50*n个像素地排列进来,可是如果在Canve里,只能用worldPosition弄到这个坐标,而且你无法在属性面板里看到这条属性orz,所以还是上面的方法,如果一定要在UGUI里做复杂的UI动画,我建议先当做Sprite在WorldSpace里做好,再放进Canve里(当然这个Canve的坐标就要设死在0,0,0不能动了)。或者如果是非常复杂的动画关系,建议不要放进UGUI里搞,UGUI不像NGUI(这很重要),只负责纯粹的GUI是好的,因为自动适配确实很便利,但是如果想要做复杂的相对位移动画,甚至是什么卡片游戏的动画逻辑,请在WorldSpace里做。

关于UGUI或者其他的一些什么动画,DOTween非常好用,

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值