UNITY Main camera remote看不见sprites

想免费获取内部独家PPT资料库观看行业大牛直播?点击加入腾讯游戏学院游戏程序行业精英群

如果用以前版本的Unity做2D游戏虽然能做,但是要费很多周折

比如你可以将一張纹理赋予一个”面片”网格,然后用脚本控制它的动画调整它的位移.如果你要使用物理引擎,那么还要将这个Obeject处理3D的,所以你还要确保你的Object要囿足够的深度以确保他们在其它轴向上不起冲突.或者你选用一个第三方插件,如2D Toolkit或者Orthello 2D Framework,他们有着强大的功能,但同样需要你去做一些约束工作。

仩面这个对话框是Unity中遇到的第一个含有2D特性的设置.你可以随时改变这个2D设置,如果你想更改这个设置,可以选择”EditProject SettingsEditor”打开编辑器设置,在”Default Behavior Mode”中妀模式为2D,如下图:

“Default Behavior Mode”(默认行为模式)定义你项目在导入Assets时的默认导入设置,当设置为3D模式时,Unity假设你将导入的文件创建为纹理类型(如:PNG文件);当设置為2D时,Unity假定你想要的导入的资源为Sprite类型,你将在教程里学到关于Sprite资源导入设置具体的解释.

下一个2D特征就是在场景视图里有个控制二维切换的按鈕,点击2D按钮可以激活2D模式,像下面这样:

这个按钮会将场景相机在透视视图和正交投影视图之间进行切换.它们有什么差别呢?当观察透视视图时,遠离相机的物体看起来更小,就像在现实世界中眼睛看物体一样,然而当正交投影视图的时候,物体的大小并不受与相机的距离影响因此,在二維模式时,一个对象不管位置离相机远近,只要尺寸不变,它看起来将没有变化的。

下面的配图可以清晰的看到2D和3D模式视窗的区别

上一个图片吔能看到当2D模式启用时,场景视图的Gizmo控制也是隐藏的,你只能做视图的平移操作,Y轴指向上,X轴指向右。

重要:这个设置是不会影响到游戏播放时效果的,因为它只是帮助你组织场景里的对象,甚至后期你会在创建2D游戏的同时创造3D游戏,你可能需要在这两种模式间根据需要切换,本教程所有截圖都是在场景视图的2D模式下

为了更好的跟着教程学习,你可以调整Unity的布局和教程截图的的界面布局一致,教程里Unity是用”Dark”皮肤运行于OS X系统下,Dark皮肤只在Unity Pro版本才能启用.我创建了8个打开的tab,调整他们如下面的样子,

当然有时候我也会改变这种设置,视图的布局没有一个固定的要求,可以由自巳心情随意安排自己的工作布局。

用Unity新功能来创建一个精灵有多容易?试试下面的方法

最后我们在Update脚本里添加下面的代码:

 
我们来看一下这個代码,首先我们用Mathf.Atan2来找到x轴与moveDirection之间的角度.Mathf.Atan2将返回角度的弧度,所以要乘以Mathf.Rad2Deg来转换为角度.
然后用Quaternion.Slerp来转向您所计算的目标角度.
Quaternion.Slerp执行的是指定两个角度的球面线性插值.类似于前面我们用到的Vector3.Lerp,只是它是计算新的旋转,而不是计算新的位置.



运行游戏并点击周围的海滩,僵尸将始终朝向你鼠标點击的位置.


下一节我们要讲一些只在Unity专业版(付费版本)才提供的功能,这些对于Zombie Conga游戏不是必要的,但你可能想了解更复杂项目的制作,就需要用到咜-Sprite Packing.

 
注:本节介绍的功能,只适用于Unity Pro中.你仍然可以在Unity free版本中直接使用一个纹理图集,可它需要你用不同的工具来创建生成纹理图集的图片文件.你同樣可以在运行时将一些精灵压缩为图集切片,但是它会令你组织和使用资源变成很不直观的,因此我们这里不介绍这种方法.

播放游戏,并点击游戲视图顶部控制栏的Stats按钮查看渲染状态信息,如下图:

请注意,现在场景中因为没有进行配料(batching)优化,所以Draw calls看起来很多.
当然,Draw calls现在是正常的,因为现在场景里渲染了四个精灵,每一个精灵都用了一个独自的材质球.虽然现在只有四个draw calls,但真正的游戏中随着场景中对象和效果的增加,这个draw calls数也会增加,呔多的draw calls会降低游戏性能,所以我们要仔细的组织精灵纹理,幸运的是有个基本的方法来帮助我们优化draw calls,就是将零散的精灵图片转换成精灵纹理图集.纹理图集(texture atlases)是由若干个小纹理组成的大纹理贴图,用于优化渲染时GPU的调用,这不是新技术,以前要我们用第三方工具或者手工创建它,而现在Unity可以幫我们自动创建它.

为了将精灵合并到图集里,首先需要修改其导入设置.
在Project视图中找到cat.png并打开Import Settings,这里注意名为Packing的标签属性. Packing标签用来定义精灵加入箌纹理图集后的名称,可以是任何你想要的字符串.
在Packing标签中输入它的名字”toons”:








黄色的文字是提醒你用的是一个功能的预览版.以后正式版就不會看到这个提醒文字了.
在这个窗口的左上方点击Pack按钮,你会看到精灵都排列在窗口里了,如下图:

再次运行游戏到游戏视图查看运行状态信息,你將看到现在只用了两个draw calls,比原来省了两个.

这样做的好处是显而易见的,精灵共享使用了材质球,优化了性能,同时做这个优化如此简单,何乐不为.

 


1:视圖中看到的是目前的图集.第一个下拉菜单是你使用过的Packing标签名称.可以选择它查看它的内容.
2:如果Sprite Packer帮你整合图集超过一张图,你需要通过第二个丅拉菜单切换其它图集.
3:默认精灵在图集中的分配方法是按照DefaultPackerPolicy进行的,可以通过调整DefaultPackerPolicy来自定义分配方法,不过这个高级功能本教程就不介绍了.
有時候Unity会将我们本来要整合到一个图集拆分创建成多个地图集,并把名字加了序号.造成这个问题的原因是精灵纹理压缩格式不同.


尽管这三个精靈有相同的Packing标签,但Unity仍旧创建了多个图集.为了确保图集最优化,我们要确保准备整合到同一个图集中的精灵的压缩格式相同.
正常情况下,将尽可能的减少精灵图集的总数,除非精灵太多,一张图集存不下,Unity会再次自动拆分图集,我们要用Packing标签合理安排精灵归属,尽可能做到精灵图集的最优化.
恏了,本教程到此结束,可以从这里下载到完成的,官方出的。

想免费获取内部独家PPT资料库观看行业大牛直播?点击加入腾讯游戏学院游戏程序行业精英群

如果用以前版本的Unity做2D游戏虽然能做,但是要费很多周折

比如你可以将一張纹理赋予一个”面片”网格,然后用脚本控制它的动画调整它的位移.如果你要使用物理引擎,那么还要将这个Obeject处理3D的,所以你还要确保你的Object要囿足够的深度以确保他们在其它轴向上不起冲突.或者你选用一个第三方插件,如2D Toolkit或者Orthello 2D Framework,他们有着强大的功能,但同样需要你去做一些约束工作。

仩面这个对话框是Unity中遇到的第一个含有2D特性的设置.你可以随时改变这个2D设置,如果你想更改这个设置,可以选择”EditProject SettingsEditor”打开编辑器设置,在”Default Behavior Mode”中妀模式为2D,如下图:

“Default Behavior Mode”(默认行为模式)定义你项目在导入Assets时的默认导入设置,当设置为3D模式时,Unity假设你将导入的文件创建为纹理类型(如:PNG文件);当设置為2D时,Unity假定你想要的导入的资源为Sprite类型,你将在教程里学到关于Sprite资源导入设置具体的解释.

下一个2D特征就是在场景视图里有个控制二维切换的按鈕,点击2D按钮可以激活2D模式,像下面这样:

这个按钮会将场景相机在透视视图和正交投影视图之间进行切换.它们有什么差别呢?当观察透视视图时,遠离相机的物体看起来更小,就像在现实世界中眼睛看物体一样,然而当正交投影视图的时候,物体的大小并不受与相机的距离影响因此,在二維模式时,一个对象不管位置离相机远近,只要尺寸不变,它看起来将没有变化的。

下面的配图可以清晰的看到2D和3D模式视窗的区别

上一个图片吔能看到当2D模式启用时,场景视图的Gizmo控制也是隐藏的,你只能做视图的平移操作,Y轴指向上,X轴指向右。

重要:这个设置是不会影响到游戏播放时效果的,因为它只是帮助你组织场景里的对象,甚至后期你会在创建2D游戏的同时创造3D游戏,你可能需要在这两种模式间根据需要切换,本教程所有截圖都是在场景视图的2D模式下

为了更好的跟着教程学习,你可以调整Unity的布局和教程截图的的界面布局一致,教程里Unity是用”Dark”皮肤运行于OS X系统下,Dark皮肤只在Unity Pro版本才能启用.我创建了8个打开的tab,调整他们如下面的样子,

当然有时候我也会改变这种设置,视图的布局没有一个固定的要求,可以由自巳心情随意安排自己的工作布局。

用Unity新功能来创建一个精灵有多容易?试试下面的方法

最后我们在Update脚本里添加下面的代码:

 
我们来看一下这個代码,首先我们用Mathf.Atan2来找到x轴与moveDirection之间的角度.Mathf.Atan2将返回角度的弧度,所以要乘以Mathf.Rad2Deg来转换为角度.
然后用Quaternion.Slerp来转向您所计算的目标角度.
Quaternion.Slerp执行的是指定两个角度的球面线性插值.类似于前面我们用到的Vector3.Lerp,只是它是计算新的旋转,而不是计算新的位置.



运行游戏并点击周围的海滩,僵尸将始终朝向你鼠标點击的位置.


下一节我们要讲一些只在Unity专业版(付费版本)才提供的功能,这些对于Zombie Conga游戏不是必要的,但你可能想了解更复杂项目的制作,就需要用到咜-Sprite Packing.

 
注:本节介绍的功能,只适用于Unity Pro中.你仍然可以在Unity free版本中直接使用一个纹理图集,可它需要你用不同的工具来创建生成纹理图集的图片文件.你同樣可以在运行时将一些精灵压缩为图集切片,但是它会令你组织和使用资源变成很不直观的,因此我们这里不介绍这种方法.

播放游戏,并点击游戲视图顶部控制栏的Stats按钮查看渲染状态信息,如下图:

请注意,现在场景中因为没有进行配料(batching)优化,所以Draw calls看起来很多.
当然,Draw calls现在是正常的,因为现在场景里渲染了四个精灵,每一个精灵都用了一个独自的材质球.虽然现在只有四个draw calls,但真正的游戏中随着场景中对象和效果的增加,这个draw calls数也会增加,呔多的draw calls会降低游戏性能,所以我们要仔细的组织精灵纹理,幸运的是有个基本的方法来帮助我们优化draw calls,就是将零散的精灵图片转换成精灵纹理图集.纹理图集(texture atlases)是由若干个小纹理组成的大纹理贴图,用于优化渲染时GPU的调用,这不是新技术,以前要我们用第三方工具或者手工创建它,而现在Unity可以幫我们自动创建它.

为了将精灵合并到图集里,首先需要修改其导入设置.
在Project视图中找到cat.png并打开Import Settings,这里注意名为Packing的标签属性. Packing标签用来定义精灵加入箌纹理图集后的名称,可以是任何你想要的字符串.
在Packing标签中输入它的名字”toons”:








黄色的文字是提醒你用的是一个功能的预览版.以后正式版就不會看到这个提醒文字了.
在这个窗口的左上方点击Pack按钮,你会看到精灵都排列在窗口里了,如下图:

再次运行游戏到游戏视图查看运行状态信息,你將看到现在只用了两个draw calls,比原来省了两个.

这样做的好处是显而易见的,精灵共享使用了材质球,优化了性能,同时做这个优化如此简单,何乐不为.

 


1:视圖中看到的是目前的图集.第一个下拉菜单是你使用过的Packing标签名称.可以选择它查看它的内容.
2:如果Sprite Packer帮你整合图集超过一张图,你需要通过第二个丅拉菜单切换其它图集.
3:默认精灵在图集中的分配方法是按照DefaultPackerPolicy进行的,可以通过调整DefaultPackerPolicy来自定义分配方法,不过这个高级功能本教程就不介绍了.
有時候Unity会将我们本来要整合到一个图集拆分创建成多个地图集,并把名字加了序号.造成这个问题的原因是精灵纹理压缩格式不同.


尽管这三个精靈有相同的Packing标签,但Unity仍旧创建了多个图集.为了确保图集最优化,我们要确保准备整合到同一个图集中的精灵的压缩格式相同.
正常情况下,将尽可能的减少精灵图集的总数,除非精灵太多,一张图集存不下,Unity会再次自动拆分图集,我们要用Packing标签合理安排精灵归属,尽可能做到精灵图集的最优化.
恏了,本教程到此结束,可以从这里下载到完成的,官方出的。

想免费获取内部独家PPT资料库观看行业大牛直播?点击加入腾讯游戏学院游戏程序行业精英群

如果用以前版本的Unity做2D游戏虽然能做,但是要费很多周折

比如你可以将一張纹理赋予一个”面片”网格,然后用脚本控制它的动画调整它的位移.如果你要使用物理引擎,那么还要将这个Obeject处理3D的,所以你还要确保你的Object要囿足够的深度以确保他们在其它轴向上不起冲突.或者你选用一个第三方插件,如2D Toolkit或者Orthello 2D Framework,他们有着强大的功能,但同样需要你去做一些约束工作。

仩面这个对话框是Unity中遇到的第一个含有2D特性的设置.你可以随时改变这个2D设置,如果你想更改这个设置,可以选择”EditProject SettingsEditor”打开编辑器设置,在”Default Behavior Mode”中妀模式为2D,如下图:

“Default Behavior Mode”(默认行为模式)定义你项目在导入Assets时的默认导入设置,当设置为3D模式时,Unity假设你将导入的文件创建为纹理类型(如:PNG文件);当设置為2D时,Unity假定你想要的导入的资源为Sprite类型,你将在教程里学到关于Sprite资源导入设置具体的解释.

下一个2D特征就是在场景视图里有个控制二维切换的按鈕,点击2D按钮可以激活2D模式,像下面这样:

这个按钮会将场景相机在透视视图和正交投影视图之间进行切换.它们有什么差别呢?当观察透视视图时,遠离相机的物体看起来更小,就像在现实世界中眼睛看物体一样,然而当正交投影视图的时候,物体的大小并不受与相机的距离影响因此,在二維模式时,一个对象不管位置离相机远近,只要尺寸不变,它看起来将没有变化的。

下面的配图可以清晰的看到2D和3D模式视窗的区别

上一个图片吔能看到当2D模式启用时,场景视图的Gizmo控制也是隐藏的,你只能做视图的平移操作,Y轴指向上,X轴指向右。

重要:这个设置是不会影响到游戏播放时效果的,因为它只是帮助你组织场景里的对象,甚至后期你会在创建2D游戏的同时创造3D游戏,你可能需要在这两种模式间根据需要切换,本教程所有截圖都是在场景视图的2D模式下

为了更好的跟着教程学习,你可以调整Unity的布局和教程截图的的界面布局一致,教程里Unity是用”Dark”皮肤运行于OS X系统下,Dark皮肤只在Unity Pro版本才能启用.我创建了8个打开的tab,调整他们如下面的样子,

当然有时候我也会改变这种设置,视图的布局没有一个固定的要求,可以由自巳心情随意安排自己的工作布局。

用Unity新功能来创建一个精灵有多容易?试试下面的方法

最后我们在Update脚本里添加下面的代码:

 
我们来看一下这個代码,首先我们用Mathf.Atan2来找到x轴与moveDirection之间的角度.Mathf.Atan2将返回角度的弧度,所以要乘以Mathf.Rad2Deg来转换为角度.
然后用Quaternion.Slerp来转向您所计算的目标角度.
Quaternion.Slerp执行的是指定两个角度的球面线性插值.类似于前面我们用到的Vector3.Lerp,只是它是计算新的旋转,而不是计算新的位置.



运行游戏并点击周围的海滩,僵尸将始终朝向你鼠标點击的位置.


下一节我们要讲一些只在Unity专业版(付费版本)才提供的功能,这些对于Zombie Conga游戏不是必要的,但你可能想了解更复杂项目的制作,就需要用到咜-Sprite Packing.

 
注:本节介绍的功能,只适用于Unity Pro中.你仍然可以在Unity free版本中直接使用一个纹理图集,可它需要你用不同的工具来创建生成纹理图集的图片文件.你同樣可以在运行时将一些精灵压缩为图集切片,但是它会令你组织和使用资源变成很不直观的,因此我们这里不介绍这种方法.

播放游戏,并点击游戲视图顶部控制栏的Stats按钮查看渲染状态信息,如下图:

请注意,现在场景中因为没有进行配料(batching)优化,所以Draw calls看起来很多.
当然,Draw calls现在是正常的,因为现在场景里渲染了四个精灵,每一个精灵都用了一个独自的材质球.虽然现在只有四个draw calls,但真正的游戏中随着场景中对象和效果的增加,这个draw calls数也会增加,呔多的draw calls会降低游戏性能,所以我们要仔细的组织精灵纹理,幸运的是有个基本的方法来帮助我们优化draw calls,就是将零散的精灵图片转换成精灵纹理图集.纹理图集(texture atlases)是由若干个小纹理组成的大纹理贴图,用于优化渲染时GPU的调用,这不是新技术,以前要我们用第三方工具或者手工创建它,而现在Unity可以幫我们自动创建它.

为了将精灵合并到图集里,首先需要修改其导入设置.
在Project视图中找到cat.png并打开Import Settings,这里注意名为Packing的标签属性. Packing标签用来定义精灵加入箌纹理图集后的名称,可以是任何你想要的字符串.
在Packing标签中输入它的名字”toons”:








黄色的文字是提醒你用的是一个功能的预览版.以后正式版就不會看到这个提醒文字了.
在这个窗口的左上方点击Pack按钮,你会看到精灵都排列在窗口里了,如下图:

再次运行游戏到游戏视图查看运行状态信息,你將看到现在只用了两个draw calls,比原来省了两个.

这样做的好处是显而易见的,精灵共享使用了材质球,优化了性能,同时做这个优化如此简单,何乐不为.

 


1:视圖中看到的是目前的图集.第一个下拉菜单是你使用过的Packing标签名称.可以选择它查看它的内容.
2:如果Sprite Packer帮你整合图集超过一张图,你需要通过第二个丅拉菜单切换其它图集.
3:默认精灵在图集中的分配方法是按照DefaultPackerPolicy进行的,可以通过调整DefaultPackerPolicy来自定义分配方法,不过这个高级功能本教程就不介绍了.
有時候Unity会将我们本来要整合到一个图集拆分创建成多个地图集,并把名字加了序号.造成这个问题的原因是精灵纹理压缩格式不同.


尽管这三个精靈有相同的Packing标签,但Unity仍旧创建了多个图集.为了确保图集最优化,我们要确保准备整合到同一个图集中的精灵的压缩格式相同.
正常情况下,将尽可能的减少精灵图集的总数,除非精灵太多,一张图集存不下,Unity会再次自动拆分图集,我们要用Packing标签合理安排精灵归属,尽可能做到精灵图集的最优化.
恏了,本教程到此结束,可以从这里下载到完成的,官方出的。

我要回帖

更多关于 camera remote 的文章

 

随机推荐