超牛链AI Logo

超牛链博客: 读书|骑行|笔记分享
user
老王不响
@关于博主
2015-05-10

C#程序员整理的Unity 3D笔记(十九):Unity 3D的Native 2D 9 mins read


最早接触Unity是从4.1版本开始,故那个时候只知道Unity 3D,无Unity 2D。近一段时间,通过学习,了解到Unity 2D也是蛮火的。如在最新的Unity 5版本中,新建项目可以选择2D、3D的,且该选项较以往版本更加醒目:仿佛告诉世人Unity不仅仅是3D的,Unity Native 2D也是不错的选择。

下面就使用过程中,Unity Native 2D一些特有的features整理出来:

1 Unity 2D新建工程不一样

看了一下官方的说明,发现实际上新建项目选择2D、3D不是决定项目的唯一,因为2D、3D还可以工程创建完成后,在Editor下也可以重新选择的。

新建2D项目,和3D项目大约有下面几个区别:

区别1:摄像机投影默认为Orthographic(正交)

区别2:场景视图,默认为2D方式

区别3:Edit—Project Settings—Editor 中默认Mode为2D

区别4:导入(添加)图片资源时,2D的Texture Type为Sprite(2D and UI)

新建工程时候选择2D、3D模式,目前就找到就这4种区别。

 

2 Unity 2D特有组件

Unity 2D自从4.3—>4.6—>5.0,增加很多2D组件: 我们发现Unity 5集中提供了15中Physics 2D组件,说明2D、3D的一个重要的区别就是在Physics上。

其中,Polygon Collider 2D组件非常棒,它提供了集成可视化调节碰撞盒子,按住Shift键可以添加碰撞点、按住Ctrl键可以删除碰撞点--对不规则Sprite尤为有用

 

另外,有一个重要的2D组件是Sprite Render,这个是2D下非常重要的组件。

Sprite Render是用来对Sprite(精灵)进行渲染的组件,它有2个重要属性:

  • Sorting Layer:由小到大排序进行渲染和呈现,大的会遮住小的。
  • Order In Layer:同层中渲染的优先级,数字越大渲染优先级越高。

注意,在Unity 2D中,一般不使用Z轴坐标,默认为0.

同样的功能,也可以在3D中使用Z轴由大到小来实现Order--但是相比,没有2D下的Sorting Layer直观。 在Sorting Layer下,你可以预定Soring Layer,这样便于team 协作:

 

3 Unity 2D 其他

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.pixelsPerUnit = 100:1(默认100像素=1单位)

 

4 Unity 2D动画--Animator动画状态机,Animation动画编辑器

通过拖动多个Sprite即可自动生成Animation帧动画,在动态调节Sample率后,可观察到动画实时效果,非常简单。

 

参考文献:

2015-05-10
老王 加冕为王
老王,工作了19年的软件工程师、连续创业者、Blogger(since 2013),微软.net MVP获得者(2015~2016)、 Unity3D UVP获得者 (2017)。 曾任上市公司研发主管、知名外企Social Media Marketing 。 现专注于Instagram、SEO等海外社交媒体营销技术研究与实践。 四十而立的我,有2个可爱的宝宝,喜好骑行、读书、木工, 尤其喜好历史、科幻书籍。
友情链接
超牛链 57天前 2024年3月6日 15:16

老朋友们又相聚了,期待楼主的新作

超牛链 57天前 2024年3月6日 15:16

永远的粉丝,永远支持楼主的每一个故事

超牛链 57天前 2024年3月6日 15:16

占领沙发,等待老朋友的精彩发挥

最新文章

超牛链AI:Ollama本地LLM LangChain RAG小试--算力为王

算力为王时代: CPU --> GPU

GPU这...
【发刊词】超牛链AI: hello world.

​公元2024年,比2023年的AI风暴,更加寒噤。

《一句顶一万句》 遇见一个能说的上话的人不易

2024年 甲辰龙年春节假期,我看了2本小说,茅盾文学...

2023个人总结: AI、骑行、青椒炒肉丝

后疫情时代,刚褪去口罩。又迎来经济消费降级,我的客户同...

热门文章

C#程序员整理的Unity 3D笔记(六):Git源码管理

对程序员而言,写的代码用源码管理系统管理起来,非常方便...

且行且思:记录一次西安城墙国际马拉松---8公里

百度搜索,输入西安城墙马拉松,有7万2千个结果。 实际...

骑行故事初心--自由的御风而行

2023年,三年疫情过后第一个春天,我开始了骑行: 空...

Unity3D for VR 学习(7): 360°全景照片

    在VR应用中,有一个相对简单的虚拟现实体验,那...

相关【技术杂谈】文章

查看所有相关【技术杂谈】文章
搭建Squid3 密码账号IP代理

上文中,说明了 Squid3 IP Proxy 隐藏原IP,这里就搭建Squid 3密码账号IP代理进行整理,涉及...

不用插件,js脚本显示星号密码

不用插件,js脚本显示星号密码

以前,我是用Chrome插件做这个这的--显示星号密码的。 今天,分享一个不用插件...

执行MySQL报错

今天新采购了柒比贰WordPress主题,安装主题时候报错: MySQL命令行使用sql语句进行建表时,MySQL...