C#程序员整理的Unity 3D笔记(二十):2D Toolkit之官方教程《Whack a Mole》

在上篇博客中,简单整理了一下Unity Native 2D功能:《C#程序员整理的Unity 3D笔记(十九):Unity 3D的Native 2D》. 本文开始学习2D商用比较广泛的2D Toolkit插件.

2D Toolkit插件在2D中的地位,犹如UI中NGUI对Unity GUI一样:虽然官方原生的2D还不错,但这是最近1年新版本才有的功能,2年前Unity 2D的王道还是得用插件的,故《2D Toolkit》就成了目前商业不错的选择。

在上周刚开始看的时候,就给自己提了3个问题 (1周后,自己给自己尝试做了回答):

  1. 2D Toolkit是类似NGUI的东西吗?

    答:是的,类似NGUI;2D toolkit是第三方插件,广泛用于2D的游戏开发;其还包括了UI,可不用NGUI就能进行不错的UI开发。

  2. 对比Unity Native 2D,2D Toolkit是否优势已经丧失;或者是类似UGUI和NGUI关系?

    答:这个目前不得知。 粗浅的看,Unity Native 2D比较简单,开发起来便捷,毕竟和Unity无缝集成的,且原生,另外还省钱;但是2D Toolkit都演变到2.5.2版本了,商用应该比较成熟,如其tk2dCamera简直无敌了–能自适应各种屏幕、大大节约了编码。

  3. 2D Toolkit能够和Unity Native 2D同存否?

答:目前不知道。应该可以吧,2D toolkit已经于2015.5.24 发布2.5.2版本,声明支持Unity 5了。

 

2D ToolKit简历

2D ToolKit是第三方2D插件,能处理图集打包(Atlas Package)、精灵渲染(Sprite)、2D动画(Sprite Animator)、2D UI,目前中文资料少得可怜。

2D Toolkit简称为TK2D,其功能据说是2D下最强大的,assetstore的下载点评竟然超过1200个,这个数据非常惊人,要知道售价价格要75美金呢。其插件提供了C#代码,源码之内,了无秘密。

TK2D的厂家是Unikron Software Ltd,官方网站为http://unikronsoftware.com

TK2D在assetstore的”编辑器扩充/2D与图片管理”分类下,排名第一

image

我摘录了部分官方官网assetStore点评:

low draw calls

pixel perfect camera:Unity 4.6 pro sprite package

get a response with 24 hours

manages multiple resolutions of sprite images (1x, 2x, 4x)

Very nice package

greatly sped up my animating process.

really streamlined my workflow.

organise all your sprites how you like in collections.

It’s fast at updating and rendering too.– opitimization

The best support、comunity

other:spline、NGUI

其点评大多集中在以下几个方便

  • 降低了DC
  • 正版的售后服务好
  • 图集打包很爽
  • 2D下效率高

正文开始–本文就官方教程《Whack a Mole》进行小结:

注:因为官方问答截图、文字描写清楚,我这里为节约大家时间,不会写的很细,请先预览一下官方教程。

官方提供的Whack a Mole 材质下载地址

 

步骤1:了解官方文档对TK2D做的系统概括:

  1. Tk2D在编辑期间生成脚本–Assets目录
  2. Tk2D运行脚本生成对象–场景

image

      上面这张图包含了TK2D的7个知识点 (术语) 的6个(除了Tilemaps外)
    • Sprite Collections: 精灵(2D下的图片)集合,用于组织图片,一般同z轴值的放在一起,效率高。
    • Sprites:精灵,任何需要在Scene显示的均需要精灵组件,目前包含4种Sprite

    image

    • Static Sprite Batcher:静态化精灵–不参与碰撞的,可明显减少DC
    • Sprite Animations:动画精灵
    • Fonts:字体
    • Text Meshes:显示文本
    • Tilemaps

          步骤2:tk2d camera 自动布局的摄像机

          删除新建Unity 2D工程的Main Camera,添加tk2dCamera,并设置tag为“Main Camera”。

        image

            修改tk2dCamera参数如下:

          image

        1. Native Resolution :1024*768
        2. Projection:Orthographic
        3. Type:Pixels Per Meter
        4. Pixels Per Meter:1
        5. Origin:Bottom Left
            例如:

          pixel per meter – so 100×100 world units = 100×100 pixels from the bottom left

              tk2dCamera实际上是对Unity的Camera进行了扩展,这里有详细的对比说明和tip技巧。

                步骤3:精灵集合(Sprite Collections)、精灵(Sprite )、静态精灵批处理(Static Sprite Batcher)

              要使用图片,则需要首先添加Sprite Collections,它有3个作用:

              1 把图片组织管理起来–如果你有上百个图片就会发现它的价值。

              2 同z轴的组织起来,方便Unity引擎优化降低DC

              3 自动进行图集打包–减少图片占用空间
                为什么要用Sprite Collection? 我认为比Unity Native 2D的默认能生成精灵而言,多了2个步骤。

              img/spritecollection.png

                  要添加精灵,需要先Check out–如我这里使用Perforce源码管理。

                image

                    添加精灵很简单,选择、拖放即可:

                  img/spritecollection_drag.png

                      针对当前Sprite Collection,进行Settings,然后一定要记得Commit:

                    image

                        注意:这里的Size和Pixels Per Meter,需要和上面的tk2DCamera保障一致。
                          Settings最下面有Platforms的设置,这个我没有看明白:

                        image

                            网上搜了一段代码,好像是为了适应不同屏幕的全局设置:

                          image

                              点击Commit后,就生成1了文件夹,包含3个文件:*.prefab 、*.png、*.mat。

                            image

                                使用Sprite就简单多了,添加Tk2D Sprite对象或者添加TK2D Sprite组件,选择Collection和Sprite即可:

                              image

                                  如果有n个Sprite,需要组织管理起来,默认会想到空的对象(EGO), 如果不参与碰撞等动态监测,可使用Static Sprite Batcher。 选择需要静态化的Sprite,拖放为Batcher的子物体,在Inspator视图点击Commit,即可完成处理。
                                    有2点神奇之处:

                                    1 原来n个Sprite变为1个了,即仅仅是Static Sprite Batcher可见,其子物体消失了(点击Edit即可编辑)

                                    2 明显的减少了DC。

                                  imageimage

                                  步骤4: 代码实现 Clipped Sprite

                                      Clipped Sprite是Sprite的一种,可动态实现隐藏、可见。
                                      image

                                          通过动态设置Clipped Sprite的ClipRect的y值(y值范围0.0~1.0f之间)
                                          同时调整其localPostion的y轴,可模拟图片的隐藏、显示效果。
                                        另外,这个思想也挺有趣的,使用n个return null代替waitforSecond.

                                      private IEnumerator WaitForHit()
                                              {
                                                  float time = 0.0f;

                                                  while (!whacked && time < timeLimit)
                                                  {
                                                      time += Time.deltaTime;
                                                      yield return null;
                                                  }
                                              }

                                        步骤5:精灵动画(Sprite Animation)

                                      Sprite Animation也是基于Sprite Collection的。

                                    img/clip_settings.png

                                   

                                  显示动画,需要用Sprite With Animator组件,下面这张图一览无余:

                                  img/animated_sprite_inspector.png

                                   

                                  本文的整理到这里就结束了,完整的请参阅官方教程–《Whack a Mole

                                   

                                  注,本文使用的开发环境:

                                  • Unity 4.6.3
                                  • 2D toolkit 2.4.0

                                  《源创会.西安》 再次回归,赞!

                                  免责声明:

                                  本文是个人随笔,官方的报道请点击链接《西安源创会高清无码图文报道 —— 妹纸无处不在!

                                   

                                  期盼很久很久的源创会,昨天在西安如期举行。 我很高兴,也非常乐意志愿其中。之所以有这个期盼,是缘于我2014年7月23日注册的账号,当时是为了“抢夺”开源中国.西安圈子管理员(因为我当时负责运营公司的在开源中国的一个大号),@红薯说 管理员不能交给公司来打理,故我就迅猛的注册了个人账号,参与到西安圈子管理员的“竞争”中。

                                  image

                                  实际上,我个人不是开源技术的重度爱好者,也不是开源技术的布道者,只所以有兴趣,是因为 在开源社区,觉得 @红薯、@永和 @阿娇OSC 很有趣:好玩、草根–没有国内***社区们高高在上的架子,愿意和粉丝们交朋友、互动聊天,如此而已。我个人开源社区账号,仅有14个积分,大多是转载个人博客、公司博客文章赚的,故在西安开源圈子,我不是那么的德高望重。

                                   

                                  下面说一点近一年,和开源社区.西安有关的小事:

                                  自打“上任”开源中国.西安圈管理员后,能够使得西安再次举行一次源创会,完成这个西安全体OSCer们的共同心愿,一直在忙乎。

                                  要知道:

                                  • 西安是红薯老人家初恋的城市–他的大学四年是在西工大渡过的。
                                  • 西安是开源中国最早一批参与线下活动的城市《【高清图】OSC源创会(西安)图文总结
                                  • 西安是红薯担任升降国旗的舵手的发迹城市。

                                  红薯原话:俺老人家当年就在此处充当护旗手,每周一上午和周五下午负责升降国旗。

                                  image

                                   

                                  但是,多种原因,在重要的2013年、2014 年源创会在国内一线大城市如火如荼举行的时候,西安被静悄悄的“遗忘”了,西安圈子前管理员也去深圳创业了,甚至西安圈子也一度没有管理员。

                                  另外,2014年初时的西安圈子,人刚满1000;我们隔壁的成都都已经近2000成员了。

                                  image

                                   

                                  在这个空档期间,我很荣幸的接过了老一辈管理员的删贴大权。

                                  故,新官上任三把火,火急火燎的召开首次组阁聚会、组织活动、开源会议等等。

                                   

                                  第一把火:开源网友见面会.大唐西市某咖啡厅

                                  image

                                  组建了一个QQ群,有事没事扯扯淡,谈谈理想、妹子啥的。后来多亏这个QQ群,聚集起了第一批星星之火。所幸,参与的小伙伴很支持,如虽然才3个线上报名的,也如期举行了活动(实到约7个人,聊了2个小时,主要是破冰和工作介绍等轻松话题)。

                                  现在依稀记得讨论的2个要点:

                                  • 最低纲领:约3个月,举行一次技术活动,见面交流交流。
                                  • 最高纲领:争取2015年 源创会 重返 西安。

                                  当时是,@红薯 老人家还很费解呢:

                                  image

                                   

                                    下面是支持的声音:

                                  image

                                   

                                  image

                                  西安开源圈子,御用签到师–王丹女神。

                                   

                                  第二把火:强强联手-组织活动

                                  image

                                  组织活动三要素:场地、讲师、茶歇。

                                  • 因为我在葡萄城,故申请了公司1F 高、大、上的场地。
                                  • 因为我是InfoQ编辑,故联合InfoQ线下品牌QCon。 InfoQ同时也提供了讲师和茶歇费用。
                                  • 因为我是OpenParty西安组织者其一,故联合了OpenParty组织者和社区人气,一起策划了本次活动。(备注:西安OpenParty是西安成立了约6年+的一个程序员公益线下技术沙龙,不定期举行技术分享)

                                  但因为活动主要是由OSChina发起报名的,故参加活动的超过60%是开源社区的小伙伴,也有很多朋友认为这是一次开源技术活动,那就算吧。在此次活动中,我担任主持人,且第一次公开了开源中国.西安圈子管理员的角色。

                                  在除工作外的超过90人的场合公开亮相,我还真的紧张了:语无伦次、脊背发汗、战战兢兢的。

                                   

                                  第三把火:华为开源技术开放日

                                  image

                                  华为开源的战略,对国内开源圈,具有极为重要的信号:开源大势,挡者亡,顺者昌!

                                  且以华为在西安的布局,对西安开源圈子也非常重要,故2015年伊始,华为的广卫兄就强势入驻西安圈子管理员,连我都没有被事先通知,史称“开源双*”— 这个惊喜的确够劲!

                                  image

                                  参加活动的当天,报名人很多,但是天气很糟糕,还担心人不来呢。 结果人满满的(80人+),讲师干货多多的,首次出现了活动现场,零食、点心竟然剩余了这么多。。。

                                  本次活动:场地由华为提供、茶歇由华为找合作伙伴提供、话题由华为开源战略规划的研究员们提供–这些人不是一般研究研究就算了,都是在业界很有影响力的大牛们。

                                  华为在西安的影响力,可见一斑。


                                  通过这3次有组织、有预谋的活动参与,某种意义使得开源中国的高层逐渐重视起西安社区力量了。

                                  故,在2014年底,无意间当我翻到2015年源创会行程安排的时候:源创会.西安 2015.5.23号

                                  我第一时间告诉了开源西安的小伙伴们,大家顿时高兴坏了—-We  do it


                                  下面以个人视角,记录一些昨天活动的花絮:

                                  OSC特色一:女神当“女汉子”用

                                  image

                                  这张图来源于 @阿娇@OSC 的朋友圈,我这里说花絮的是那天早晨,2个妹子的故事:

                                  5.23号上午10点,我如约去OSC下榻的宾馆接客,去拉礼品、X展架等包裹。到了宾馆门口,我电话阿娇–素未蒙面,但是电话、邮件次数较多。阿娇和文洁已经在宾馆门口等待多时了,初次见到漂亮的妹子,我还是很惊讶了,其本人比照片上好看多了。我说,不会吧,就你们2个女神负责搬东西? 阿娇爽朗的说,习惯啦,一向是我们。

                                  话音刚落,高跟鞋噔噔地就开工了:从搬包裹、布置会场,女神们真的当女汉子用了。

                                  赞一个吧。

                                   

                                  OSC特色2:美女编辑当“保洁”用

                                  image

                                  @叶秀兰 我在OSC认识比较早了,她负责开源新闻编辑、博客审阅、开源软件校对等文案工作;本次也是初次见面,其轻巧玲珑的身影,在会务组织、签到中发挥了主人翁的作用。

                                  昨天,我和她配合较多一项工作–负责披萨的善后工作,其拖地、扫地这些家务活的手法娴熟、技艺高超,好像不是第一次干这些工作。 秀兰话不太多,只是专心的做好的本职工作,并尽可能的帮助团队前进。

                                  我为我的同行—女编辑,点赞。

                                   

                                  OSC特色3:明星代言人–红薯

                                  image

                                  我不知道大家是否有同感,在国内技术社区,能够这么平易近人的和一个社区创始人愉快的合影、免费的m、调侃社区江湖、拿起樱桃、杏子肆无忌惮的大嚼吞咽,社区创始人们除了 @红薯, 再无他人能够如此坦诚。 要知道,开源中国已经很大了,其2008年8月就成立了,目前已经是一家超过40人互联网+ 科技公司,

                                  开源中国社区注册用户超过130万– 红薯亲口说。

                                  哪一天,开源中国上市了,这,也不是不可能的事情。但是,@红薯还是这么的拼,这么的卖萌,不为其他,就图OSCer开心。   

                                  小小的遗憾:本来前一天在朋友圈看到 @红薯 感冒了,合影一次倒贴10元,兴冲冲的大早跑过去;没有想到,红薯的感冒竟然好了很多,故,合影还是原价–100元/人次。  (呵呵,开个玩笑,合影免费,且可免费m)

                                   

                                  OSC特色4:高颜值的COO-永和大王

                                  image

                                  广东人,我的印象中,颜值一般。

                                  因为我大学和工作中有2个广东.茂名的朋友,他们2个黑黑的皮肤,我自认为,我比较白。 当见到 @永和 真人,我才知道,我和广大 OSC一样,被蒙了,哪里是 @红薯 最帅,明明是永和嘛!  不知道 @红薯 看到这里,会不会一怒就把我西安圈子删贴的权限给取消了,微笑

                                  @永和 负责的事情对外多一些。我去年下半年,代表公司和开源中国业务沟通,90%是和他本人电话、邮件沟通合作的。 

                                  恭喜永和升级,当爹了,小公主是个美女。

                                  @永和 心里想着OSCer,看到我在帮忙布置签到会场,就悄悄对我说,“我一会主持会议,你有何诉求我能再帮你的。” 我说不用了,本次公司未参与商务合作,因为我个人帮点小忙,竟然线上给公司logo链接,线下让通过X展架宣传,真的谢谢 @永和 的用心良苦。

                                   

                                  好,广告时间到。

                                   

                                  公司宣传的X展架–文字最多、头像最多、人气最旺!

                                  image

                                  这个X展架是2个月前,为了配合公司的大学生程序设计大赛,紧急赶制出来的–还没有从流水线上下来,HR部门就要用。 这次设计,一反常态,突出人文情怀和企业文化—X展架中的人物拍照,是公司年度例行的team photo,具有非常重要的纪念意义。 在本次活动中,相对其他云、互联网公司的展架,是唯一一个基地在西安的公司,故比较受西安开源社区的瞩目,我大西安竟然有本地公司参与。


                                  关于我个人:

                                  我不是社会活动家,我是一个严肃、职业的软件工程师;因为热心在团队中布道,故很早就开始在研发team中负责带队、项目管理; 自从2013年从研发团队退役后,从事了市场、社区工作 (博客宣传、活动策划、市场推广等), 加之外企工作比较轻松, 故有了大把大把的业余时间,我个人也没有特殊嗜好,故有时间就会游玩于西安大大小小的IT技术圈子 —– 分享技术、组织活动、连接朋友。

                                  (在生人面前比较腼腆,不会露出爱吹牛本色,一般会默默的倾听)  微笑

                                  5篇非技术的博客,和我有关的:

                                  预告:2015.6 《王者归来》

                                  用了近2年的时间思考,我做了严谨的论证:重操旧业,回归研发团队。

                                  在我职业人生的第二个10年伊始,选择了一个新的行业,以归零的心态,从程序员做起。

                                  我用过的源码管理工具们(SCM)

                                  源码管理工具是什么? 这个问题对研发中的兄弟姐妹而语,是天天使用,用来吃饭的东西嘛:

                                  代码管理、协作开发、代码合并、代码分支、代码标签、代码比较、版本化工具。。。。。。

                                  故,源码管理工具有很多产品(svn, cvs, hg, git 等),其功能类似,各有特色。

                                  结合个人所使用过的SCM,我简单小结一下:

                                    1. 他是一种文件管理系统
                                    2. 他是研发团队交流的重要契约
                                    3. 他是队员彼此信任的核心之一
                                    4. 他是你取得进步的见证者之一
                                    5. 他是你觉得不孤独的利器之一
                                    6. 下面就我个人使用的源码管理工具列举一下,有些流水账,各位请继续忍忍:

                                  • VSS:2005年

                                  • 我最早使用的一个源码管理工具,VSS全程是Visual SourceSafe,其属于微软的一款产品。但是刚从一名工人自学编程,进入研发团队,还觉得挺难的:团队协作、checkIn、CheckOut等概念,那个时候,还不太理解做这些事情到底是为什么。

                                    VSS最大的一个特点就是可以和开发环境Visual Studio进行无缝结合,我记得2005年我用的Visual Studio 是2005版本, .Net 1.1框架。 网上找了个图片,记忆中的VSS的界面大概是这个样子的,中规中矩的WindowForm风格:

                                  image

                                   

                                  • TFS:2006年

                                  • 团队发展到一个新的阶段,人多了起来,需要提 bug,需要提 需求, 需要分配任务,这个时候为了复用已有的VS技能,故升级到了VS完美结合的TFS(Team Foundation Server,这个也是微软出品的)。其功能强大:完整的软件生命周期工具、支持敏捷开发、可配置自定义查询、可定制Daily Builder等功能。

                                  截图如下,我现在还记得TFS有一个很重要的特性是有lock功能,只能独占编辑。当时公司的SCM在内网搭建,外网无法访问,我们出差去保定,只能手工选择文件为可编辑,修改完毕后,等回公司后,再花1天时间合并、提交代码。

                                  image

                                   

                                  • SVN:2009年

                                  • SVN(Subversion) ,是一个开源软件,崛起的速度很快,好像是 CVS(Concurrent Version System)的替代和升级版本。SVN起来的一个很重要原因是自由软件开发的协作网如SourceForge.net提供了SVN的访问方式。很大程度上,我对SVN熟悉是从一个乌龟的logo开始的:

                                  image

                                   

                                  SVN截图如下,完美的和Windows文件系统集成,SVN会非常方便进行源码管理:更新、提交很方便;其处理代码冲突也非常方便编辑。

                                  image

                                   

                                  • Git:2014年

                                  自打离开研发队伍后,业余玩点代码,没有源码托管的可真难受啊。

                                  又懒得自己搭建源码服务器,开始尝试了微软的TFS Online,但是,网速那个慢,无法忍受。当看到国内Git免费托管盛行,就学习了Git方式(我用的是非命令行的,还是乌龟的tortoisegit)。所幸,Git到处有,国外著名的是Github(任意多个public的代码库,private收费)和bitbucket (免费提供1个private和任意多个public的代码库)。国内的如https://gitcafe.com/, 以及我最近1年在使用的http://git.oschina.net/–速度快、private免费、可团队协作等。

                                  目测,Git因为是目前最火的、最流行的源码管理工具了吧。

                                  git这么火,不仅仅是其免费、开源;还源于其血统和传奇:Linux创始人Linux Torvalds 花了短短几天写出来的,据说;自那以后,Linux就在Git下进行源码管理,加之,基于Linux的Android火的厉害。

                                  image  image

                                   

                                  • Perforce:2015年

                                  • 头次听说Perforce源码管理工具,是看《游戏引擎框架》这本书,听说在游戏行业,用的很多,当时并未走心。第二次听说是li口头告之的, 大名鼎鼎的EA用的就是这个产品,但是还没有反应上来是啥–误以为是performance,用于测软件性能的工具,呵呵。

                                    回家查询了一下,原来Perforce不是默默无名之辈,其是Unity默认支持的文件管理系统之一,使用免费、开源的P4Connect即可在Unity中提及、获取代码。同时Perforce也提供了VS的插件P4VS:P4VS – Perforce Plugin for Visual Studio

                                  花了约1.5天,看了一下官方文档和网友整理的博客《[SCM]软件配置管理》;自己下载Perforce工具–20人以下是免费的,动手在Windows 7上搭建了Perforce服务器。

                                  配置Perforce服务:

                                  image

                                  在Project视图使用菜单:

                                  image

                                  不过,有时候,偶尔会有这样的错误,比较恼火:

                                  image

                                  昨晚处理一个问题:

                                  Client ‘roger.wang_codepiao-PC_5688’ can only be used from host ‘codepiao-PC’.

                                  本地建立workspace,不要指定host:

                                  image

                                   

                                  对源码管理工具,没有太多个人的喜好,都是团队的协同工具之一。

                                  总之,在概念和操作上大同小异,熟练掌握即可。 对研发而言,天天会用到,无他,唯手熟尔。

                                  如当熟练掌握一种源码管理工具,再要学习新的,1、2天就能上手了。如下图是SVN和Perforce的对比图:

                                  image

                                   

                                   

                                  同类型的几篇博客链接:

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

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

                                  image

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

                                  1 Unity 2D新建工程不一样

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

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

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

                                  image

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

                                  image

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

                                  image

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

                                  image

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

                                   

                                  2 Unity 2D特有组件

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

                                  image

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

                                  image

                                   

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

                                  image

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

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

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

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

                                  image

                                   

                                  3 Unity 2D 其他

                                  2D的射线检测,3D检测是空间检测,2D则简单一些。

                                  image

                                  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单位)

                                  image

                                   

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

                                  image

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

                                   

                                  参考文献: