随笔分类 - Unity3D
介绍用C#和VS2015开发基于Unity架构的2D、3D游戏的技术。
摘要:分类:Unity、C#、VS2015 创建日期:2016-05-02 一、简介 Mecanim 动画系统 (Mecanim Animation System) 特别适合使用类人骨架动画。由于类人骨架非常普遍并在游戏中广泛应用,因此Unity 针对类人动画专门提供了专业的工作流程和扩展工具集。 本节主要介绍为模型创建 Avatar 的基本步骤。包括: (1)创建Avatar。 (2)配置Avatar...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-05-02 一、简介 使用类人动画时,Mecanim 的强大之处最明显。但是,尽管没有 Avatar 系统和其他功能,非类人动画也仍然受Mecanim的支持。 在 Mecanim 术语中,将非类人动画称为通用动画 (Generic Animations)。 二、添加通用动画的基本步骤 要使用通用动画,转到 FBX 导入器装置 (Rig) 选...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-05-02 一、制作或购买类人模型 为了充分使用 Mecanim 类人动画系统和类人动画的动画重定位功能,需要先使用其他3D建模软件(例如3ds Max 2015),制作一个搭好了骨架和蒙皮的类人网格模型。 1、什么是类人模型 类人模型也叫类人网格模型,它通常由一组多边形或者三角形网格来组成。 创建类人模型的过程称为建模。 在上面这个图...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-05-02 一、简介 Unity提供了两种动画系统:一种是早期版本提供的旧版(Legacy)动画系统,旧版本(Legacy)以后将逐步被淘汰掉并在新版中不再支持。另一种是Mecanim动画系统,这是建议使用的新版动画系统。 如果你是初学者,就不要去学旧版(Legacy)动画了,直接学习Mecanim动画系统即可。 二、什么是Mecanim动...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-05-02 一、简介 上一节已经介绍过了在Unity 5.x中两种创建粒子效果的方式(方式1、方式2)。 这一节我们主要学习第2种方式的基本概念和用法。 Unity 5.x提供的新版粒子系统生成器(Particle System)也叫Shuriken粒子系统,该生成器采用模块化管理,个性化的粒子模块,配台粒子曲线编辑器,使用户很容易就能创作...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-05-02 一、简介 粒子系统是作为组件附加到游戏对象上的,有两种添加办法。 二、方式1--添加已制作好的预制体 第1种方式是直接添加已经制作好的预制体。办法是: 1、添加游戏对象 单击菜单栏中的【GameObject】-->【Creat Empty】选项,创建一个空对象,然后将该对象换名为一个有意义的名称,比如:Particles。 2、...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-05-02 一、简介 Unity 5.x已经自带了粒子系统组件,新建工程后只需要直接导入它就可以使用了。 二、导入Unity自带的粒子系统组件 新建一个工程名为ch09Demos的Unity工程,鼠标右击工程视图下的Assets,选择【Import Package】->【ParticleSystems】: 在弹出的窗口中,默认已经全部选...
阅读全文
摘要:分类:Unity、C#、VS2015 创建日期:2016-05-02 一、简介 粒子是在三维空间中渲染出来的二维图像,主要用于在场景中表现如烟、火、水滴、落叶、……等各种效果。 Unity粒子系统 (Particle System) 的一个重要特征是,独立的粒子系统可以通过父子化到相同的根来分组,其中的所有粒子都具有自己的粒子效果 (Particle Effect),但粒子系统中的这些粒子可以一起...
阅读全文
摘要:分类: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...
阅读全文