VR开发为什么要学Unity3D?


R技术需要学习哪些内容为什么學习R技术的人越来越多呢?带着问题跟随达内一起去了解一下吧

一、Unity3D程序开发基础

主要是学习1.C#语法基础 2.OOP(面向对象) 3.网络通信 4.内存管理從基础讲解C#语言,熟悉字段、属性、接口、委托、事件掌握C#面向对象编程的核心思想。让学员掌握Unity3d各个方面的知识和基本使用方法为後面深入的学习打下良好基础。

1.U3D初识 2.Unity3D开发环境使用 3.物体系统粒子系统使用 4.灯光,地形系统使用 5.GUI以及NGUI插件介绍 6.常用组件以及脚本绑定 7.伪2D遊戏的制作。熟练掌握编辑器元素包括地形、光照和阴影、 摄像机和天空盒的使用与游戏设定物理引擎、粒子系统,输入与控制的脚本開发和GUI、NGUI插件的使用构建网络游戏框架。

1.Unity3D物体系统高级部分 2.Untiy3D动画系统高级部分 3.常规设计模式4.动画跟随等相关插件学习 5.第1,3人称项目讲解在原来的学习基础上深入学习Unity3D物体系统、动画系统的高级部分,例如骨骼的绑定动画角色的创建等。配合游戏案例进行深度讲解讓你充分了解动画的制作过程。

1.IOS版发布 2.安卓版发布 3.网页版发布 4.PC版发布掌了解不同平台的资源要求范围、资源表现形式、资源的具体优化方姠和最终呈现效果掌握客户端游戏发布、网页游戏发布、Android平台发布与上架、IiOS平台发布及上架以及其他平台发布介绍,提高成品游戏的可利用率

1.设计模式 2.Socket 3.通信协议 4.XML与SQLite 5.对象池技术 6.全局事件技术 7.伪2D飞行类 8.FPS射击类 9.MMORPG学生根据自己实际情况选择对应课题或者做提供的课题,由学生自巳来动手完成一个完整项目让学生实际感受并把控整个项目,培养学生的独立思考及解决问题的能力以快速的适应实际工作需求

更多關于R技术的学习的相关问题,请继续关注北京达内unity3d培训机构会有更多精彩答案与您分享。

}

本课程为收费课程请先购买当湔课程

本课程为会员课时,请先开通会员

本课程为会员课时您的会员账号已经过期

本课程为会员课时,您的会员账号已被禁用

章未解锁暂无观看权限

拼团未完成,暂无观看权限

购买未完成暂无观看权限

发表评论的小伙伴,每周都有机会获得讲师会员卡~~~

正在打包请勿關闭和刷新页面

下一节课程:学习的重要性 (02:59)

}

解析如何使用Unity3D开发一款R弹球游戏

開发R游戏首先要选择一个合适的平台目前可供选择的平台不多,Google的Cardboard和OculusRift等头戴式显示设备都是可供选择的对象但Cardboard的价格低廉,市场占有率更高用它来作为移动端进行开发更为划算一些。当然选择其一并不代表我们舍弃了其它开发平台的优点,同时Unity3D游戏引擎拥有跨平台嘚特性对项目经过简单的修改便可将R项目移植到PC或者其他平台中。

使用Unity3D开发R游戏十分便捷:

首先在于如场景、模型等丰富的素材资源開发者们无需再为美工建模这些相对耗时间的工作而困扰。

其次在于便捷的引擎支持OculusRift、GoogleCardboard和HTCie等产品均提供了对于Unity3D引擎的支持,只需将官方提供的插件包导入到目标项目中便可使用相应的R产品了。

随着Unity5.3版本的发布Unity增强了对R开发的兼容性,在项目设置中我们可以直接选择使鼡Oculus或是OpenR进行开发

下面就以一款简单的R弹球游戏为例子,谈谈使用Unity3D游戏引擎开发R游戏的流程

先说说R弹球游戏的规则。和传统的弹球游戏┅样在R弹球游戏中有两个玩家,一个是用户另一个则是AI。玩家分别控制己方的一块弹球板当弹球碰到弹球板的时候,球则会反弹回詓如果一方没有成功反弹弹球的话则该方失败。

那么对于这款R弹球游戏具体应该怎样开发呢?

在确定了开发平台之后,我们需要在Unity中导叺相关的SDK如选用OculusRift则导入OculusRift的SDK,选用GoogleCardboard则导入Cardboard的SDK这些SDK的使用方法大同小异,每个SDK中均包含着一个角色控制器而对角色控制器的使用也近乎楿同。我们将相应的SDK导入Unity随后将SDK中的角色控制器拖放到游戏场景中,进行测试在使用OculusRift等设备进行调试的时候,往往需要将OculusRift配置好连接电脑才能调试。而Cardboard的调试可以使用Alt键+拖动鼠标来模拟用户头部的晃动。

在正式开发游戏之前采用一个良好的目录结构是项目管理的囿效方式。这个项目中在根目录下有如下的目录:Model(存放OBJ或是FBX格式的模型)、Texture(存放模型的贴图,PNG等格式的图片)、Material(存放通过贴图制作的Unity中的PBR贴圖)、Prefab(存放Unity预设物体)、Scene(存放游戏的场景文件)在这种目录结构下,我们还可以对Model、Texture、Prefab和Material等目录进行细分在一些大的项目中拥有大量的模型嘚时候,通过建立Enironment、Building和Player等目录以细化Model目录结构以方便对于模型的寻找,加快开发速度在对目录中的文件命名的时候,模型文件以M_模型洺称进行命名Material以Mat_贴图名称进行命名也不失为一种良好的习惯。

开发游戏的第一步便是搭建场景在该R游戏中,我们选用的风格是对程序員友好的像素3D风格像素3D建模较为简单,所有的模型都是我们团队中的程序员制作的在像素建模的软件选用方面,我们使用了Magicaoxel这款免费嘚软件Magicaoxel的界面和操作十分简单,即使没有基础跟着网上的教程半个小时左右就能入门,并做出自己心仪的3D模型在建模阶段完成之后,将模型和材质等资源按照约定的目录结构导入Unity3D中

在搭建场景时,先将FBX或是OBJ格式的模型拖动到Scene(场景)面板中如果在建模的时候使用的单位和Unity默认单位(米)不同的话,便需要进行相应的缩放通常如果是场景类的模型如Terrain(地形),我们选择将模型的Position属性设为(0,0,0)这样将会对后面的脚夲编写和场景的搭建工作剩下时间。在简单地对模型进行拖动之后得到了如下效果的游戏场景。

此时搭建好的场景是静态的无法进行互动,我们需要进行相应脚本的编写以实现游戏的可操控性。如下图所示我们需要编写脚本的地方有3个,一个是蓝色的击球平台一個是粉色的击球平台,一个是蓝色的球

在这里,我们选择使用简单的AI来控制粉色的击球平台玩家控制蓝色的击球平台。从这些物体我們可以引申出以下三个问题:

如何移动玩家控制一方的击球平台;

如何控制电脑一方的击球平台;

首先是如何移动玩家的击球平台要解决这個问题,就需要确定一个输入方式在R游戏中有传统游戏中的使用手柄、键鼠输入,同时还有HTCie和OculusRift的动作捕捉但我们决定使用的输入方式昰GazeInput(凝视输入)。凝视输入的原理是通过在角色控制器的摄像头射出一条射线该射线代表玩家的视线,射线碰撞到的位置便是玩家目前凝视嘚位置

在实现方面,需要在场景中新建一个Quad物体与场景中的地面垂直,其宽度为玩家击球平台可以移动的范围其高度可以设置为1000甚臸更大。最后将该Quad的MeshRenderer关闭并调整其位置到玩家的击球平台的位置。然后我们需要对R中的SDK中的角色控制器进行相应的修改,由于该弹球遊戏中采用的是固定视角因此我们需要删除SDK中的角色控制器的RigidBody等组件,仅需要能跟随玩家头部运动的Camera即可找到角色控制器中的Camera,在其仩添加如下脚本RayCaster.cs:

在上述脚本中定义了一个射线和射线投影碰撞。当射线投影碰撞的对象是Quad的平面的时候获取碰撞点的x坐标(因只需移动彈球平台的X坐标所以只获取碰撞点的X坐标),并保存到hitPos变量中以便其他脚本调用。

在上述脚本中实现了通过获取MainCamera的RayCaster组件的碰撞点坐标來相应的移动弹球平台。

至此通过视线来控制玩家击球平台的功能已经完成。对于电脑控制的击球平台可以通过设定其平台的移动速喥来决定难度,通过预测弹球到达电脑方的位置来决定电脑移动平台的目标点在如何反弹弹球的问题上,我们使用Unity3D自带的物理引擎在彈球物体上增加RigidBody组件,将RigidBody的UseGraity选项取消选择同时将Drag和AngularDrag设为0和Constraint中的FreezePosition的Y选项勾选上。这样在游戏开始的时候,通过给弹球一个力来发球当彈球碰到场景和击球平台的Collider的时候便会进行相应的反弹。至此上面提出的三个问题解决完毕。

但以上三个问题都是显性的问题解决完這三个问题后便可以对游戏进行简单的操作,并不能完成真正意义上的游戏因为在游戏设计中,还有一些对象是隐性的没有实际的物體形态。这些对象有GameManager(游戏管理器)、StateMachine(状态机)和UserInterface(用户界面即UI)等

在游戏管理方面,GameManager下面有如下子Manager:AudioManager(负责游戏中音效的管理)、GameStatusManager(负责游戏的阶段状態管理)、ScoreManager(负责游戏计分的管理)和UIManager(负责游戏UI的管理)等以GameStatusManager为例,在不同的游戏阶段中可以进行的动作将会不同。如在游戏开始之前的准备階段和游戏结束阶段弹球平台和弹球不可以移动。在游戏开始之前的准备阶段需要对弹球和击球平台进行复位操作。

通过GameManager进行游戏管悝来编写游戏可以使程序更具有面向对象的特性,对于程序的修改、调试更为直观和方便从而减少BUG出现的几率。

关于R游戏中的UI大部汾Unity开发者在Unity4.6之后会倾向于选择官方的UGUI。在UGUI中UI的TEXT、Button和Image等组件均是Canas的子物体时才能正常工作。Canas的默认渲染模式是以屏幕空间为基准的然而茬R模式下,左右眼的视角均在一块屏幕中渲染由此会造成UI在整块屏幕上只渲染一次而非分别在左右眼的视角分别渲染。因此我们需要將Canas的RenderMode(渲染模式)调整为WorldSpace。这样整块UI画布便成为了游戏3D世界中的物体,由此可缩放拖动以放置到游戏中相应的位置。

至此整个游戏制作唍毕。但在发布游戏之前还需要一些不可或缺的工作,如添加ImageEffect视觉效果对游戏进行配乐和进行游戏的测试等,以此来提升游戏的品质

最后想要了解更多关于R/AR发展前景趋势,请关注扣丁学堂官网、微信等平台扣丁学堂IT职业在线学习教育平台为您提供学习系统,通过千鋒扣丁学堂金牌讲师在线录制的R/AR在线视频教程让你快速掌握R/AR从入门到精通开发实战技能。

【关注微信号获取更多的学习资料】

标签: R培训 R視频教程 R虚拟现实 R在线视频

}

我要回帖

更多关于 3D和VR 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信