unity3d游戏开发之初探.doc_第1页
unity3d游戏开发之初探.doc_第2页
unity3d游戏开发之初探.doc_第3页
unity3d游戏开发之初探.doc_第4页
unity3d游戏开发之初探.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、Unity3D平台简介Unity是由Unity Technologies开发的一个让轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。Unity类似于Director,Blender game engine, Virtools 或 Torque Game Builder等利用交互的图型化开发环境为首要方式的软件其编辑器运行在Windows 和Mac OS X下,可发布游戏至Windows、Mac、Wii、iPhone、Windows Phone 8和Android平台。也可以利用Unity web player插件发布网页游戏,支持Mac 和Windows的网页浏览。它的网页播放器也被Mac widgets所支持。据不完全统计,目前国内有80%的Android、Iphone手机游戏使用Unity3D进行开发,比如著名的手机游戏神庙逃亡就是使用Unity3D开发的,也有纵横时空、将魂三国、争锋online、萌战记、绝代双骄、蒸汽之城、星际陆战队、新仙剑奇侠传Online、武士复仇2、UDog等上百款网页游戏都是使用Unity3d开发。当然,Unity3D不仅只限于游戏行业,在虚拟现实、工程模拟、3D设计等应用方面也有着广泛的应用,国内使用Unity3D进行虚拟仿真教学平台、房地产3维展示等项目开发的公司非常多,比如绿地地产、保利地产、中海地产、招商地产等大型的房地产公司的三维数字楼盘展示系统很多都是使用Unity3D进行开发。比如Miya家装、飞思翼家装设计、状元府楼盘展示等等。赤果果的数据-国内53.1%的人使用Unity3D进行游戏开发,有80%的手机游戏使用Unity3D开发,跨多平台(IOS、Android、WindowsPhone、Windows、Flash、XBOX360、PS3、Wii等)游戏引擎,可以开发2D、2.5D、3D游戏。appstore手机上有1500+款用Unity3D开发的游戏,而Unity3D语言就有C#(还有JavaScript,但不是原生的JavaScript)。因此,对于我们.NET程序员,如果说Mono让我们进入了跨平台服务器的Web开发时代,Unity3D则让我们赶上了移动手游开发的浪潮,不至于掉队甚至错过这波浪潮。我又想起园子里的一位大牛张善友先生写的一篇博文的标题:现在是C#程序员最好的时代。是啊,感谢开源社区的大牛们,我们拥抱着Mono,还迎来了Unity3D。二、Unity3D IDE简介Unity(/)提供了免费的下载,目前最新版本是4.3.4f3,安装包大概1个G左右。目前提供了收费的专业版和免费的版本以及30天的试用版,一般我们学习者使用免费版足矣。当然,在大天朝各种破解补丁、注册机是可以找到的,不过涉及到版权问题这里不进行讨论,请自行百度或Google搜索。下载完成后,即可安装,安装步凑就是各种下一步(Next),中途会提示你是否需要安装几个组件:Examples、Web Player以及Mono Developer,一般都全选上,当然也可以不选。Mono Developer是个好东西(但是智能性上赶不上强大的VS),推荐装上。安装完成并且注册(或者破解)之后,你就可以进入以下所示的界面了。恭喜你,你已经进入Unity3D的学习征途,当然,还仅仅是第一步。这里需要提示一下:在新建Unity3D项目的时候,一定要放在非中文命名的路径中!另外,每次在创建新项目的时候,Unity3D都会自己重启一下,这是正常现象哈,不要以为你的Unity3D安装没成功。三、第一个Unity3D程序-Hello Cube!(1)在模型对象区域中的Hierarchy中Create一个Cube立方体,在Inspector中修改它的Position XYZ均设置为0;(2)Unity3D场景默认是木有光照源的,因此需要在Hierarchy中Create一个Directional light(平行光);(3)修改Main Camera(摄像机看到的就是屏幕看到的)的Position为(0,1,-5),这样看起来清楚一点;(4)在项目资源管理器中Create一个C# Script,命名为CubeControl。创建完成之后,双击该脚本文件,自动进入MonoDeveloper(默认是MonoDeveloper,当然我们也可以使用Visual Studio作为默认编辑器)。(5)在MonoDeveloper中,写入以下代码。这个代码主要是判断用户的按键操作,如果是上、下、左、右操作,则对指定的对象进行指定方向的翻看。(主要写在Update方法中,程序的每一帧都会调用Update方法,1秒默认30帧)using UnityEngine;using System.Collections;public class CubeControl : MonoBehaviour / Use this for initialization / Unity3D中常用的几种系统自调用的重要方法 / 首先,我们有必要说明一下他们的执行顺序: / Awake-Start-Update-Fixedupdate-Lateupdate-OnGUI-Reset-onDisable-onDestory / Start仅在Update函数第一次被调用前调用 void Start () / Update is called once per frame void Update () /按键盘上的上下左右键可以翻看模型的各个面模型旋转 / 上 if(Input.GetKey(KeyCode.UpArrow) transform.Rotate(Vector3.right*Time.deltaTime*10); / 下 if(Input.GetKey(KeyCode.DownArrow) transform.Rotate(Vector3.left*Time.deltaTime*10); / 左 if(Input.GetKey(KeyCode.LeftArrow) transform.Rotate(Vector3.up*Time.deltaTime*10); / 右 if(Input.GetKey(KeyCode.RightArrow) transform.Rotate(Vector3.down*Time.deltaTime*10); (6)将保存后的CubeControl通过鼠标拖动到模型对象区Hierarchy中的Cube上进行脚本绑定。绑定脚本和对象之后,在Cube的属性中会看到下图所示。*PS:脚本需要对应到一个具体的游戏对象才有意义!(7)现在可以预览一下我们的第一个程序了,点击如下图所示的播放按钮,即可进入模拟器看到效果。这时,我们通过按下键盘中的上、下、左、右键,Cube立方体会随着我们的按键翻转。怎样?麻雀虽小,但是五脏俱全吧,我们的第一个Unity3D程序Hello Cube就完成了。(8)接下来,如果按照正式项目的步凑的话就轮到发布程序了。这里我们可以体验一下Unity3D强大的跨平台能力,我们这个Demo可以发布为各种主流类型操作系统兼容的应用程序。通过点击File-Build Settings,即可进入如下图所示的发布设置窗口界面。查看Platform列表,里边囊括了几乎目前所有的操作平台,也就是说我们可以实现一次开发,多平台运行,爽哉!(9)这里我们做个测试,发布一个Windows平台的典型exe程序和一个Web平台的Flash程序来体验一下。(我的笔记本没有安装Android模拟器,更不要说Mac模拟器了,所以,你懂的)(10)足够细心的你相信已经发现这个Cube立方体的棱角有锯齿,这是因为在默认环境下,抗锯齿这个属性是设为Disabled(禁用)的。因此,我们可以点击EditProject SettingsQuality,将Anti Aliasing这个属性选为2x Multi Sampling(可选值为2x Multi Sampling、4x Multi Sampling以及8x Multi Sampling,值越大越平滑,但是会占用更多的系统资源,开发调试阶段一般选择为Disabled,当然,如果你的机器足够好,选择4x或8x也是一个不错的选择)。四、原谅我是“外貌”协会酷炫场景导入相信大家都玩过很多游戏,对于游戏中那些宏大逼真的游戏场景应该是历历在目。所以,对于我们这种对于游戏场景外貌要求比较高的“玩家”(不过,我很少玩网络游戏,目前一直在玩的只有Pro Evolution Soccer实况足球),上面那个一点场景都木有的游戏对我们来说没有一点吸引力!因此,对于外貌协会的挑剔客观,Unity3D支持3Ds Max的FBX模型文件直接导入,为我们的游戏“整容”,一秒变白富美!(1)从网上下载一个FBX模型文件;(这个网上很多,请自行百度或Google。我这里使用的是一个希腊圣殿的场景FBX文件,下载地址见本文底部。)另外,这里需要提醒一下:如果下载下来的FBX文件以中文命名,请将其改为英文命名,并且最好不要有空格。例如,我这里将其原文件名“希腊圣殿”改为TempleScene。(2)将下载的FBX模型文件拖动到Unity3D中的资源管理器区域中,完成后在资源管理器中会出现该模型文件图标;(3)将上图中带有播放按钮的TempleScene.FBX文件拖动到Scene(游戏场景视图)中,于是一秒变为希腊圣殿的场景!(4)这时我们稍微调整一下Main Camera和Cube的Position就可以浏览一下在圣殿场景下的Hello Cube程序了。(5)但是我们发现,虽然立方体可以随着我们的键盘方向操作翻转,但是场景一直停在一个固定的角度。于是乎,我们想让场景也随着立方体的翻转而转动,我们该怎么来做呢?这就涉及到我们刚刚所写的CubeControl脚本了,在Unity3D中脚本是需要和对象绑定才能正确运行的。因此,我们只需要把CubeControl和刚刚导入的这个圣殿的场景对象绑定一下即可。所以,这里从资源管理器区域中把CubeControl拖动到TempleScene处就OK了。最后,可以通过查看TempleScene的属性观察是否绑定上了脚本,如下图所示。(6)最后,通过点击播放按钮在模拟视图中可以查看。这下,只要我们按下键盘上的方向键,场景和立方体会一起转动,爽吧!一、Unity3D平台简介Unity是由Unity Technologies开发的一个让轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。Unity类似于Director,Blender game engine, Virtools 或 Torque Game Builder等利用交互的图型化开发环境为首要方式的软件其编辑器运行在Windows 和Mac OS X下,可发布游戏至Windows、Mac、Wii、iPhone、Windows Phone 8和Android平台。也可以利用Unity web player插件发布网页游戏,支持Mac 和Windows的网页浏览。它的网页播放器也被Mac widgets所支持。据不完全统计,目前国内有80%的Android、Iphone手机游戏使用Unity3D进行开发,比如著名的手机游戏神庙逃亡就是使用Unity3D开发的,也有纵横时空、将魂三国、争锋online、萌战记、绝代双骄、蒸汽之城、星际陆战队、新仙剑奇侠传Online、武士复仇2、UDog等上百款网页游戏都是使用Unity3d开发。当然,Unity3D不仅只限于游戏行业,在虚拟现实、工程模拟、3D设计等应用方面也有着广泛的应用,国内使用Unity3D进行虚拟仿真教学平台、房地产3维展示等项目开发的公司非常多,比如绿地地产、保利地产、中海地产、招商地产等大型的房地产公司的三维数字楼盘展示系统很多都是使用Unity3D进行开发。比如Miya家装、飞思翼家装设计、状元府楼盘展示等等。赤果果的数据-国内53.1%的人使用Unity3D进行游戏开发,有80%的手机游戏使用Unity3D开发,跨多平台(IOS、Android、WindowsPhone、Windows、Flash、XBOX360、PS3、Wii等)游戏引擎,可以开发2D、2.5D、3D游戏。appstore手机上有1500+款用Unity3D开发的游戏,而Unity3D语言就有C#(还有JavaScript,但不是原生的JavaScript)。因此,对于我们.NET程序员,如果说Mono让我们进入了跨平台服务器的Web开发时代,Unity3D则让我们赶上了移动手游开发的浪潮,不至于掉队甚至错过这波浪潮。我又想起园子里的一位大牛张善友先生写的一篇博文的标题:现在是C#程序员最好的时代。是啊,感谢开源社区的大牛们,我们拥抱着Mono,还迎来了Unity3D。二、Unity3D IDE简介Unity(/)提供了免费的下载,目前最新版本是4.3.4f3,安装包大概1个G左右。目前提供了收费的专业版和免费的版本以及30天的试用版,一般我们学习者使用免费版足矣。当然,在大天朝各种破解补丁、注册机是可以找到的,不过涉及到版权问题这里不进行讨论,请自行百度或Google搜索。下载完成后,即可安装,安装步凑就是各种下一步(Next),中途会提示你是否需要安装几个组件:Examples、Web Player以及Mono Developer,一般都全选上,当然也可以不选。Mono Developer是个好东西(但是智能性上赶不上强大的VS),推荐装上。安装完成并且注册(或者破解)之后,你就可以进入以下所示的界面了。恭喜你,你已经进入Unity3D的学习征途,当然,还仅仅是第一步。这里需要提示一下:在新建Unity3D项目的时候,一定要放在非中文命名的路径中!另外,每次在创建新项目的时候,Unity3D都会自己重启一下,这是正常现象哈,不要以为你的Unity3D安装没成功。三、第一个Unity3D程序-Hello Cube!(1)在模型对象区域中的Hierarchy中Create一个Cube立方体,在Inspector中修改它的Position XYZ均设置为0;(2)Unity3D场景默认是木有光照源的,因此需要在Hierarchy中Create一个Directional light(平行光);(3)修改Main Camera(摄像机看到的就是屏幕看到的)的Position为(0,1,-5),这样看起来清楚一点;(4)在项目资源管理器中Create一个C# Script,命名为CubeControl。创建完成之后,双击该脚本文件,自动进入MonoDeveloper(默认是MonoDeveloper,当然我们也可以使用Visual Studio作为默认编辑器)。(5)在MonoDeveloper中,写入以下代码。这个代码主要是判断用户的按键操作,如果是上、下、左、右操作,则对指定的对象进行指定方向的翻看。(主要写在Update方法中,程序的每一帧都会调用Update方法,1秒默认30帧)using UnityEngine;using System.Collections;public class CubeControl : MonoBehaviour / Use this for initialization / Unity3D中常用的几种系统自调用的重要方法 / 首先,我们有必要说明一下他们的执行顺序: / Awake-Start-Update-Fixedupdate-Lateupdate-OnGUI-Reset-onDisable-onDestory / Start仅在Update函数第一次被调用前调用 void Start () / Update is called once per frame void Update () /按键盘上的上下左右键可以翻看模型的各个面模型旋转 / 上 if(Input.GetKey(KeyCode.UpArrow) transform.Rotate(Vector3.right*Time.deltaTime*10); / 下 if(Input.GetKey(KeyCode.DownArrow) transform.Rotate(Vector3.left*Time.deltaTime*10); / 左 if(Input.GetKey(KeyCode.LeftArrow) transform.Rotate(Vector3.up*Time.deltaTime*10); / 右 if(Input.GetKey(KeyCode.RightArrow) transform.Rotate(Vector3.down*Time.deltaTime*10); (6)将保存后的CubeControl通过鼠标拖动到模型对象区Hierarchy中的Cube上进行脚本绑定。绑定脚本和对象之后,在Cube的属性中会看到下图所示。*PS:脚本需要对应到一个具体的游戏对象才有意义!(7)现在可以预览一下我们的第一个程序了,点击如下图所示的播放按钮,即可进入模拟器看到效果。这时,我们通过按下键盘中的上、下、左、右键,Cube立方体会随着我们的按键翻转。怎样?麻雀虽小,但是五脏俱全吧,我们的第一个Unity3D程序Hello Cube就完成了。(8)接下来,如果按照正式项目的步凑的话就轮到发布程序了。这里我们可以体验一下Unity3D强大的跨平台能力,我们这个Demo可以发布为各种主流类型操作系统兼容的应用程序。通过点击File-Build Settings,即可进入如下图所示的发布设置窗口界面。查看Platform列表,里边囊括了几乎目前所有的操作平台,也就是说我们可以实现一次开发,多平台运行,爽哉!(9)这里我们做个测试,发布一个Windows平台的典型exe程序和一个Web平台的Flash程序来体验一下。(我的笔记本没有安装Android模拟器,更不要说Mac模拟器了,所以,你懂的)这篇文章来自狗刨学习网(10)足够细心的你相信已经发现这个Cube立方体的棱角有锯齿,这是因为在默认环境下,抗锯齿这个属性是设为Disabled(禁用)的。因此,我们可以点击EditProject SettingsQuality,将Anti Aliasing这个属性选为2x Multi Sampling(可选值为2x Multi Sampling、4x Multi Sampling以及8x Multi Sampling,值越大越平滑,但是会占用更多的系统资源,开发调试阶段一般选择为Disabled,当然,如果你的机器足够好,选择4x或8x也是一个不错的选择)。四、原谅我是“外貌”协会酷炫场景导入相信大家都玩过很多游戏,对于游戏中那些宏大逼真的游戏场景应该是历历在目。所以,对于我们这种对于游戏场景外貌要求比较高的“玩家”(不过,我很少玩网络游戏,目前一直在玩的只有Pro Evolution Soccer实况足球),上面那个一点场景都木有的游戏对我们来说没有一点吸引力!因此,对于外貌协会的挑剔客观,Unity3D支持3Ds Max的FBX模型文件直接导入,为我们的游戏“整容”,一秒变白富美!(1)从网上下载一个FBX模型文件;(这个网上很多,请自行百度或Google。我这里使用的是一个希腊圣殿的场景FBX文件,下载地址见本文底部。)另外,这里需要提醒一下:如果下载下来的FBX文件以中文命名,请将其改为英文命名,并且最好不要有空格。例如,我这里将其原文件名“希腊圣殿”改为TempleScene。(2)将下载的FBX模型文件拖动到Unity3D中的资源管理器区域中,完成后在资源管理器中会出现该模型文件图标;(3)将上图中带有播放按钮的TempleScene.FBX文件拖动到Scene(游戏场景视图)中,于是一秒变为希腊圣殿的场景!(4)这时我们稍微调整一下Main Camera和Cube的Position就可以浏览一下在圣殿场景下的Hello Cube程序了。(5)但是我们发现,虽然立方体可以随着我们的键盘方向操作翻转,但是场景一直停在一个固定的角度。于是乎,我们想让场景也随着立方体的翻转而转动,我们该怎么来做呢?这就涉及到我们刚刚所写的CubeControl脚本了,在Unity3D中脚本是需要和对象绑定才能正确运行的。因此,我们只需要把CubeControl和刚刚导入的这个圣殿的场景对象绑定一下即可。所以,这里从资源管理器区域中把

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论