搜档网
当前位置:搜档网 › Unity3D游戏开发菜鸟快速上手指南

Unity3D游戏开发菜鸟快速上手指南

Unity3D游戏开发菜鸟快速上手指南
Unity3D游戏开发菜鸟快速上手指南

大家对Unity3D游戏引擎应该并不陌生,因为Unity3D在轻量级游戏开发和跨平台上面有他独特的优势,所以在当前可谓是炙手可热。17xuee游戏学院简单介绍了Unity3D的一些基础。并且有部分内容根据天天飞车项目经验做了简单分析。适合没有接触过Unity3D和手游开发,并想了解其大概的同学。

1Unity3D简介

1.1编辑器简介

编辑器整体视图如图1.1所示。里面包括了Unity常用的编辑窗口:

图1.1 Unity编辑器界面

Project视图、Hierarchy视图、Scene视图、Game视图、Inspector视图、Console视图、Profiler视图。

1.1.1Project视图

Project视图可以理解为工程目录,里面罗列了工程里面的所有资源文件。常见的资源包括:脚本、预设(Prefab)、模型、贴图、动画、Shader等。用户可以通过右上角的搜索框,搜索工程内的文件。

1.1.2Hierarchy视图

Hierarchy视图显示了当前游戏场景中,所有的游戏对象。游戏对象是通过树形结构排布,展开后可以看到每个子节点对象。常用的游戏对象包括:摄像机、场景物件、玩家、光源等。

1.1.3Game视图

Game视图是游戏视角,即游戏最终展示给玩家的内容。游戏视角包括两部分:1、场景中当前摄像机照射的场景;2、游戏UI界面。

1.1.4Scene视图

Scene视图有点像3DMax的编辑环境,在这里可以看到当前场景中的所有游戏对象。双击Hierarchy中的游戏对象,可以在Scene中定位到对应的物件。在游戏运行期间,暂停游戏。开发人员可以在Scene中找到对应的游戏对象,查看当前帧的世界场景,方便查找BUG。

1.1.5Inspector视图

Inspector视图是游戏对象的属性面板。选择一个物件后,可以在Inspector面板中查看或编辑游戏对象的属性。游戏运行期间,修改游戏对象属性,可以马上作用到游戏对象。这一特点对于美术的编辑、程序查BUG或者策划调整游戏参数有很大帮助。

Unity的游戏对象是通过Component(组件)控制的。常见的Component有:Transform(模型坐标)、Collider(碰撞检测器)、Rigidbody(刚体属性)、Animation(动画)、AudioSource (声音源)、Script(游戏脚本)等。

1.1.6Console视图

Console视图是控制台信息输出窗口。输出的信息包括:游戏脚本编译错误信息、游戏运行期间的日志输出、断言、崩溃信息。

1.1.7Profiler视图

Profiler视图是游戏性能分析器。游戏运行期间,每一帧的数据都被记录,并显示在Profiler窗口。在时间轴上,最多可以保存几百帧的数据,点击一个特定的帧上,窗口下面会显示该帧的游戏运行细节,包括CPU使用率、GPU使用率、渲染、内存、音频、物理。

1.2打包与发布

在Unity编辑器中,选择“File -> Build Settings”可以打开游戏打包发布面板。在此面板中,可以选择打包的游戏场景、发布平台以及游戏设置。Unity支持跨平台,所以在这里可以有多种平台选择。打包后的文件格式有:*.swf、*.exe、*.apk、Xcode工程等。

1.3脚本组件

Unity游戏开发中,游戏脚本在游戏开发中是关键要素,游戏的逻辑控制都是由脚本来控制的。Unity支持3种游戏脚本语言:C#、JavaScript和Boo。这三种语言中,C#因为最接近C++更符合大部分程序员编程习惯,所以使用的比较广。而JavaScript就比较容易上手属于入门级别,Boo的使用人数则是最少的。

游戏脚本(类)继承自MonoBehaviour后,该脚本即可以作为一个游戏组件挂到游戏对象上。继承MonoBehaviour后,提供大部分系统控制的脚本函数。下面列了一些常用的函数的执行顺序:

不同游戏脚本之间的执行顺序,可以通过调整游戏脚本优先级来修改。(打开调整面板方式:选择某个脚本文件,在Inspector面板,点击右上角的Execution Order按钮。)

1.4场景切换与数据传递

在打包发布面板,我们可以选择需要包含的游戏场景。在游戏过程中,我们需要切换场景,可以调用Application.LoadLevel()函数。

切换场景的时候,默认会把场景中的物件清空。如果需要把数据从不同场景中传递成问题了。常用的方法有两种:

1、静态数据变量。静态数据变量可以用来桥接不同脚本之间的数据交换。当然也可以作为不同场景之间的数据传递。当然过多的静态变量,对于其管理也是个比较麻烦的问题。

2、利用函数DontDestroynoxss()指定某些物件不随着场景的切换而移除。定义一个长期存在的节点,其实挺方便的。可以把游戏的主框架搭建放在这个节点的脚本控件上,这个脚本就有点像GameMain函数,里面可以定义单件管理器,方便管理游戏数据和流程。

1.5GUI

Unity提供一套自带的GUI系统,但是这套GUI系统实在是太难用了。几乎没有游戏会使用这个原生GUI系统的,也因此催生了很多UI插件。市面上成功用Unity开发的游戏,都是使用UI插件的。最常见的UI插件有:NGUI 和EZGUI。天天飞车采用的是NGUI,所以本文简单介绍一下NGUI。

1.5.1原生GUI系统

原生GUI系统的运行效率低,而且UI需要由程序调整控制,生产效率极低。

下面,我们看一个Unity官网提供的一个用GUI系统的例子。如图1.2,我们需要绘制两个按钮,点击按钮对应输出一个提示语句。代码1是官方给出的代码程序。

可见如果需要调整按钮位置,修改按钮的外观,可能需要修改程序脚本。如果UI较少尚且可以这样做。但是如果游戏UI复杂度较高,这个UI维护成本就非常高了。

图1.2 GUI例图

1.//代码 1:

2.// C#

https://www.sodocs.net/doc/1c16066466.html,ing UnityEngine;

https://www.sodocs.net/doc/1c16066466.html,ing System.Collections;

5.public class GUITest : MonoBehaviour

6.{

7.public Texture2D icon;

8.void OnGUI ()

9.{

10.GUI.Box (new Rect (10,10,100,50), new GUIContent("This is text", icon));

11.}

12.}

1.5.2NGUI

NGUI使用树形结构组织游戏UI。并且使用了Unity定义的元素拼接UI界面。可以在不运行游戏的情况下编辑和查看UI面板。让美术和程序工作分离:美术可以把UI拼接好,做成一个Prefab提供给程序控制逻辑。如图1.3是NGUI编辑的天天飞车单局UI。我们可以直接在Scen视图中查看和编辑UI面板。这种结构,既方便美术制作UI动画,

也方便程序查找UI显示上的BUG。

图1.3 NGUI编辑UI界面

1.6Prefabs介绍

Prefabs是一种Unity的资源类型,可以简单理解为一个预先设置好的游戏对象。我们可以把这个游戏对象创建到场景后,其结构和属性都跟我们预设一样的。

我们定义和使用Prefab的原因在于,把场景中动态创建或者需要重复使用的物件,设置成一个Prefab,我们就可以根据需要创建。创建出来的实例跟我们预设是一致的。包括模型结构以及节点的组件属性。

几乎所有的游戏对象都可以设置成一个Prefab,例如,一辆车、一个UI界面、一个武器、一颗子弹…..

Prefabs的制作很简单,我们只需要把游戏对象在Scen中编辑好后,从Hierarchy窗口把该游戏对象拖到Project窗口,改游戏对象就被保持成一个Prefab对象了。

Prefabs的实例化也很方便:

加载:GameObject goTest = Resources.Load(“TestPrefab”) as GameObject;

克隆:GameObject goTest2 = Instantiate(goTest) as GameObject;

1.7对象池

天天飞车大部分常见的游戏对象都采用对象池来管理。对象池的特点是:

?加载后不释放

?不使用,放到对象池

?下次用,直接从池子里取

?定义最大的分配数量,控制内存

对于同一个对象,使用完成后放到指定的空节点,并且Deactive。下次使用的时候,直接从改池子里面取。池子中的对象列表为空时,允许克隆新的对象,放到池子。对于某个对象,定义一个最大的分配数量,控制内存。

图1.4 对象池处理流程图

使用对象池最大的好处就是减少了资源加载时间。当然,它同时带来了内存消耗的增加。根据游戏对象的特性,合理的设定其对象池的最大分配数量也是一个关键。可以考虑增加一个算法,把那些长时间不用的内存池释放或者减少分配的对象数量。

2反外挂策略

手机游戏进入运营阶段,对于开发人员来说,最棘手的就是反外挂问题。天天飞车单局中没有协议交互,在游戏运行期间统计游戏数据,游戏结束把数据提交给服务器进行校验。所以,反外挂的难度相对于PC游戏来说是更加大的。

常用的反外挂策略有:

?客户端的关键数据使用安全数据类型。

数据加密有很多种方法,常用的是采用数据影子进行加密。

?数据统计,结算上报统计数据。

单局中没有数据交换的情况下,只能把数据统计放到客户端。关键逻辑采用多数据校验记录,外挂需要同时修改多个变量才能骗过反外挂校验。

?开局数据下发,结算回带。

某些关键数据,在开局的时候,由服务器下发。并且保证游戏过程中和结算上报都使用同一数据。服务器最后对客户端回传的数据与下发的数据进行校验。

?降低外挂在玩家中的声誉。

这算是一种非纯技术反外挂。游戏更新后,预留一些坑,服务器不开对应反外挂策略。当大量玩家购买外挂使用的时候,再打开对应策略,给玩家一定量的处罚。一方面,给玩家造成使用外挂的恐惧。另外一方面,降低了外挂供应商在玩家中的口碑。

最后要注意一点:对于使用Unity3D游戏引擎的项目,继承自MonoBehaviour的变量容易被外挂利用。例如,MonoBehaviour的Enable变量就可以被修改。天天飞车前段时间出现无限隐身的外挂,就是利用了这一点。当玩家进入隐身状态后,把控制隐身的脚本Disable,导致客户端无法统计隐身相关的反外挂信息。

3配置

一个好的游戏,配置无疑是一个关键的因素。便利的配置,可以大大加快游戏开发进度。也可以一定量的减轻程序员的工作。我们在这里讨论一下天天飞车项目使用Unity3D引擎开发的各种配置方式。

在天天飞车项目里,常见的配置方法有以下几种:

?文本文件

?Xml文件

?Excel文件

?Unity场景或者Prefab中配置

天飞的配置获取和更新方式主要有三种:

?版本发布时,打进安装包

?从CDN服务器中拉取最新配置

?服务器通过协议下发给客户端

Unity编辑器里面可以在Inspector面板上填写物件属性。通过Inspector面板,我们可以给场景中的某个物件中的组件进行编辑,编辑后的属性可以直接应用在游戏中。用户可以把Prefab实例化到场景中。暴露Prefab属性给策划,可以让策划方便地快捷的修改参数配置,并且直接重启游戏就可以看到效果。

Prefabs中配置的优点是开发方便,反馈及时。但是,同样也要注意到其维护成本高、需要随着版本更新,以及反外挂困难等特点。下面介绍一个简单的例子:

天天飞车的赛道块配置。游戏研发初期,因为还没有接入服务器,而且要保证开发速度,所以在场景中配置赛道块和NPC车的刷出逻辑数据。但是,随着游戏进入运营阶段,新版本的开发,发现这样的配置方法维护成本高,灵活性低。而且服务器读取不了这部分数据,反外挂不好做。在战车模式版本中,就需要把部分赛道块配置抽离到Excel表格配置了。

4Unity3d 资源加载与内存管理

Unity提供多种加载和释放方式。大部分刚接触Unity的开发人员可能对这个比较难理解。这里引用一篇其他人整理的文章大概介绍一下。

原文出处:https://www.sodocs.net/doc/1c16066466.html,/forum/read.php?tid=4394

资源加载:

l AssetBundle.CreateFrom和WWW.AssetBundle

创建一个AssetBundle内存镜像

l AssetBundle.Load和Resources.Load

从AssetBundle读取一个指定名称的Asset并生成Asset内存对象。如果多次Load同名对象,除第一次外都只会返回已经生成的Asset对象,也就是说多次Load一个Asset并不会生成多个副本。

l Instantiate

Clone一个object的完整结构,包括其所有Component和子物体(详见官方文档),浅Copy,并不复制所有引用类型。

资源释放:

l Destroy

主要用于销毁克隆对象,也可以用于场景内的静态物体,不会自动释放该对象的所有引用。l AssetBundle.Unload(false)

释放AssetBundle文件内存镜像

l AssetBundle.Unload(true)

释放AssetBundle文件内存镜像同时销毁所有已经Load的Assets内存对象

l Reources.UnloadAsset(Object)

显式的释放已加载的Asset对象,只能卸载磁盘文件加载的Asset对象

l Resources.UnloadUnusedAssets

用于释放所有没有引用的Asset对象

l GC.Collect()

强制垃圾收集器立即释放内存Unity的GC功能不算好,没把握的时候就强制调用一下

图4.1内存加载与释放

5总结

本文可能有部分内容理解不够深入,介绍不够完全,欢迎大家一起来探讨。

unity3d学习游戏开发心得

Unity3D 学习游戏开发心得 罗佳 小组排名:黄馨然,罗佳在这将近20天的游戏开发中,第一次一边学习,一边开发游戏,虽然最后做出来的游戏有点差强人意,但是在这整个过程中学到的东西让自己觉得这20天的努力让这一整个学期学到的知识一下子充盈好看了起来。首次开发自己的游戏,是一个较艰难的过程,有时候在一个问题上耗上五六个小时仍无半点进展,那感觉确实让人十分沮丧,同样的,耗上五六个小时解决一个问题时的喜悦之感也是无与伦比的。在这20天的开发过程中,个人感觉比较难的,就是摄像机的处理了,总是无法使场景中的游戏对象,显示在合理的位置,调整摄像机的位置以及角度都非常费时间。 一下是对自己在游戏开发过程中所领悟到的新知识做一个总结: 关于摄影机控制,如果场景中有多架摄影机,那么如何确定第一打开时间所显示的摄影机,就需要设置Camera属性中的Depth数值,数值越大的摄影机越优先显示。 关于材质数量的控制,如果一个物体给与一个材质球,那么Unity3D对于材质数量和贴图数量没有任何的限制。如果一个物体给与多个材质球,我们需要用 Multi/SubObject来实现,但是这种罗列的材质球的数量没有严格的控制,但尽量保持在10以内,过多的数量会导致一些错误。如果不使用Multi/SubObject材质球,也可以选择一些面,然后给与一个材质球。这样系统会自动将其转换成Multi/SubObject材质。综合而言Unity3D软件对于材质的兼容还是很好的。 关于物体的质感,“Diffuse”,“Diffuse Bumped”,“Bumped Specular” 这三种类型为常用类型,其中Bumped需要增加Normal法线贴图来实现凹凸。 Decal 这种材质为贴花材质,即相当于Mask类型,可以再Decal(RGBA)贴与一个带有Alpha 通道的图像,形成和原图像相叠加的效果。 Diffuse Detail 这种材质可以创造出污迹和划痕的效果,即相当于Blend混合材质。 Reflective 其中各种类型可以创造出金属反射效果,需要增加Cubmap贴图。

Unity3D游戏开发作品大盘点

经典重现《新仙剑OL》 《新仙剑OL》采用跨平台Unity3D引擎,耗资数千万,历时三年多,由台湾大宇正版授权,“仙剑之父”姚壮宪监制的全球首款Unity3D航母级双端(网页和客户端)中国风MMORPG网络游戏巨作。主打温情牌并且延续了仙剑系列的国风雅韵,人物塑造细腻唯美,场景构建精致逼真。 《蒸汽之城》(City of Steam) 由国内游戏公司参与开发的Unity3D页游《蒸汽之城》(City of Steam)在北美地区呼声颇高,该作是基于U3D引擎的纯3D角色扮演类网页游戏,它拥有目前市面上少有的360度镜头旋转纯3D画面,能给玩家带来3D客户端游戏体验。该作于不久前在北美开

启内测,反响较好。 角色扮演游戏《推倒Online》 《推倒Online》是一款由Unity3D游戏引擎开发,角色扮演、实时战斗为主,辅以社区交际元素的Q版3D网页游戏,由沈阳坐标科技于2010年11月公司创立之初开始设计研发。游戏以魔族崛起为世界背景,通过魔族勇士穿越封印征战大陆为引,展开剧情!制作宗旨走反传统搞怪路线,或可爱、或憨厚、或个性的美式魔幻卡通风格,简洁而不失质感。游戏以新颖的战斗模式、激烈的空间攻占、多样的生活交际经历为主要玩点,兼顾技能升级、装备合成、人物属性进化、游戏内小游戏等常规玩法的扩展,给玩家带来了全新的游戏盛宴。【狗刨学习网】

ARPG武侠《绝代双骄》 《绝代双骄》是一款纯中国风武侠ARPG即时战斗网页游戏,采用古龙经典小说为背景,3D游戏画面、无职业角色成长、推图式关卡副本、鼠标右键施放轻功、场景自由反馈等特色内容,为玩家带来非同凡响的3D武侠游戏体验。基于Unity3D游戏引擎,该作在武术特效上做了相当大的细节处理,无拘束轻功飞行、酣畅淋漓的打击感、刀刀见血拳拳到肉,都为游戏带来非常好的口碑。该作近期正在封测当中,有兴趣的玩家不妨关注一下。

Unity3D游戏开发之网络游戏服务器架构设计(如何做一名好主程)

Unity3D游戏开发之网络游戏服务器架构设计培训 (如何做一名好主程) 今天给大家讲一下如何做一个好的主程 入手 假如,我现在接手一个新项目,我的身份还是主程序。在下属人员一一到位之前,在和制作人以及主策划充分沟通后,我需要先独自思考以下问题: 1、服务器跑在什么样的操作系统环境下? 2、采用哪几种语言开发?主要是什么? 3、服务器和客户端以什么样的接口通讯? 4、采用哪些第三方的类库? 除了技术背景之外,考虑这些问题的时候一定要充分考虑项目需求和所能拥有的资源。 我觉得,先不要想一组需要几台机器各有什么功能这样的问题,也不要想需要多少个daemon 进程。假设就一台服务器,就一个进程,把所需要的资源往最小了考虑,把架构往最简单的方向想,直到发现,“哦,这么做无法满足策划要求的并发量”,再去修改设计方案。 操作系统:越单一越好。虽然FreeBSD的网络性能更好、虽然Solaris非常稳定,但选什么就是什么,最好别混着来。前端是FreeBSD,后端是Solaris,运营的人会苦死。也不要瞧不起用Windows的人,用Windows照样也能支持一组一万人在线,总之,能满足策划需求,好招程序员,运营成本低是要点。不同的操作系统有不同的特性,如果你真的对它们都很熟悉,那么必定能找到一个理由,一个足够充分的理由让你选择A而不是B而不是C。但做决策的时候要注意不要因小失大。 Programming Language:传统来说,基本都是C/C++。但是你也知道,这东西门槛很高,好的C/C++程序员很难招。用Perl/Python/Lua行不行?当然可以。但是纯脚本也不好,通常来说是混合着来。你要明白哪些是关键部分,我是说执行次数最多的地方而不是说元宝,这些必须用性能高的语言实现(比如C/C++比如Java),其它像节日活动这样很久才执行一次的,随便吧。脚本的好处是,可以快速搭原型。所以,尽早的,在你做完基本的地图和战斗模块之后,立马跑机器人测试吞吐量。这时候项目开发进度还不到10%,不行就赶紧改。 此处特别举个例子就是Java GC的问题。既然你要用java,而jvm需要通过执行garbage collection来回收内存,而garbage collection会使整个应用停顿,那你不妨试一试,内存在达到峰值的时候会停多久?策划可以接受吗?如果不可以,你可以采用其它的GC策略再试一试。这个问题应该不是Java独有的。网游和网站应用相比它很注重流畅性。这是你务必需要考虑的。 至于选择什么样的脚本语言,以及脚本在你的游戏中究竟是占80%还是20%?需要根据需求来看。有没有游戏完全不用脚本?有。有没有游戏滥用脚本?也有。如果你引入脚本的目的是因为策划不会C/C++而你希望策划能自己独立实现更多的游戏功能。你希望策划去写脚本?脚本也是程序,策划写的脚本难道就比程序员写脚本好?还是因为策划工资便宜?策划

Unity3D游戏开发之塔防游戏项目讲解(上)

[Unity3D]Unity3D游戏开发之塔防游戏项目讲解(上) 通常意义上讲,塔防游戏是指一类在地图上建造炮台或者类似建筑物来阻止敌人进攻 的策略类游戏。从这个概念中,我们可以快速地抽离出来三个元素,即地图(场景)、敌人、炮台(防守单位)。当我们抽离出来这样三个元素后,现在塔防游戏就变成了这样的一种描述,即敌人按照地图中设计的路径进攻,玩家利用防守单位进行防守的一类策略游戏。经 典的塔防游戏有哪些呢?比如我们最为熟悉的《植物大战僵尸》、《保卫萝卜》都是塔防 类游戏的经典游戏。如果我们将塔防游戏中的防守单位的范围扩大到玩家,那么像《英雄 联盟》这样的游戏同样是可以称之为塔防游戏的,因为敌我阵营的最终目的都是要摧毁敌 方的防御塔,只是敌我双方都从炮台或者怪物变成了有血有肉的人物,加之角色扮演(RPG)和即时战略(RTS)等元素的混合渗透,使得这样的游戏从单纯的塔防游戏变成了一款可玩 度极高的游戏(天啊,我居然在夸这个游戏.....)。好了,那么我们就来尝试着做出一个简单 的塔防游戏吧,注意是简单的塔防游戏哦,既然塔防游戏的三个要素是地图、敌人和防守 单位,那么我们就从这三个方面来着手设计这个游戏吧!在本篇文章中,我们将用到下面 的知识: ?Unity2D中的Sprite动画 ?Unity3D中的可视化辅助类Gizmos ?塔防游戏中敌人按路径寻路的实现 ?Unity3D uGUI的初步探索 ?简单的AI算法 一、地图篇 地图是一个塔防游戏中玩家最为关注的地方,因为地图和敌人将直接影响到玩家的策略。如图是从《保卫萝卜》游戏中提取的一张游戏地图。在这张地图中我们可以清楚看到 怪物进攻的路径,怪物将沿着地图中的路径向我方防守单位发起攻击。那么,在游戏中, 我们该怎样确定怪物的攻击路径呢?首先我们可以对地图进行下分析,在地图中基本上基 本上只有两种类型的区域,即可以放置防守单位的区域和不可放置防守单位的区域两种。 由此我们可以设计出下面的结构:

Unity3D游戏开发菜鸟快速上手指南

大家对Unity3D游戏引擎应该并不陌生,因为Unity3D在轻量级游戏开发和跨平台上面有他独特的优势,所以在当前可谓是炙手可热。17xuee游戏学院简单介绍了Unity3D的一些基础。并且有部分内容根据天天飞车项目经验做了简单分析。适合没有接触过Unity3D和手游开发,并想了解其大概的同学。 1Unity3D简介 1.1编辑器简介 编辑器整体视图如图1.1所示。里面包括了Unity常用的编辑窗口: 图1.1 Unity编辑器界面 Project视图、Hierarchy视图、Scene视图、Game视图、Inspector视图、Console视图、Profiler视图。 1.1.1Project视图 Project视图可以理解为工程目录,里面罗列了工程里面的所有资源文件。常见的资源包括:脚本、预设(Prefab)、模型、贴图、动画、Shader等。用户可以通过右上角的搜索框,搜索工程内的文件。

1.1.2Hierarchy视图 Hierarchy视图显示了当前游戏场景中,所有的游戏对象。游戏对象是通过树形结构排布,展开后可以看到每个子节点对象。常用的游戏对象包括:摄像机、场景物件、玩家、光源等。 1.1.3Game视图 Game视图是游戏视角,即游戏最终展示给玩家的内容。游戏视角包括两部分:1、场景中当前摄像机照射的场景;2、游戏UI界面。 1.1.4Scene视图 Scene视图有点像3DMax的编辑环境,在这里可以看到当前场景中的所有游戏对象。双击Hierarchy中的游戏对象,可以在Scene中定位到对应的物件。在游戏运行期间,暂停游戏。开发人员可以在Scene中找到对应的游戏对象,查看当前帧的世界场景,方便查找BUG。 1.1.5Inspector视图 Inspector视图是游戏对象的属性面板。选择一个物件后,可以在Inspector面板中查看或编辑游戏对象的属性。游戏运行期间,修改游戏对象属性,可以马上作用到游戏对象。这一特点对于美术的编辑、程序查BUG或者策划调整游戏参数有很大帮助。 Unity的游戏对象是通过Component(组件)控制的。常见的Component有:Transform(模型坐标)、Collider(碰撞检测器)、Rigidbody(刚体属性)、Animation(动画)、AudioSource (声音源)、Script(游戏脚本)等。 1.1.6Console视图 Console视图是控制台信息输出窗口。输出的信息包括:游戏脚本编译错误信息、游戏运行期间的日志输出、断言、崩溃信息。

基于unity3d游戏设计开发

分类号论文选题类型 U D C 编号 本科毕业论文(设计) 题目基于Unity3D 的android 手机赛车游戏的设计与开发 院(系)信息与新闻传播学院 专业教育技术学 年级2009 学生姓名尹超凡 学号2009214026 指导教师赵刚 二○一三年五月

华中师范大学 学位论文原创性声明 本人郑重声明:所呈交的学位论文是本人在导师指导下独立进行研究工作所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本人承担。 学位论文作者签名:日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保障、使用学位论文的规定,同意学校保留并向有关学位论文管理部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权省级优秀学士学位论文评选机构将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 本学位论文属于 1、保密□,在_____年解密后适用本授权书。 2、不保密□。 (请在以上相应方框内打“√”) 学位论文作者签名:日期:年月日 导师签名:日期:年月日

目录 内容摘要 (1) 关键词 (1) Abstract (1) Key words (1) 1.引言 (2) 1.1研究背景 (2) 1.2研究意义 (2) 1.3本文结构 (3) 2. 研究主要内容 (3) 2.1 研究方法及手段 (3) 2.2 技术路线 (4) 2.3 开发环境 (4) 2.4运行环境 (6) 3. Unity3D简介 (6) 3.1总体概述 (6) 3.2软件特色 (6) 3.3Unity3D 包的使用 (8) 3.4.Unity3D 发布平台 (9) 4.游戏的总体设计 (9) 4.1游戏目标 (9) 4.2 游戏框架 (9) 4.3游戏界面设计 (10) 5.游戏功能的实现 (11) 5.1碰撞检测的实现 (11) 5.2 terrain 地形的创建 (12) 5.3 prefab 树的创建 (16) 5.4 赛车方向改变和加速减速的实现 (18) 6.总结 (19) 致谢 (23) 参考文献 (24)

unity3d开发过哪些游戏

unity3d开发过哪些游戏 unity,也称unity3d,是近几年非常流行的一个3d游戏开发引擎,跨平台能力强,使用它开发的手机游戏数不胜数。unity3d开发过哪些游戏?Unity3D游戏作品大盘点! 经典重现《新仙剑OL》 《新仙剑OL》采用跨平台Unity3D引擎,耗资数千万,历时三年多,由台湾大宇正版授权,“仙剑之父”姚壮宪监制的全球首款Unity3D航母级双端(网页和客户端)中国风MMORPG网络游戏巨作。主打温情牌并且延续了仙剑系列的国风雅韵,人物塑造细腻唯美,场景构建精致逼真。

Unity3D作品大盘点 《蒸汽之城》(City of Steam) 由国内游戏公司参与开发的Unity3D页游《蒸汽之城》(City of Steam)在北美地区呼声颇高,该作是基于U3D引擎的纯3D角色扮演类网页游戏,它拥有目前市面上少有的360度镜头旋转纯3D画面,能给玩家带来3D客户端游戏体验。该作于不久前在北美开启内测,反响较好。 Unity3D作品大盘点 角色扮演游戏《推倒Online》

《推倒Online》是一款由Unity3D游戏引擎开发,角色扮演、实时战斗为主,辅以社区交际元素的Q版3D网页游戏,由沈阳坐标科技于2010年11月公司创立之初开始设计研发。游戏以魔族崛起为世界背景,通过魔族勇士穿越封印征战大陆为引,展开剧情!制作宗旨走反传统搞怪路线,或可爱、或憨厚、或个性的美式魔幻卡通风格,简洁而不失质感。游戏以新颖的战斗模式、激烈的空间攻占、多样的生活交际经历为主要玩点,兼顾技能升级、装备合成、人物属性进化、游戏内小游戏等常规玩法的扩展,给玩家带来了全新的游戏盛宴。 Unity3D游戏作品大盘点 ARPG武侠《绝代双骄》

unity 3D游戏开发

unity 3D游戏开发 毕业设计 题目 Unity3D游戏开发院系计算机科学与工程系专业计算机科学与技术年级 2011 学号 姓名 指导教师讲师 2015年 3 月 28 日 教务处制 毕业设计书原创性声明 本人郑重声明:所呈交的设计书是本人在指导教师的指导下独立进行研究所取得的研究成果。除了设计书中特别加以注明引用的内容外~本设计书不包含任何其他个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本人承担。 毕业设计书作者签名 年月日 毕业设计书版权使用授权书 本毕业设计书作者完全了解学校有关保障、使用毕业设计书的规定~同意学校保留并向有关学位设计书管理部门或机构送交设计书的复印件和电子版~允许设计书被查阅和借阅。本人授权省级优秀学士学位设计书评选机构将本设计书全部或部分内容编入有关数据库进行检索~可以采用影印、缩印或扫描等复制手段保存和汇编本学位设计书。 本设计书属于: 保密?~在年解密后适用本授权书。

不保密?。 ,请在以上相应的方框内打“?”, 作者签名年月日 指导教师签名年月日 目录 1 绪论 ................................................ 7 1.1 论文研究背景...................................................................... ........................... 7 1.2论文研究目的...................................................................... ............................ 7 1.3论文研究内容...................................................................... ............................ 8 2 游戏开发工具及可行性分 析 ............................. 9 2.1 游戏主要开发引擎...................................................................... ................... 9 2.2 开发可行性分析...................................................................... ....................... 9 2.3本章小结...................................................................... .................................. 10 3游戏设 计 ............................................ 11 3.1 总体设计...................................................................... ................................. 11 3.1.1 游戏介

Unity3D游戏开发之制作一个简单的NPC

Unity3D游戏开发之制作一个简单的NPC 简单的NPC 前几天看了cgcookie的一个教程,学习了下怎么根据已有人物模型制作一个仿版的NPC人物,感觉挺好玩的,整理一下放到博客里! 先看一下教程里面的最终效果。 是不是很像个幽灵~ 下面是我在自己的工程中实验的结果。

中间是游戏角色,两遍两个就是NPC啦。 文章出处【狗刨学习网】 这种技术得到的效果和贴图关系很大,所以如果效果不好再画一张贴图吧 2. 实现 实现非常简单,一共包含三个部分:改变Mesh材质,给Mesh添加Particle,最后添加闪烁的脚本 2.1 改变Mesh材质

首先新建一个空白对象,可以命名为holo_character,给它添加Mesh Filter和Mesh Render组件。 将原模型的Mesh赋值给上述Mesh Filter组件。然后新建一个材质,并赋值给Mesh Render组件来替换原来的模型材质。新的材质使用Particles/Additive的Shader,贴图属性中使用这个NPC的贴图,也也可以直接使用原模型的材质贴图。材质颜色可以根据喜好自行调节。面板设置如下: 如果你的模型包含多个Mesh,例如头和身体是分开的,那么对每个部分都做如上操作就行了。 现在你的NPC应该看起来幽灵化了。 2.2 给Mesh添加Particle 给holo_character依次添加Mesh Particle Emitter、Particle Animator和Particle Render组件。将上一步新建的材质赋值给Particle Render中的材质对象。到了这里基本外观就出来了。

Unity3D游戏开发教程-Unity3D游戏引擎实战开发从入门到精通

unity3d游戏开发教程-Unity3D游戏引擎实战开发从入门到精通(坦克大战项目实战、NGUI开发、GameObject) 一、Unity3D游戏引擎实战开发从入门到精通课程是怎么样的一门课程(全面介绍) 1.1、unity3d游戏开发教程课程的背景现如今游戏已经成为了人们生活中不可或缺的一部分。不经意间,你在公交上,在地铁里,在商场中,办公室里,都可以看到各式各样的人在用不同的途径玩着各种各样的游戏。可以说,游戏是一个前景非常美好的行业。有PC端的玩家,有网页端的玩家,也有移动端的玩家。他们可以通过不同的途径来娱乐自己喜欢的游戏,走到哪里,都可以看到这些已经渗入到人们的生活里了。那么从程序的角度,要实现这些不同平台的互通,我们要怎么实现呢?如何通过一次编码,全平台运行呢?Unity3D就是本着这样的需求而诞生的。 unity3d游戏开发教程,Unity3D可以让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。已经实现了跨平台。可以在移动端,pc端和网页端互通了。一次编码,发布不同平台就可以了。所以现在Unity3D 也成为开发人员的首选编程语言了。其制作3D游戏,也就分分钟的问题。非常的方便。易懂易学。通过Unity简单的用户界面,玩家可以完成任何工作。这些为玩家节省了大量的时间。 所以本unity3d游戏开发教程课程将通过实例来讲解Unity3D的开发过程。由浅入深的,让学者快速的掌握Unity3D开发的要领及Unity3D的知识点。达到快速开发的目的。 1.2、Unity3D游戏引擎实战开发从入门到精通课程内容简介:unity3d游戏开发教程由浅入深的介绍Unity3D的开发流程。从软件使用到API接口的使用,从成品到优化。介绍整个Unity3D的基本开发过程及开发中碰到的基础问题进行深入讲解。对代码重构及代码优化做出示例,让学员能逐步的了解Unity3D开发的注意点。讲解Unity3D软件界面的使用,Unity3D组件的介绍,使用C#编写Unity3D 及Unity3D GUI(NGUI)的介绍和游戏简单AI的编写,让学员能够把握Unity3D开发的方向,成为一名合格的游戏开发人员。 1.3、Unity3D游戏引擎实战开发从入门到精通课程大纲: unity3d游戏开发教程第一讲:Unity3D引擎初识 unity3d游戏开发教程第二讲:GameObject认识 unity3d游戏开发教程第三讲:Unity3D组件添加一 unity3d游戏开发教程第四讲:Unity3D组件添加二 unity3d游戏开发教程第五讲:Unity3D组件添加三 unity3d游戏开发教程第六讲:资源的导入及预制 unity3d游戏开发教程第七讲:游戏地形的制作 unity3d游戏开发教程第八讲:NGUI三讲之第一讲 unity3d游戏开发教程第九讲:NGUI三讲之第二讲第十讲:NGUI三讲之第三讲第十一讲:Unity3D 实例预热第十二讲:实例-坦克组装一 unity3d游戏开发教程第十三讲:实例-坦克组装二第十四讲:实例-敌方AI一第十五讲:实例-敌方AI二第十六讲:实例-场景界面UI制作 unity3d游戏开发教程第十七讲:实例-游戏结束界面第十八讲:实例-游戏环境设置 unity3d游戏开发教程第十九讲:实例-游戏的发布

Unity3D游戏开发之跑酷游戏项目讲解

今天主题就是《Unity3D游戏开发之跑酷游戏项目讲解》。 一、游戏策划 游戏采用2D界面,角色从左到右奔跑,在路段中随机生成障碍物和金币,玩家需要使 用跳跃功能躲开障碍物,在游戏中玩家收集的金币数目越多,奔跑的距离越长,玩家的得分就越高。我们最终实现的界面效果如图所示,首先我们来讲一下游戏的原理,我们这里这里采用的方法是路段固定,移动摄像机的方法。换句话说,当角色开始移动后,摄像机和场景跟随角色缓缓向右移动。当角色跑完每一个路段距离的2/3时,计算下一路段的位置,并在该位置生成一个新的路段,这样在游戏场景中可以产生无限远的路段,当某一路段离开摄像机视野时,立即将其销毁。于此同时,我们在每一个路段上随机产生障碍物和金币,然后对角色做碰撞检测即可。

二、角色控制 角色控制这里,我们只关注角色的状态,即角色是处于奔跑状态还是死亡状态。通过 这一状态,我们针对角色采取不同的处理方式。如果角色处于奔跑状态,则更新角色位置、摄像机位置、背景位置,否则角色将在被障碍物撞到以后倒地死亡。我们来一起看下面的脚本: [csharp]view plaincopyprint? https://www.sodocs.net/doc/1c16066466.html,ing UnityEngine; https://www.sodocs.net/doc/1c16066466.html,ing System.Collections; 3. 4.public class Player : MonoBehaviour { 5. 6.//定义角色移动速度 7.public float mMoveSpeed=2.5F; 8. 9.//摄像机 10.private Transform mCamera; 11.//背景图片 12.private Transform mBackground; 13. 14.//角色是否在奔跑 15.private bool isRuning=true; 16.//场景中路段总数目 17.private int mCount=1; 18. 19.//路段预设 20.public GameObject CubeWay; 21. 22.//死亡动画播放次数 23.private int DeathCount=0; 24. 25.//收集的金币数目 26.private int mCoinCount=0; 27.public int CoinCount { 28.get { 29.return mCoinCount; 30. } 31. } 32.

Unity3D游戏开发之AssetImporter资源导入器

Unity3D游戏开发之AssetImporter资源导入器AssetImporter 资源导入器 Inherits from Object Base class from which asset importers for specific asset types derive. 作为特殊资源类型派生的资源导入器的基类。 Note: This is an editor class. To use it you have to place your script in Assets/Editor inside your project folder. Editor classes are in the UnityEditor namespace so for C# scripts you need to add “using UnityEditor;” at the beginning of the script. 注意:这是一个编辑器类,如果想使用它你需要把它放到工程目录下的Assets/Editor文件夹下。编辑器类在UnityEditor命名空间下。所以当使用C#脚本时,你需要在脚本前面加上“using UnityEditor”引用。文章出处【狗刨学习网】 Variables变量 ?assetPath The path name of the asset for this importer (Read Only) 用于这个导入器,资源的路径名(只读)。 Class Functions类函数 ?GetAtPath Retrieves the asset importer for the asset at path. 为所在路径的资源,导入器重新获取资源。 Inherited members继承成员Inherited Variables继承变量 ?name The name of the object. //物体的名字 ?hideFlags Should the object be hidden, saved with the scene or modifiable by the user? 物体是否被隐藏、保存在场景中或被用户修改? Inherited Functions继承函数 ?GetInstanceID Returns the instance id of the object. 返回物体的实例ID ?ToString Returns the name of the game object. 返回游戏物体的名称。 Inherited Class Functions继承类函数 operator bool

Unity3D游戏设计与实现

分类号:TP31 U D C:D10621-408-(2014)1248-0 密级:公开编号: 成都信息工程学院 学位论文 Frozen游戏设计与实现 论文作者姓名: 申请学位专业:数字媒体技术 申请学位类别: 指导教师姓名(职称): 论文提交日期:

Frozen游戏设计与实现 摘要 为了学习Unity3D游戏引擎,为了进一步了解并熟悉该款引擎,本文描述了如何制作了一个二维的跑酷类游戏项目,这个游戏的背景来源于一部叫做《冰雪奇缘》的电影。通过对该项目的制作和学习,来了解用Unity3D开发游戏的利与弊,以及这款游戏引擎未来的优势。本文所述的游戏项目开发所用的开发工具是Unity3D自带的开发工具,叫做MonoBehaviour,选择的开发语言是C#。该游戏项目是一个小型的2D游戏制作,开发周期短,实现所涉及的技术也是学习Unity3D必备的一些知识,但是也是一些重要的基础知识,很多其他的Unity3D 游戏制作,也是通过把Unity3D的各个功能模块一点点组织拼接起来而成的。 关键词:Unity3D;游戏引擎;语言开发环境;跑酷游戏

the Design and Implementation of Frozen Game Abstract In order to know and learn more about Unity3D game engine, this papers describes how I develop a parkour game project whose background comes from a movie called Frozen. Through the study of this game project, we will get to know the pros and cons to use the game engine and it’s advantage of the future.We did this game project using its own development tool named MonoBehaviour. we used C# as its development language. This is a small 2D game with short development period and some basic techniques which are important knowledge.Many other Unity3D games are the union of some Unity3D function parts. Key words:Unity3D; game engine; language development environment; parkour game

unity3d游戏开发之培训心得体会

北京培训Unity已经有一个月了,自己从刚开始对班里人的不熟悉到熟悉,对以前不努力的自己也做了深刻的反省。 来了这里之后,就觉得大学自己根本就没有去认真的学习知识,来到这里之后,我觉得自己的每一天都是充实有趣的。每天学习久了,疲惫的时候,和同学们聊聊天,疲惫的我也会觉得精神不少。这里的学习气氛很好,在大学里,每个人几乎都是懒散的,有点懒惰的我也跟着偷起了懒。在这里,想玩一会的时候,看到周围的人都在努力的学习,向前跑,懒惰的自己又怎么好意思去玩呢,便收起自己想要偷懒的心,奋力的向他们追去。 我的学习不是最好的,但是我跟自己说,没关系的,只要你努力了,不要觉得自己笨,笨鸟还会先飞呢,那我就比别人提前飞,总会追上前面的人的步伐,更有可能超过他;只要你努力了,你就有收获。 下面来介绍一下我们的一天。 早上由于每天都睡得很晚所以老师给推迟的九点上课。我每天八点起来洗漱,八点半从宿舍出来去班里。(我们教室外的楼道)每天打开门进去,都会看到几个起的早的同学在教室里学习了,每次看到他们都会鼓励我前进,坐到座位上,我就开始复习前一天学习的知识,保证自己的学习质量。现在讲的都是基础,所以一定要好好学,就像楼房如果不打好地基,盖高了就会容易倒塌,传说中的豆腐渣工程,学习也是如此。

班里有很多学习很好的同学,被我们称之为“大神”。他们每次的成绩都让人羡慕,我总是暗下决心,我要努力的学习,即使我超越不了,也要和他们并排向前走。 到了中午,午饭时间,我们女生宿舍时有个小厨房的,有小家的感觉,我们每天中午都会回去自己做饭吃,这也也省了不少钱。毕竟北京的消费很高,老在外面吃饭,花销太大了。(宿舍小厨房)中午吃完饭,我一般都是坐一会就回到教室,去会顾上午学习的内容,

Unity3D游戏开发之伤害数值显示

Unity3D游戏开发之伤害数值显示 众所周知,在RPG游戏策划中最为重要的一个环节是数值策划。数值策划是一个关于游戏平衡方面的概念,它是一种非常深奥的概念。游戏从某种意义上是多种选择的组合,因此如果一个游戏失去平衡,那么就会减少选择而影响游戏的乐趣。数值策划人员通常需要按照一定的规则和方法将整个游戏系统的相关数值调整到一个合适的范围,以确保玩家可以有更多地选择以增强游戏的可玩性。文章出处:狗刨学习网。数值策划是近年来国内游戏行业从国外游戏业引申过来的一个概念,博主认为我们在学习游戏设计的过程中,除了专注于技术上的实现以外,还应该对游戏设计中的相关理论有所了解。 好了,下面我们开始今天的内容:Unity3D游戏开发之伤害数值显示。如图所示,是博主十分喜欢的一部游戏《血雨前传:蜃楼》。这部游戏虽然脱离了前两部作品回合制的模式,以爽快的ACT横版过关模式再次进入玩家的视野中,但是相信只有真正玩过这个游戏的人才知道这是一部地地道道的RPG游戏,诡异、独特的画面风格,古龙式武侠叙事风格都为这部作评带来了无限的生命力。而《雨血》系列更是近年来少有的走出国门、享誉国外的游戏。这部游戏一招一式都很华丽,而且爽快的打击感让人欲罢不能。作为一部PRG游戏,在战斗中最重要的当属敌我双方生命值的对比,所以在战斗中实时显示玩家对敌人造成的伤害值十分重要。文章出处:。《仙剑奇侠传五前传》更是在战斗中加入了伤害统计,方便玩家对于战场局势的把握。好了,讲了这么多,我们来继续我们的Unity3D 学习之旅,在下面的文章中,我们将使用Unity3D中的OnGUI()方法来实现伤害数值的显示。 既然是基于OnGUI()方法的,相信大家一定很熟悉了,所以我们直接给出代码:1. using UnityEngine; https://www.sodocs.net/doc/1c16066466.html,ing System.Collections; 3.public class DamagePopup : MonoBehaviour { 4. //目标位置 5. private Vector3 mTarget; 6. //屏幕坐标 7. private Vector3 mScreen; 8. //伤害数值 9. public int Value;

unity3D游戏开发之图形游戏界面

Unity 为您提供许多选项来创建游戏的图形用户界面(GUI)。您可以使用场景中的 GUI 文本和GUI 纹理对象,或者使用UnityGUI 从脚本生成界面。文章来源于【狗刨学习网】 该页面的其余部分包含入门和使用UnityGUI 运行的详细指南。 GUI 脚本指南 概述 UnityGUI 使您能够快速、轻松地创建大量功能强大的GUI。通过手动定位GUI 对 象并编写处理其功能的脚本,您只需几行代码即可马上搞定一切,而不是创建GUI 对象。代码生成GUI 控件(GUI controls) ,这些控件通过单个的函数调用进行实例化、定位和处理。 UnityGUI 基础 这部分涵盖了UnityGUI 的基本概念,提供了概述以及一组可粘贴到自己代码里的应用示例。UnityGUI 很容易上手,因此从这里开始比较好。 控件

本节列出了UnityGUI 中的每个可用控件(Control) 以及显示结果的代码样例和图像。 自定义 能够更改GUI 外观使其与您的游戏外观相匹配是很重要的。UnityGUI 中的所有控件都可按照本节中描述的方法用GUIStyles 和GUISkins 进行自定义。 布局模式 UnityGUI 提供两种布置GUI 的方法:您可以手动将每个控件放置在屏幕上,也可 使用与HTML 表的工作原理相同的自动布局系统。可根据需要使用任何一种方法,并且这两种方法可以自由组合。本节讲解了这两种系统之间的功能差异,包括示例。 扩展UnityGUI 使用新的控件(Control) 类型可很容易地扩展UnityGUI。这章向您展示如何制作简单的复合(compound) 控件,包括集成到Unity 事件系统。 扩展Unity 编辑器 Unity 编辑器的GUI 实际上是使用UnityGUI 编写的。因此,使用用于游戏中的

Unity3D 学习游戏开发心得

Unity3D 学习游戏开发心得 罗佳 10120340238 小组排名:黄馨然,罗佳在这将近20天的游戏开发中,第一次一边学习,一边开发游戏,虽然最后做出来的游戏有点差强人意,但是在这整个过程中学到的东西让自己觉得这20天的努力让这一整个学期学到的知识一下子充盈好看了起来。首次开发自己的游戏,是一个较艰难的过程,有时候在一个问题上耗上五六个小时仍无半点进展,那感觉确实让人十分沮丧,同样的,耗上五六个小时解决一个问题时的喜悦之感也是无与伦比的。在这20天的开发过程中,个人感觉比较难的,就是摄像机的处理了,总是无法使场景中的游戏对象,显示在合理的位置,调整摄像机的位置以及角度都非常费时间。 一下是对自己在游戏开发过程中所领悟到的新知识做一个总结: 关于摄影机控制,如果场景中有多架摄影机,那么如何确定第一打开时间所显示的摄影机,就需要设置Camera属性中的Depth数值,数值越大的摄影机越优先显示。 关于材质数量的控制,如果一个物体给与一个材质球,那么Unity3D对于材质数量和贴图数量没有任何的限制。如果一个物体给与多个材质球,我们需要用 Multi/SubObject来实现,但是这种罗列的材质球的数量没有严格的控制,但尽量保持在10以内,过多的数量会导致一些错误。如果不使用Multi/SubObject材质球,也可以选择一些面,然后给与一个材质球。这样系统会自动将其转换成Multi/SubObject材质。综合而言Unity3D软件对于材质的兼容还是很好的。 关于物体的质感,“Diffuse”,“Diffuse Bumped”,“Bumped Specular” 这三种类型为常用类型,其中Bumped需要增加Normal法线贴图来实现凹凸。 ?Decal 这种材质为贴花材质,即相当于Mask类型,可以再Decal(RGBA)贴与一个带有Alpha 通道的图像,形成和原图像相叠加的效果。 ?Diffuse Detail 这种材质可以创造出污迹和划痕的效果,即相当于Blend混合材质。 ?Reflective 其中各种类型可以创造出金属反射效果,需要增加Cubmap贴图。

基于Unity3D的跑酷游戏

编号:201337141 哈尔滨工业大学 大一年度项目结题报告项目名称:基于Unity3D的跑酷游戏 填表日期:2014年7月8日

一、项目团队成员 二、指导教师意见 三、项目专家组意见 四、项目成果

五、项目研究结题报告 摘要:许多人都有玩游戏的经历,游戏也是一种软件,制作一个游戏需要一定制作模型的能力,也需要编程的能力。我们的年度项目制作的是利用Unity3D、3DMax和Photoshop制作一款像素风格的音乐节奏类游戏,该游戏的障碍物跟随鼓点出现。角色则需要不断躲避障碍物,从而看起来就像踏上了鼓点。为实现这一功能,我们利用了Unity3D中的脚本接口,这也是我们的一个创新点。一年来,我们投入到项目中的努力使我们提前接触到完成科技项目所需要的严谨、求实的态度,创新、思考的过程,汇报、展示的锻炼。让我们对科研创新有了切身的体验。 关键词:Unity3D;3DMax;Photoshop;音乐节奏类游戏 课题背景 几乎所有的人都有过玩游戏的经历,可能是单人游戏或是多人游戏,电脑游戏或是手机游戏,5秒钟一轮的迷你游戏,或是一年365天、一天24小时都无休无止的角色扮演游戏,挑战大脑的游戏或是挑战身体极限的游戏。全世界数亿人选择将大块的时间投入到现实以外的地方,游戏市场在飞速发展。一份统计表明,目前全球范围的在线游戏社区里,美国有1.83亿玩家,中国有2亿玩家,印度有1.05亿玩家,欧洲有1亿玩家……美国的“极端”玩家多达500多万,他们平均每周在游戏中耗费45个小时;600万中国玩家则每周至少玩22个小时的游戏。 游戏也是一种软件,想要制作出一个游戏需要一定制作模型的能力,也需要编程的能力。我们的年度项目小组成员基于上述情况决定制作一款音乐节奏类游戏,虽然尚没有多样的玩法,但是制作出这些玩法之前所需要的实现的基本效果我们已经都实现了。 课题研究内容与方法 我们经过学习与多次实践,终于渐渐熟悉了基于Unity3D的游戏开发所需要的基本技能。在此重新列举出来,希望能获得一些指导意见。 目前我们总结出来的所需能力有: 1.3DMAX的基本使用能力; 2.将由3DMAX制作的模型导入Unity3D中,并制作C#脚本制作形成各种效果的能力; 3.在Photoshop中绘制3D模型贴图的能力。

Unity3D 学习游戏开发心得

Unity3D 学习游戏开发心得 罗佳10120340238 小组排名:黄馨然,罗佳在这将近20天的游戏开发中,第一次一边学习,一边开发游戏,虽然最后做出来的游戏有点差强人意,但是在这整个过程中学到的东西让自己觉得这20天的努力让这一整个学期学到的知识一下子充盈好看了起来。首次开发自己的游戏,是一个较艰难的过程,有时候在一个问题上耗上五六个小时仍无半点进展,那感觉确实让人十分沮丧,同样的,耗上五六个小时解决一个问题时的喜悦之感也是无与伦比的。在这20天的开发过程中,个人感觉比较难的,就是摄像机的处理了,总是无法使场景中的游戏对象,显示在合理的位置,调整摄像机的位置以及角度都非常费时间。 一下是对自己在游戏开发过程中所领悟到的新知识做一个总结: 关于摄影机控制,如果场景中有多架摄影机,那么如何确定第一打开时间所显示的摄影机,就需要设置Camera属性中的Depth数值,数值越大的摄影机越优先显示。 关于材质数量的控制,如果一个物体给与一个材质球,那么Unity3D对于材质数量和贴图数量没有任何的限制。如果一个物体给与多个材质球,我们需要用Multi/SubObject 来实现,但是这种罗列的材质球的数量没有严格的控制,但尽量保持在10以内,过多的数量会导致一些错误。如果不使用Multi/SubObject材质球,也可以选择一些面,然后给与一个材质球。这样系统会自动将其转换成Multi/SubObject材质。综合而言Unity3D软件对于材质的兼容还是很好的。 关于物体的质感,“Diffuse”,“Diffuse Bumped”,“Bumped Specular” 这三种类型为常用类型,其中Bumped需要增加Normal法线贴图来实现凹凸。 ?Decal 这种材质为贴花材质,即相当于Mask类型,可以再Decal(RGBA)贴与一个带有Alpha 通道的图像,形成和原图像相叠加的效果。 ?Diffuse Detail 这种材质可以创造出污迹和划痕的效果,即相当于Blend混合材质。 ?Reflective 其中各种类型可以创造出金属反射效果,需要增加Cubmap贴图。

相关主题