Sprite点击事件快速搭建
大多2D游戏都需要Sprite可以被点击,小伙伴们也可以在网上查到很多种类的教程,这里分享一个非常快捷的方法。
1. 为你的Sprite添加碰撞器,任意种类的都可。
2. 在场景中添加EventSystem对象。
3.为你的Sprite添加点击逻辑,可以使用脚本继承Unity自身的IPointerClickHandler,或者使用Playmaker为该对象添加UIOnPointerClickEvent.
通过以上就可以为Sprite快速添加点击响应用以测试。当然,一般团队或者个人开发者都有积累自己的输入控制器什么的,此方案适合在没有自身库支持的情况下快速测试,也推荐给新手。
粒子力场组件
也是最近才接触到粒子力场组件(Particle Force Field),该组件允许粒子在一定时间后(设置的),向设置好的引力中心移动,所以通过这个组件我们可以非常快速的制作出金币飞向图标,物品飞向物品栏之类的效果。添加步骤:
1. 建立好备用的粒子。
2. 建立一个新的空对象,为空对象添加Particle Force Field组件,同时调整组件参数至满意。
3. 将含有力场组件的对象拖入已经打开External Force的粒子列表里,对叠加乘数进行微调至满意。
UI粒子脚本
这么些年来,在UI层显示粒子一直是困扰大家的问题,我也是在多个项目中遇到过,但之前没有积累。在查资料后觉得这位大哥的脚本较为完善,他新加了一些shader,适用于不同的效果,有兴趣的小伙伴请前往学习。
UGUICanvas的管理
在目前项目中,首次听闻UICanvas中但凡有更新(ScrollView, Animation或者图标刷新)就会脏化整个画布Canvas导致Canvas重绘,经过查证,Unity官方只在2017年欧洲开发者大会上分享过这个优化经验,并且直到今年在论坛上依然被推荐使用,我才知道这个消息,为之前各种项目制作了那么多UI动画但并没有单独为他们创建子画布的我感到非常羞愧。不过和大佬程序讨论后,发现这个优化虽然是可以的,但其实带来的效果并不见得会被体验的到,因为就目前主要通过2DUI交互实现游戏逻辑的项目来讲,大多性能都没什么问题,而3D游戏在UI上停留又不是很多。无论怎样,知道了以后就按照较为优化的方案去制作。
主要的步骤就是为需要更新的物体添加子画布组件。当使用子画布后,我还发现一个好处就是它可以很好地适配UI,甚至可以实现一些对于UI层面的相对动画。
有个要点就是,添加子画布后,如果子画布内有需要交互的东西,记得也要添加Graphic Raycast组件。