04 2016 档案
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-27 一、简介 可以通过编辑器窗口 (Editor Windows) 创建自己在 Unity 中的自定义设计工具。来自EditorWindow (而非 MonoBehaviour )的脚本可以影响 GUI/GUILayout 和 EditorGUI/EditorGUILayout 控件。或者,你可以使用自定义检视器 (Custom I...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-27 一、简介 有很多种方法可以补充和扩展 UnityGUI 以满足您的需求。你可以混合和创建控件,并且可以有多种方法来规定用户 GUI 输入的处理方法。 二、复合控件 GUI 中可能会出现各种情况,但总是同时出现两种类型的控件。例如,你可能会使用水平滑块创建通过角色控制的屏幕(Character Creation)。此时,所有这些滑...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-27 一、简介 在Unity 5.x中,GUI控件的布局方式有两种。 一种为固定布局,即在绘制控件的时候将位置参数传入,指定控件的精确位置。另一种是自动布局,适用于控件数量动态改变的情况。或者说,当你已经有了一个预先设计好的界面可以用来
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-27 一、自定义GUI Control 功能控件 (Functional Control) 是游戏必要的,而这些控件的外观对游戏的美感非常重要。在 UnityGUI 中,可以微调控件 (Control) 外观的很多细节。 默认情况下,当你在未定义 GUIStyle 时创建一个控件 (Control),将应用 Unity 的默认 GUI...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-27 一、简介 Unity 5.x内置了—套完整的GUI系统,提供了从布局、控件到皮肤的—整套GUI解决方案,因此可直接利用它做出各种风格和样式的GUI界面,并且扩展性很强(程序员可以基于已有的控件创建出适合自己需求的控件)。 有两种使用GUI的办法,一种是直接将UI添加到层次视图或者场景视图中,然后通过GUI脚本去控制它;另一种是直...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-27 一、简介 前面的章节中实际上已经多次使用了GUI,只不过用法都比较简单,这一章系统地介绍Unity 5.x自带的GUI(称为UnityGUI)开发相关的知识。 二、本章要点 对于Unity的早期版本来说,由于其自身提供的GUI设计功能较弱,所以一般还需要借助其他GUI插件(例如:NGUI)来实现。但是,对于Unity 5.x来说...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-21 一、简介 在Unity中可以创建自定义的虚拟按键,然后将设备的输入映射到自定义的按键上。使用虚拟按键的好处是可以让游戏玩家自己定义按键,满足个性化的操作习惯。 创建虚拟按键的方法是依次打开菜单栏中的【Edit】->【Project Setting】->【Input】项,在Inspector视图中会显示当前的虚拟按键列表和参数。 ...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-21 一、简介 在iOS和Android系统中,操作都是通过触摸来完成的。Input类中对触摸操作的方法或变量如下图所示: 通过GetTouch或者touches可以访问移动没备的触摸数据,数据保存在Touch的结构体中。下图是Touch的结构体变量: 二、基本用法示例 1、示例1(遍历所有Touch并输出Touch的信息) ...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-21 一、简介 Unity可以处理摇杆、游戏手柄、方向盘等标准游戏外设的输入,使用的方法如下图所示: 虚拟按键需要在输入管理器中配置,把外设的输入消息映射给虚拟按键或输入轴以后,就可以在脚本中使用了。 Unity默认为用户创建了若干已经映射了摇杆按钮的虚拟按键,包括Fire1、Fire2、Fire3、Jump以及虚拟轴Horizo...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-21 一、简介 键盘事件也是桌面系统中的基本输入事件。和键盘有关的输入事件有按键按下、按键释放、按键长按,Input类中可以通过下图所示的方法来处理: 上面的方法通过传入按键名称字符串或者按键编码KeyCode指定要判断的按键。 下图所示是常用按键的按键名与KeyCode编码,供读者参考,完整的按键编码请查阅Unity用户手册。 ...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-21 一、简介 在桌面系统的游戏中,鼠标输入是最基本的输入方式之一。游戏很多操作都需要鼠标来完成,例如武器的瞄准和开火、菜单的单击、物体的拾取等。 鼠标输入的相关事件包括鼠标移动、按键的单击等。 Input类中和鼠标输入有关的方法和变量如下图所示: 在Unity中,鼠标位置用屏幕的像素坐标表示,屏幕左下角为坐标原点(0,0),右上...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-21 一、简介 在Input类中,Key与物理按键对应,例如键盘、鼠标、摇杆上的按键,其映射关系无法改变,程序员可以通过按键名称或者按键编码KeyCode来获得其输入状态。例如,CetKeyDown(KeyCode.A)会在按A键时返回true。 下面是Input类的成员变量: 下面是Input类的成员函数: 二、输入轴(Ax...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-21 一、简介 Unity提供了—个非常易用和强大的用于处理输入信息的类:Input,利用该类可以处理鼠标、键盘、摇杆/方向盘/手柄等游戏外设,也可以处理iOS/Androd等移动设备的触摸输入信息。 程序员通过编写脚本接收输入信息,完成与用户的交互。 编写处理输入的脚本时,需要注意Unity所有输入信息的更新是在Update方法中完...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-20 一、简介 Unity中的天空盒实际上是一种使用了特殊类型Shader的材质,这种类型的材质可以笼罩在整个游戏场景之外,并根据材质中指定的纹理模拟出类似远景、天空等效果,使游戏场景看起来更完整。 二、搜集天空盒并打包 由于不同的场景使用的天空盒可能不同,因此,作为游戏开发人员,平时你可以注意搜集一些常见的天空盒并将其导出到一个sk...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-20 一、简介 在虚拟的游戏世界中,与3D有关的数学知识决定了游戏引擎如何计算和模拟出开发者以及玩家看到的每一帧画面。学习或者回想一下基础的3D有关的数学知识,可以帮助开发者对游戏引擎产生更深刻的了解。 二、坐标系 在游戏开发中,经常会用到不同的坐标系来描述空间中的位置,常用的坐标系有: 1、世界坐标系(World) 用于描述游戏场景...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-20 一、简介 这一张主要介绍3D坐标系的基础知识以及各种形状的天空盒。 二、示例 本章的示例都在ch05Demos工程下。
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-20 一、四元数的概念 四元数包含一个标量分量和—个三维向量分量,四元数Q可以记作: Q=[w,(x,y,z)] 在3D数学中使用单位四元数来表示旋转,对于三维空间中旋转轴为n,旋转角度为a的旋转,如果用四元数表示,四个分量分别为: w=cos(a/2) x=sin(a/2)cos(bx) y=sin(a/2)cos(by) z=si...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-20 一、简介 在虚拟的游戏世界中,与3D有关的数学知识决定了游戏引擎如何计算和模拟出开发者以及玩家看到的每一帧画面。学习或者回想一下基础的3D有关的数学知识,可以帮助开发者对游戏引擎产生更深刻的了解。 二、向量 在数学中向量的定义是:既有大小又有方向的量叫作向量。在空间中,向量可以用一段有方向的线段来表示。 向量在游戏开发过程中的应...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-20 一、简介 Unity引擎提供的Random类可以用来生成随机数、随机点或旋转角度。 1、成员变量 seed:设置用于随机数生成器的种子。 value:返回一个随机数,在0.0(包括)~1.0(包括)之间。(只读) insideUnitSphere:返回半径为1的球体内的一个随机点。(只读) insideUnitCircle:返回...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-20 一、Time类 Unity引擎提供的Time类可获取和时间有关的信息、计算帧速率、调整时间流逝速度等。 1、成员变量 2、示例 (1)在Assets下创建一个“6.5”子文件夹。 (2)在6.5子文件夹下创建一个文件名为Scene5.unity的场景。 (3)在6.5子文件夹下创建一个文件名为Demo5.cs的脚本。 (...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-20 一、简介 Unity引擎提供了丰富的组件和类库,为游戏开发提供了非常大的便利,熟练掌握和使用这些API,对于游戏开发的效率提高很重要。 这一节我们主要学习Transform的基本用法。本节例子的运行效果如下: 二、Transform组件 场景中的每一个物体都有一个Transform。 Transform组件决定了游戏对象的位...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-16 一、简介 在游戏开发过程中,脚本不但需要访问脚本所在的游戏对象的组件,还经常需要访问和控制真他游戏对象。另外,根据项目需求,还可能需要通过脚本创建对象。 本节示例的最终运行效果如下: 二、查找场景中的游戏对象 在Unity脚本中,开发人员可以通过下面量的方式来访问游戏对象。 1、通过名称字符串来查找 使用函数GameObje...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-16 一、简介 这一节先利用GUI显示一个简单的界面(以后还会专门介绍GUI),并解释如何在VS2015中调试C#脚本。 本节例子的运行效果如下: 二、调试C#脚本的方式 有以下方式: (1)利用断点调试。断点设置和取消的办法与在控制台应用程序中利用断点调试C#代码的办法相同。 (2)通过Debug类提供的方法在后台输出调试信息。...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-16 一、简介 1、常用的C#数据类型 这里简单介绍用Unity开发游戏时,最常用的一些数据类型。 (1)基本类型 int、float、string、bool (2)数组 public string[ ] familyMembers = new string[ ]{"Greg", "Kate", "Adam", "Mia"} ; pu...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-16 一、简介 游戏吸引人的地方在于它的可交互性。如果游戏没有交互,场景做得再美观和精致,也难以称其为游戏。 在Unity中,游戏交互通过脚本编程来实现。脚本可以理解为附加在游戏对象上的用于定义游戏对象行为的指令代码。通过脚本,开发者可以控制每一个游戏对象的创建、销毁以及对象在各种情况下的行为,进而实现预期的交互效果。 在Unity中...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-11 一、简介 摄像机(Camera)是为玩家捕捉并展示世界的一种设备。场景中至少需要有一台摄像机,也可以在一个场景中使用多台摄像机。这些摄像机可以设置为在屏幕的任何位置或只在某些部分按任何顺序进行渲染。 要将游戏呈现给玩家,相机是必不可少的。可以对相机进行自定义、脚本化或父子化,从而实现可以想到的任何效果。在拼图游戏中,可以让相机 ...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-11 一、简介 灯光(Light,也叫光源)是每一个场景的重要组成部分,用于照亮场景和对象,从而让游戏具有自己的个性和风格,比如利用灯光可模拟太阳、燃烧的火柴光、手电筒、炮火或爆炸等。 网格模型和材质纹理决定了场景的形状和质感。灯光则决定了场景环境的明暗、色彩和氛围。每个场景中可以使用—个以上的灯光,合理地使用灯光可以创造完美的视觉效...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-11 一、简介 在地形编辑器一节中,已经告诉了你如何使用已经创建好的树来形成大片树林。这一节告诉你在 Unity 5.3.4中如何利用【树木创建器】一步一步地创建一棵树: 当你学会了创建树的基本操作后,你就可以根据自己的需要创建任意形状的树了: 二、导入Unity自带的Environment组件 如果你原来没有导入Unity自...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-10 一、简介 设计完毕基本的场景后,一般都需要先运行看看效果如何,即先让场景“动起来”,以方便观察不同的位置,而不是仅仅观察固定摄像机位置的死板板的场景。 这就是角色控制器的功能(实际上还不仅仅是只有这些功能)。 Unity已经帮你设计好了角色控制器组件(Characters),你只需要导入它,然后就可以直接使用了。 二、...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-10 一、简介 Unity拥有功能完善的地形编辑器,支持以笔刷绘制的方式实时雕刻出山脉、峡谷、平原、高地等地形。Unity地形编辑器同时提供了实时绘制地表材质纹理、树木种植、大面枳草地布置等功能。值得—提的是,Unity中的地形编辑器支持LOD(Level of Detail)功能,能够根据摄像机与地形的距离以及地形起伏程度调整地形块...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-06 一、简介 Unity自带的资源包也称为标准资源包。换言之,Unity自带的所有标准资源包导入到Unity项目中以后,都会放在Project视图的Standard Assets文件夹下。如果是多平台,除了Standard Asset
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-05 一、简介 组件(Component)在Unity游戏开发工作中非常重要,可以说是实现一切功能所必需的。 1、游戏对象(Game Object) 游戏对象(Game Object)包括空物体、基本几何体、外部导入的模型、摄像机、GUI、粒子、灯光、树木等各类元素。 凡是出现在层次视图中的元素都是游戏对象。 2、组件(Compone...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-05 一、简介 上一章我们学习了如何利用长方体(Cube)制作基本的3D模型,以及如何导入各种资源,本章将在此基础上,分别制作路面、跳板、树、灯光、水面、火光、……等,从而构建一个完整的游戏场景,最后再使用第1人称视图在场景中走一趟,看看各处展现的效果。 二、本章示例运行效果 本章的所有例子都在ch04Demos工程中。
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-05 一、简介 Unity支持的图像文件格式非常多,包括TIF、PSD、TCA、JPC、PNG、GlF、BMP、IFF、PICT、DDS等。 另外,Unity还支持用Photoshop制作的包含多个图层的PSD格式的图片。PSD格式图片这图层导入Unity之后会自动合并显示,而且该操作还不会破坏PSD源文件的结构。 二、图片格式及尺寸...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-05 一、简介 音频文件 (Audio File) 资源的选择原则应该以无故障地流畅运行为宗旨。下面列出了常用的音频文件。 .AIFF 在导入时转换为未压缩的音频,最适合短音效。 .WAV 在导入时转换为未压缩的音频,最适合短音效。 .MP3 在导入时转换为 Ogg Vorbis,最适合较长的音乐曲目。 .OGG 压缩的音频格式,最适...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-05 一、简介 这一节我们用一个带有“装子弹和上膛”动画的“枪”模型,介绍在3ds Max 2015中编辑它并将其导入到Unity中的过程。 本节示例介绍的gun模型可在《Unity 4.x从入门到精通》附带的资源中找到,自己从网上搜索吧。 二、导出gun.max模型为FBX格式 1、在3ds Max 2015中打开gun.max 在...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-05 一、常用三维软件简介 由于游戏引擎本身的建模功能相对较弱,无论是专业性还是自由度都无法同专业的三维软件相比,所以大多数游戏中的模型、动画等资源都是通过专业的三维软件来制作的,制作完成后再将其导入到Unity中使用就行了。 Unity支持几乎所有主流的三维文件格式,例如.FBX、.dae、3Ds、.dxf、.obj等。其中,最常用...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-02 一、简介 预制体(Prefab,也叫预设)是“存储在工程视图(Project View)中”的一种特殊的资源,是一种可重复使用的游戏对象(GameObject)的容器。 如果在Project中有多个预制体(Prefab),为了容易查找,可将这些预制体全部保存到Project视图中Assets文件夹的Prefabs子文件夹下。 P...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-02 一、基本概念 Unity已经内置了一些基本的3D对象,利用这些内置的3D对象就可以直接构建出各种3D模型(当然,复杂的三维模型还需要借助专业建模软件来完成)。 Unity 5.3.4内置的3D对象有: Cube:立方体 Spher
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-04-02 一、简介 利用Unity内置的基本模型和工具,不需要借助任何其他的三维建模软件,就可以直接创建出各种3D模型,这是这一章我们首先学习的内容。 当你学会了基本操作技巧后,再进一步利用(3ds Max、Maya、Blender等)专业
阅读全文