Unity ProjectTiny将GitHub上的DotsRogue转成纯ECS的试玩演示

原项目地址https://github.com/sarkahn/dots-roguelike。原作者用Unity的Hybrid ECS实现的一个类似控制台字符Roguelike小游戏,主要功能都是用ECS实现的,但Mesh的渲染和一小部分接口用的还是UnityEngine里的。

这篇文章相当于是前几篇的文章的总结,用那几个功能把代码里各个UnityEngine的API替换掉,移植到Unity的ProjectTiny(这个是纯ECS环境)并打包到安卓上。原项目也可以打包到安卓,但是不支持按钮控制,当然可以在原项目上用UGUI做个按钮控制,这个我没试过。

主要进行的功能替换:
将UnityEngine的Mesh换成ProjectTiny的DynamicMesh。
替换成ECS支持的Shader,Shader那篇跟跃动的小球那篇中的一些小技巧可以解决ProjectTiny的顶点颜色传入问题。
用ECS实现一个Button系统,支持上下左右键和ABCDIG键(原项目支持更多按键,但手机屏幕放不下这么多,就只加了主要功能的按键控制),Button那篇进行了一个最简单的演示,后面完善了下,有Down、Up、Click事件,并且按钮点击会有缩放反馈。
用ProjectTiny的ScreenToWorld接口替换原项目中的Camera的ScreenToWorldPoint这个屏幕坐标转世界坐标的接口,因为ProjectTiny的Camera也是纯ECS,用法跟MonoBehavior的有点区别。

移植到ProjectTiny的一点好处就是,原项目打包安卓有19M多,移植后打包安卓只有2.2M,启动游戏没有Unity闪屏,启动速度很快。然后可以打包到Web上运行,Web的不需要Button控制,直接用按键控制就行了。由于代码没整理,只是实现了功能,所以没传到GitHub,这里也不贴出来了。如果想自己体验下纯ECS写代码的,可以参照前几篇文章移植一下。

这是打包到安卓上的运行效果:
在这里插入图片描述
安卓包可以放出来,但是没有什么盘可以用,就没放了。而且按键没有分辨率适配,所以不同分辨率可能会有显示不全的问题。原游戏还有个小小的bug,就是在按下I键弹出菜单后在按Space键重新生成地图,会无法移动,这时按下Escape键,就可以移动了,因为把隐藏的菜单给退出了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值