简体中文 | English

现有Unity3D游戏的VR移植

简介

本教程将讲解如何把Unity3D官方射击游戏demo《AngryBots》改造成VR游戏。 这个游戏原本是一个第三人称射击游戏,我们将其改造成一个第三人称VR游戏。另外我们为了得到更加沉浸的VR体验,还能将其改造成一个第一人称的VR游戏。

准备工作

开始前的环境搭建:安装大朋助手,并将E2设备切换至deepoon模式(详细配置方法见《Deepoon Unity Integration Guide》,下载此文档查看。)

(1)打开Unity3d(推荐版本4.6.5,5.2.3),点击“File->Open Project”找到《AngryBots》游戏工程(安装完Unity3D以后,系统默认把此工程放在“C:\Users\Public\Documents\Unity Projects\4-0_AngryBots”),切换到“AngryBots”这个场景。

 

 

(2)选择File->Build Settings 打开设置选项,将PC,MAC&Linux Standalone->Player Settings->Other Setting->Use Direct3D 11 勾选上(Deepoon E2PC上用到了DX11),如下图:

 

(3)导入大朋Unity3d插件(插件下载地址:http://developer.deepoon.com/index/sdkinfo?type=unity

 

 

需要特别注意,package存放路径不能有中文!!!如下图:

 

 第三人称改造

将“DPN”文件夹展开,把“DPN/Prefabs/”目录下的“DpnCameraRig”拖拽到Hierarchy下的“Main Camera”物体,将“DpnCameraRig”作为“Main Camera”的子物体,如下图:

 

完成操作后如下图:

 

再把Main Camera camera component去掉,如下图:

 

保存项目,就完成了简单的移植。点击“播放”,启动以后,就可以戴上大朋E2开始你的VR体验了。

第一人称改造

与第三人称不同,第一人称的位移和旋转必须以实际体验的玩家视角为主。下面将进行一些修改。

(1)把“DPN/Prefabs/”目录下的“DpnCameraRig”拖拽到Hierarchy,并将“DpnCameraRig”的Position设置为-4.42,3.1,10.18,如下图:

 

2)把Player拖拽到“DpnCameraRig”作为“DpnCameraRig”的子物体,并将PlayerPositionRatation都设置为0,0,0

 

 

 

(3)打开Assets/Scripts/Movement/PlayerMoveController.js,将167-190行代码全部注释掉(这段代码的作用是,Player会根据鼠标的实时位置调整角度)

 

然后,新建一个C# 脚本“FollowVRCamera.cs”,添加如下代码:

using UnityEngine;

using System.Collections;

public class FollowVRCamera : MonoBehaviour {

GameObject cam;

// Use this for initialization

void Start () 

{

cam = GameObject.Find ("DpnCameraRig/TrackingSpace/CenterEyeAnchor");

}

// Update is called once per frame

void Update () 

{

this.transform.localEulerAngles= cam.transform.localEulerAngles;

Vector3 TX = Input.GetAxis ("Vertical") * Time.deltaTime * Vector3.forward*3;

Vector3 TY = Input.GetAxis ("Horizontal") * Time.deltaTime * Vector3.right*2;

//TX.y = TY.y = 0;

this.transform.Translate (TX);

this.transform.Translate (TY);

}

}

并把此脚本添加到Player物体上,实现Player的视角跟随体验着的视角

 在这一步,点击播放就可以看到跟随的效果了。

 

(4)隐藏Player角色,只保留“枪”。

由于第一人称的视觉体验,接下来将演示如何隐藏Player角色,保留“枪”。选中Player/player/main_player_lorez,将main_player_lorez的“Skinned Mesh Renderer”勾选掉,如下图:

 选中Player/player,将AnimationPlayer Animation脚本勾选掉,如下图:

 

 (5)添加VR Camera位置跟随

 新建“FollowTranslate.cs”脚本,并添加到“DpnCameraRig/TrackingSpace”上面

 

 脚本代码如下:

 using UnityEngine;

using System.Collections;

public class FollowTranslate : MonoBehaviour {

GameObject player;

Vector3 posPlayer;

// Use this for initialization

void Start () 

{

player = GameObject.Find ("DpnCameraRig/Player");

posPlayer= player.transform.localPosition;

this.transform.Translate (0,1f,0);

}

// Update is called once per frame

void Update () 

{

this.transform.Translate(player.transform.localPosition-posPlayer);

posPlayer= player.transform.localPosition;

}

}

 最后,再去掉Main Cameracamera component,如下图

 

 就完成了第一人称的改造了,点击播放试试效果吧。

 

 

 

Copyright © 2015deepoon.com,All Rights Reserved 沪ICP备15019466号-1 上海乐相科技有限公司