Unity2D平台开发
##1、2D游戏对象
++1.1、Unity2D系统简介
++++Unity4.3以前的版本在制作2D游戏时都是使用2D游戏插件来制作,像:2DToolKit,Uni2D等,在4.3以后的版本中,Unity发布了内置的2D游戏制作功能:2DSprite。
++++Unity2D核心模块包括: Sprite的创建,2D动画的制作和2D物理组件的使用。
++1.2、Sprite精灵
++++2D游戏的图像部分主要是图片的处理,图片通常称为Sprite精灵;
++++为了提高效率2D游戏会将不同的图片拼接成一张大图,在游戏运行的时候,再将这张大图中的某一部分读出来作为Sprite显示在屏幕上。
++1.3、精灵创建的两种方式
++++1、将不同的图片在图像软件中拼接为一张大图,导入到Unity中使用SpriteEditor工具将大图分割成若干个Sprite使用;
++++2、直接将原始图片导入Unity中,使用Unity提供的SpritePacker工具将导入的图片打包,再从中读取Sprite使用。
++1.4、SpriteEditor创建精灵
++++1、导入一张图片到Unity中。
++++2、将Texture Type设置成Sprite(2D and UI); Sprite Mode设置为Multiple,可以将大图分割成若干小图。
--Texture Type :设置纹理图片类型;
--Sprite Mode :设置精灵的模式;
++++3、点击SpriteEditor打开编辑窗口。
--Name :名字;
--Position :位置及大小;
--Border :用于设置精灵上下左右的边框;
--Pivot :被切割精灵的中心点。
++++4、点击Slice,Type为分割方式,可以设置每个精灵大小的尺寸。
--Automatic :自动计算尺寸;
--Grid By Cell Size :按照被切格子的大小;
--Grid By Cell Count :按照被切格子的数量
++++5、选择合适的切割模式后,对图片操作后如下图,在Assets目录中大图下面会出现分割后的小图片。
++++6、如果剪切不符合要求,可以选择多余的网格,按Delete键删除,然后选中需要放大的网格,在下图所示窗口中更改其尺寸,同时也可以改变该图片的名字。
--Name :被切割精灵图片的名字。
--Position :被切割格子的坐标及大小。
--Border :被切割精灵图片的边框。
--Pivot :被切格子的中心点位置。
++1.5、SpritePacker打包精灵
++++【Edit】=>【Project Settings】=>【Editor】中设置SpritePaker设置成AlwaysEnabled. 默认是Disabled(关闭的)。
--Disabled :该功能不能使用。
--Enabled For Builds :只有在导出游戏时使用。
--Always Enabled :任何情况下使用该功能。
++1.6、精灵使用及打包
++++只需要把图片拖入到场景中即可。
--选中所要打包的图片,设置 Packing Tag,点击Apply;
--然后打开【Window】=>【Sprite Paker】窗口,点击Pack按钮即可。
++1.7、图层排序
++++2D游戏中的图片之间没有深度关系,都处于同一个平面上,但在实际游戏中需要为它们排序,按视觉上的空间先后顺序显示。
--Sorting Layer :点击后可以添加层,也可以为精灵设置层,层越靠下越先显示fish层的精灵。
--Order in Layer :值越大越显示在最前面,可以在脚本中动态的更改,该属性只对同一层中的不同精灵起作用。
##2、2D物理组件
++2.1、2D物理引擎
++++2D物理引擎与3D物理引擎在功能上基本相似,当我们给精灵添加刚体后,它就会受2D物理引擎的控制。
++++点击Component => Physics 2D就可以添加2D刚体和碰撞器组件等。
++2、Rigidbody2D组件
++3、2D碰撞器组件
++++2D碰撞器组件与3D碰撞器作用一样,专门用于检测是否发生碰撞。
++4、2D碰撞和触发回调方法
++++OnCollisionEnter2D(Collision2D other) :刚进行碰撞时调用
++++OnCollisionStay2D(Collision2D other) :一直保持碰撞时调用
++++OnCollisionExit2D(Collision2D other) :碰撞结束时调用
++++OnTriggerEnter2D(Collider2D other) :刚触发时调用
++++OnTriggerStay2D(Collider2D other) :保持触发状态时调用
++++OnTriggerExit2D(Collider2D other) :触发结束时调用
##3、2D开发常用类
++++Rigidbody2D :2D刚体
++++Collider2D :2D碰撞器
++++Joint2D :2D链条
++++Collision2D :2D碰撞信息
##4、2D动画创建
++4.1、2D动画创建
++++Sprite 有两种类型--一种是单张的图片,通常用作背景或者单个元素,
--另一种是可以形成序列的sprite,用来创建序列帧动画。
++++层次视图: 选中要创建动画的所有图片拖到层次视图中,运行后在场景中产生动画。
++++在Assets中产生了动画和动画控制器,在层次视图中自动生成精灵,并且带有动画控制器组件。
++4.2、2D动画编辑
++++选中要创建动画的对象再按Ctrl+6打开Animation编辑窗口。
--点击【Add Property】后可以添加属性,如果要更改动画中某一帧的位置、旋转和缩放,只需要点击后面的+ 号即可。
++++选中要改变位置的关键帧后,可以在此位置输入值,此时Animation会自动记录任何改动,点击预览可以察看修改后的动画。
++++在Animation编辑窗口中,在关键帧处点击右键,添加事件,此时可以选择其脚本中的方法,当动画执行到该关键帧时,该方法就会被调用。
##5、GUI
++5.1、GUI简介
++++在游戏制作中,游戏界面元素是不可或缺的一部分,Unity提供了完善的GUI界面元素,创建时只需要输入简单的代码即可完成;
++++所有的GUI界面元素都是在OnGUI方法中来实现的;
++++GUI界面元素布局分为自动布局和自定义布局;
++5.2、GUI自动布局
++++自动布局的类为GUILayout,其创建的GUI元素位置由系统进行自动布局,不能进行人为修改;
++++示例:
void OnGUI(){
if(GUILayout.Button(“Button”)){
Debug.Log(“buttton”);
}
}
++5.3、GUI自动布局类方法
++++Label :创建一个自动布局的标签
++++Button :创建一个自动布局的按钮
++++Box :创建一个自动布局的Box
++++Toggle :创建一个自动布局的开关
++++HorizontalSlider :创建一个水平滑动条
++++VerticalSlider :创建一个垂直滑动条
++++Toolbar :创建一个工具栏
++5.4、GUI自定义布局
++++自定义布局的类为GUI,其创建的GUI元素位置和大小都可以由代码来控制;
++++示例:
void OnGUI(){
if(GUI.Button(new Rect(10,10,100,50),“Button”)){
Debug.Log(“GUI button”);
}
}
++5.5、GUI自定义布局类方法
++++Button :创建按钮,点击执行按钮事件,只执行一次。
++++RepeatButton :鼠标点击不松开,会一直执行按钮事件。
++++TextArea :创建多行文本区域,编辑字符。
++++SelectionGrid :创建按钮网格。
++++BeginScrollView :滚动视图的开始。
++++EndScrollView :滚动视图的结束,要与Begin成对出现。
++++Window :创建一个弹出窗口。
#立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/
++立钻哥哥推荐的拓展学习链接(Link_Url):
++++立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/
++++Unity引擎基础:https://blog.csdn.net/vrunsoftyanlz/article/details/78881685
++++Unity面向组件开发:https://blog.csdn.net/vrunsoftyanlz/article/details/78881752
++++Unity物理系统:https://blog.csdn.net/vrunsoftyanlz/article/details/78881879
++++Unity2D平台开发:https://blog.csdn.net/vrunsoftyanlz/article/details/78882034
++++UGUI基础:https://blog.csdn.net/vrunsoftyanlz/article/details/78884693
++++UGUI进阶:https://blog.csdn.net/vrunsoftyanlz/article/details/78884882
++++UGUI综合:https://blog.csdn.net/vrunsoftyanlz/article/details/78885013
++++Unity动画系统基础:https://blog.csdn.net/vrunsoftyanlz/article/details/78886068
++++Unity动画系统进阶:https://blog.csdn.net/vrunsoftyanlz/article/details/78886198
++++Navigation导航系统:https://blog.csdn.net/vrunsoftyanlz/article/details/78886281
++++Unity特效渲染:https://blog.csdn.net/vrunsoftyanlz/article/details/78886403
++++Unity数据存储:https://blog.csdn.net/vrunsoftyanlz/article/details/79251273
++++Unity中Sqlite数据库:https://blog.csdn.net/vrunsoftyanlz/article/details/79254162
++++WWW类和协程:https://blog.csdn.net/vrunsoftyanlz/article/details/79254559
++++Unity网络:https://blog.csdn.net/vrunsoftyanlz/article/details/79254902
++++C#事件:https://blog.csdn.net/vrunsoftyanlz/article/details/78631267
++++C#委托:https://blog.csdn.net/vrunsoftyanlz/article/details/78631183
++++C#集合:https://blog.csdn.net/vrunsoftyanlz/article/details/78631175
++++C#泛型:https://blog.csdn.net/vrunsoftyanlz/article/details/78631141
++++C#接口:https://blog.csdn.net/vrunsoftyanlz/article/details/78631122
++++C#静态类:https://blog.csdn.net/vrunsoftyanlz/article/details/78630979
++++C#中System.String类:https://blog.csdn.net/vrunsoftyanlz/article/details/78630945
++++C#数据类型:https://blog.csdn.net/vrunsoftyanlz/article/details/78630913
++++Unity3D默认的快捷键:https://blog.csdn.net/vrunsoftyanlz/article/details/78630838
++++游戏相关缩写:https://blog.csdn.net/vrunsoftyanlz/article/details/78630687
++++设计模式简单整理:https://blog.csdn.net/vrunsoftyanlz/article/details/79839641
++++U3D小项目参考:https://blog.csdn.net/vrunsoftyanlz/article/details/80141811
++++UML类图:https://blog.csdn.net/vrunsoftyanlz/article/details/80289461
++++Unity知识点0001:https://blog.csdn.net/vrunsoftyanlz/article/details/80302012
++++U3D_Shader编程(第一篇:快速入门篇):https://blog.csdn.net/vrunsoftyanlz/article/details/80372071
++++U3D_Shader编程(第二篇:基础夯实篇):https://blog.csdn.net/vrunsoftyanlz/article/details/80372628
++++立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/
--_--VRunSoft : lovezuanzuan--_--