当前位置: > 论文中心 > 计算机论文 >

基于Unity3D的虚拟校园漫游的设计与实现(2)

时间:2015-03-16 11:20 点击:
图1 虚拟校园开发流程图 1.2 开发过程中的关键技术 1.2.1 漫游功能的实现 漫游功能是实现数字化校园的关键, 交互是实现漫游的方式. 基本的人机交互方式,例如人物行走,需要采用鼠标点击前进、后退、左转、右转、

  图1 虚拟校园开发流程图
  1.2 开发过程中的关键技术
  1.2.1 漫游功能的实现
  漫游功能是实现数字化校园的关键, 交互是实现漫游的方式. 基本的人机交互方式,例如人物行走,需要采用鼠标点击前进、后退、左转、右转、跳跃等功能,在Unity3D中可以以WSAD实现,代码在FPScontral.js脚本文件中,其关键代码如下:
  var Speed=5;
  var RotateSpeed=20;
  function Update () {
  if(Input.GetKey(KeyCode.W)){transform.Translate( Vector3.forward*  Time.deltaTime * Speed);
  if(Input.GetKey(KeyCode.S)){transform.Translate( Vector3.forward*  Time.deltaTime * -Speed);
  if(Input.GetKey(KeyCode.A)){transform.Translate( Vector3.up*  Time.deltaTime * RotateSpeed);
  if(Input.GetKey(KeyCode.D)){transform.Translate( Vector3.up*  Time.deltaTime * - RotateSpeed);}
  }
  另一种重要的交互功能是GUI界面设计,在虚拟校园中,需要场景的跳转,如图2所示,根据选择进入场景,实现相应的漫游模式。核心代码如下:
  function OnGUI(){
   GUI.Label(Rect(280,150,400,200),str);
   if(GUI.Button(Rect(250,320,100,25),"进入校园"))
  {
  Application.LoadLevel("xishiyou02");
   }
   if(GUI.Button(Rect(600,320,100,25),"退出系统")){
   Application.Quit();
   }
  }
  图2 场景切换界面
  1.2.2 碰撞检测设计
   碰撞检测[11-12]是模拟现实环境中的人物及物体在遇到障碍物时发生的本能反应,例如,当角色遇到墙壁,如果没有设计碰撞检测,则角色会出现穿墙而 过的失真现象,在现实中,应该是当发现墙壁与角色存在一定距离时,则需要停止前进。在这种情况下,设计人员需要添加碰撞检测函数。碰撞检测实现及性能是整 个数字校园漫游的性能指标之一。Unity3d开发平台默认给每个对象(GameObject)添加一个碰撞组件 (ColliderComponent),一些背景对象则可以取消该组件。在unity3d中,能检测碰撞发生的方式有两种,一种是利用碰撞器,另一种则 是利用触发器。这两种方法应用都非常广泛。
  在Unity3d中,主要有以下接口函数来处理这两种碰撞检测:
  触发信息检测:
  1)MonoBehaviour.OnTriggerEnter( Collider other )当进入触发器
  2)MonoBehaviour.OnTriggerExit( Collider other )当退出触发器
  3)MonoBehaviour.OnTriggerStay( Collider other )当逗留触发器

   论文榜(www.zglwb.com),是一个专门从事期刊推广、投稿辅导的网站。
本站提供如何投稿辅导,寻求投稿辅导代理,快速投稿辅导,投稿辅导格式指导等解决方案:省级投稿辅导/国家级投稿辅导/核心期刊投稿辅导//职称投稿辅导。


栏目列表
联系方式
推荐内容
 
QQ在线咨询
投稿辅导热线:
189-6119-6312
微信号咨询:
18961196312