最早接触Unity是从4.1版本开始,故那个时候只知道Unity 3D,无Unity 2D。近一段时间,通过学习,了解到Unity 2D也是蛮火的。如在最新的Unity 5版本中,新建项目可以选择2D、3D的,且该选项较以往版本更加醒目:仿佛告诉世人Unity不仅仅是3D的,Unity Native 2D也是不错的选择。
看了一下官方的说明,发现实际上新建项目选择2D、3D不是决定项目的唯一,因为2D、3D还可以工程创建完成后,在Editor下也可以重新选择的。
新建2D项目,和3D项目大约有下面几个区别:
新建工程时候选择2D、3D模式,目前就找到就这4种区别。
Unity 2D自从4.3—>4.6—>5.0,增加很多2D组件: 我们发现Unity 5集中提供了15中Physics 2D组件,说明2D、3D的一个重要的区别就是在Physics上。
其中,Polygon Collider 2D组件非常棒,它提供了集成可视化调节碰撞盒子,按住Shift键可以添加碰撞点、按住Ctrl键可以删除碰撞点--对不规则Sprite尤为有用
Sprite Render是用来对Sprite(精灵)进行渲染的组件,它有2个重要属性:
注意,在Unity 2D中,一般不使用Z轴坐标,默认为0.
同样的功能,也可以在3D中使用Z轴由大到小来实现Order--但是相比,没有2D下的Sorting Layer直观。 在Sorting Layer下,你可以预定Soring Layer,这样便于team 协作:
2D的射线检测,3D检测是空间检测,2D则简单一些。
Physics2D.LinecastAll
public static RaycastHit2D[] LinecastAll(Vector2 start, Vector2 end, int layerMask = DefaultRaycastLayers, float minDepth = -Mathf.Infinity, float maxDepth = Mathf.Infinity);
Physics.Linecast
public static bool Linecast(Vector3 start, Vector3 end, int layerMask = DefaultRaycastLayers);
Physics2D.OverlapPointAll
public static Collider2D[] OverlapPointAll(Vector2 point, int layerMask = DefaultRaycastLayers, float minDepth = -Mathf.Infinity, float maxDepth = Mathf.Infinity);
通过拖动多个Sprite即可自动生成Animation帧动画,在动态调节Sample率后,可观察到动画实时效果,非常简单。
一路东北, 转眼二十年了,最后一次回眸长春,是2004...
中年人的生活 各自欢乐, 又或一地鸡毛,简言之:【悲...
记得非典—2003年那会,周末一到,大学宿舍里面,吃完...
GPU这...
2023年,三年疫情过后第一个春天,我开始了骑行: 空...
在VR应用中,有一个相对简单的虚拟现实体验,那...
对程序员而言,写的代码用源码管理系统管理起来,非常方便...
2024年 甲辰龙年春节假期,我看了2本小说,茅盾文学...
上文中,说明了 Squid3 IP Proxy 隐藏原IP,这里就搭建Squid 3密码账号IP代理进行整理,涉及...
不用插件,js脚本显示星号密码
以前,我是用Chrome插件做这个这的--显示星号密码的。 今天,分享一个不用插件...
今天新采购了柒比贰WordPress主题,安装主题时候报错: MySQL命令行使用sql语句进行建表时,MySQL...