1. 程式人生 > >Unity使用暴風魔鏡VR遊戲開發

Unity使用暴風魔鏡VR遊戲開發

@VR簡介

虛擬現實VR(Virtual Reality)和增強現實AR(Argument Reality)的概念其實在很多年前就已經出現,2015年下半年開始變得火熱,在各大媒體圈子中頻繁出現,而今年2016年成為VR元年,像Facebook、Sony、HTC、Google等行業巨頭都在虛擬現實領域推出自己的硬體裝置或者專門成立虛擬現實部門做出很大的投入。

虛擬現實首先在人機互動上發生了跨越性的改變,一方面使用遙控手柄代替傳統鍵盤滑鼠等輸入裝置,跟蹤玩家頭部,玩家可以通過頭部運動自然的以自由視角觀察整個虛擬世界,能夠720全視角觀看周邊環境,而在此之前,像觀看電影螢幕時,120度為最佳視角範圍,電影螢幕只是現實世界的一部分小視角,而虛擬現實技術強調的是玩家的“浸入感”,這也是評估VR裝置質量的最重要指標,眩暈感、與現實世界的差異感都是VR裝置努力避免的缺陷和努力改進之處。

目前雖然VR話題成為熱點,相關技術飛速發展,但其面臨的挑戰十分巨大,幾大公司研發的VR頭盔普遍很笨重,需要大量的線纜連線,移動性差,同時價格昂貴,短時間難以推廣開來。另一方面,像國內的低端VR裝置,如“暴風魔鏡”,利用手機螢幕做顯示裝置,移動性好,裝置輕便,價格便宜,但其實現的原理實際上是將手機螢幕分成兩部分,即犧牲一半的手機解析度,造成實際體驗中顆粒感強,“浸入感”也差,同時受幀率等因素影響眩暈感、眼睛不適感都很強,難以滿足人們的期望。

@暴風魔鏡開發流程

VR裝置中成本最低的屬國內的暴風魔鏡,最新的暴風魔鏡4代僅售199元人民幣,其世界第一的VR裝置銷量和其知名度主要是因為其體型輕便、價格便宜,成為很多遊戲玩家的掌上“玩具”。

暴風魔鏡為開發者提供了SDK和示例Demo,使開發者可迅速將暴風魔鏡加入到遊戲工程中作為VR輸入互動裝置,暴風魔鏡支援的遊戲引擎為Unity3d和UnrealEngine4,官方提供的開發文件介紹了魔鏡裝置的開發方法,支付SDK的接入以及引數的回撥、工程的配置等等。另外官方提供了暴風魔鏡遊戲應用釋出平臺,註冊開發者帳號並進行個人認證或企業認證之後便可以提交應用,稽核通過便可將應用進行釋出以及獲取利潤。

這裡使用暴風魔鏡SDK開發一個場景遊戲Demo,實現角色在場景中使用手柄控制自由走動,確認按鈕人物跳躍,以及跟蹤頭部運動以720度自由視角觀察場景和天空,並將Unity工程匯出Xcode工程,進行相關配置後執行在iPhone真機裝置上,使用暴風魔鏡進行體驗。

一、使用暴風魔鏡SDK實現Demo中第三人稱角色控制自由走動和自由視角的原理過程並打包在iPhone上執行:

         

可以直接改裝已有的第三人稱角色Demo也可以按照如下方式自行構建:

1.新建一個Unity工程,匯入MojingSDK For iOS AndroidUnity暴風魔鏡SDK包;

2.建立一個Scene場景,場景中匯入一個地形,設定好光源以及背景音樂等;

3.匯入一個人物角色模型,繫結骨骼,設定好狀態機人物動畫,動畫主要有休息、前進、跳躍,角色控制器實現上下左右控制人物前進、左轉、右轉、轉身,確認鍵控制人物跳躍。SDK提供的Demo中MojingThirdCharacterController預設已經實現了上面的功能以及監聽手機陀螺儀事件跟蹤使用者頭部運動實現自由視角;

4.設定好角色模型後要將場景中的MainCamera替換為MojingMain預設攝像頭,實際上是將左右兩個攝像頭繫結在一起,將螢幕分成左右兩部分;

5.另外加入IntegrateInputManager跨平臺互動預設和Overlay聚焦預設,IntegrateInputManager用於獲取手柄的按鍵事件,可以上下左右切換按鈕,按確認鍵選中觸發按鈕;Overlay預設元件實現場景中心的GazePointer射線準星,用於聚焦UI按鈕,聚焦按鈕後點擊確認鍵可以觸發按鈕點選事件;

完成以上步驟後執行Unity工程Game場景中出現兩個攝像頭視角的場景,鍵盤方向鍵可控制人物走動,但自由視角需要在真機上結合暴風魔鏡進行測試;

6.使用Unity打包前需要修改Player Setting設定,Graphic APIs修改為OpenGLES2和OpenGLES3,Tartget SDK可以選擇Xcode工程使用真機除錯還是模擬器除錯,這裡選擇Device SDK真機除錯;

7.打出Xcode工程之後需要在工程中新增libz.tbdlibsqlite3.tbd庫:


@另外真機執行可能會出現如下現象崩潰,解決辦法在下面的文章中:

二、暴風手柄輸入按鍵的適配與獲取(可以單獨作為遊戲輸入裝置使用):


使用手柄的輸入事件需要先將IntergrateInputManager預設新增到場景中,然後在指令碼中可以直接像Unity中Input.GetButtonDown(KeyCode)類似的方法獲取按鍵事件,SDK中已經進行了鍵值的適配,適配在指令碼中可以找到:


獲取事件的指令碼中需要引入:using MojingSample.CrossPlatformInput;

然後在Update周期函式中進行時間判斷,比如獲取按鍵按下:if(CrossPlatformInputManager.GetButtonDown("OK")){ }

例項指令碼如下:

//
//MojingInput.cs
//
// Created by [JiangXinhou]
//
// Copyright [email protected] (http://blog.csdn.net/cordova)
using UnityEngine;
using System.Collections;
using MojingSample.CrossPlatformInput;//引入暴風魔鏡跨平臺輸入類庫

public class MojingInput : MonoBehaviour {

	// Update is called once per frame
	void Update () {

		if (CrossPlatformInputManager.GetButtonDown ("LEFT")) {
			//十字鍵左鍵按下
		}
		if (CrossPlatformInputManager.GetButtonDown ("RIGHT")) {
			//十字鍵右鍵按下
		}
		if (CrossPlatformInputManager.GetButtonDown ("UP")) {
			//十字鍵上鍵按下
		}
		if (CrossPlatformInputManager.GetButtonDown ("DOWN")) {
			//十字鍵下鍵按下
		}

		if (CrossPlatformInputManager.GetButtonUp ("OK")) {
			//手柄OK鍵擡起
		}
		if (CrossPlatformInputManager.GetButtonUp ("C")) {
			//手柄返回鍵擡起
		}
		if (CrossPlatformInputManager.GetButtonUp ("MENU")) {
			//手柄選單鍵擡起
		}
		if (CrossPlatformInputManager.GetButtonUp ("CENTER")) {
			//十字鍵中心擡起
		}
		//獲取手柄搖桿水平擺動值
		float x = CrossPlatformInputManager.GetAxis("Vertical");
		//獲取手柄搖桿豎直襬動值
		float y = CrossPlatformInputManager.GetAxis("Horizontal");
	}
}

@目前工作暫時不涉及VR相關,不能更新了~

相關推薦

Unity使用暴風VR遊戲開發

@VR簡介虛擬現實VR(Virtual Reality)和增強現實AR(Argument Reality)的概念其實在很多年前就已經出現,2015年下半年開始變得火熱,在各大媒體圈子中頻繁出現,而今年2016年成為VR元年,像Facebook、Sony、HTC、Google等

Android手機與vr互動暴風3D效果顯示原理

首先講到VR,談談個人體會,半年前看到淘寶上的vr眼鏡盒為了促銷標題圖片都是非常性感的,還有海量你懂得資源。到最近在淘寶搜尋vr暴風魔鏡都正規了,而且銷售量龐大 還有新聞上很多vr的科技前沿資訊可以看出來。vr技術隨時間的流逝正在日益發展成熟,就像曾經的諾基亞到安卓,蘋

Unity下使用暴風SDK通過頭部和手柄控制字型拼湊

最近在做一個模組,要求使用暴風魔鏡SDK通過頭部和手柄控制字型拼湊,注意不是筆劃的書寫哦,以為用頭來控制寫字實在是太奇怪了...... 以“鳥”字為例,其他的字也可以,只需設定好模板上筆劃應到的位置,以及按順序給筆劃編號如1,2,3....即可。效果如下,肯定不完美,但還是

Unity使用UGUI進行VR遊戲的介面開發

我不知道有多少同學是跟我一樣,在開發VR遊戲中,是使用的面片或者模型來做的UI介面,響應簡單的射線點選或者碰撞事件,來做的一些互動。但是如果想實現一個滾動文字或者滑動條的控制元件,就顯得比較麻煩。後來有同學跟我討論過是否可以使用UGUI來做VR遊戲介面,當時考慮到UGUI的3

2018VR眼鏡評測推薦:UGP VR眼鏡和暴風哪個好?選哪種看完你就知道了!

不知不覺UGP VR已名聲遠揚,作為國內普及度最高的移動端VR裝置,其與暴風魔鏡到底區別在哪裡?哪個更值得購買呢?下面我們就來做一下深度的介紹,為你的購買引路 毫無疑問,移動端VR將是未來的大勢,其無拘無束的沉浸體驗受到廣大玩家的推崇,雖然沒有外接式的VR高品

優化移動端vr遊戲開發五大技巧

開發 irf 移動端 ati cbe 換上 比對 中一 rcp 我點點頭“很強悍啊,中國區的第一法師非你莫屬了,80級之後再裝備上破冰法袍和冰火之杖,魔法攻擊力了不得啊!” 半分鐘的時間,冰雨降息,在我們周圍大片區域內剩余的怪物已經不到一百個了,全部都是殘血,遠處未被波及的

走進VR遊戲開發的世界

注: 原文2016年2月發表於公司內部社群, 最近才由同事轉載出來, 刪去了文中引用的一些內部文章和視訊. 在這裡我也只是把外網版本轉過來, 留做備份. 背景介紹我們組在2014年下半年嘗試開發了一款 XboxOne 平臺的體感遊戲, 2015年上半年進行收尾工作的同時, 結

從零開始丨使用Unity3D進行VIVE VR遊戲開發

帶上你的VR裝置,執行這些場景就開始你的VR體驗之旅了。 使用SteamVR外掛預製開始VR的旅程 下面這一節將會教各位同學打造自己的VR場景,這一節是非常非常簡單的,簡單到我用一句話就能講完,不信?我們來試試。 新建一個場景或者開啟一個已有的場景,將SteamVR/Prefabs/[C

Unity設計模式之-Unity3d遊戲開發設計模式之子類沙盒模式

** 請關注微信公眾號獲取最新訊息 ** 原文連結:http://blog.csdn.net/u013108312/article/details/52208635 本篇文章我們來看下Unity3d遊戲開發設計模式之子類沙盒模式,下面開始,積累提

360全景漫遊(unity3d + 暴風

話不多說,直接開始。。。。。。。。。 1:開啟unity,將主攝像機刪除掉,找到MojingMain.prefab,新增到場景中 2:建立Sphere。 3:建立材質球,Shader設定為 Mobile/Particles/Alpha Blened,新增全景圖 4:搜尋In

Unity實戰 RTS3D即時戰略遊戲開發(二)

     大家好,我是Zander,我們接著來開發Rts3D即時戰略性遊戲,本次所需要的資源大家可以在上篇文章所給的連結中下載。      首先、我們要在下載好的工程包中找到Scenes資料夾並開啟RTSMap場景。      然後 、我們來建立玩家和敵人的出生點位置,如圖

Unity實戰 RTS3D即時戰略遊戲開發(三)

     大家好,我是Zander,我們接著來開發Rts3D即時戰略遊戲開發。上一章我們為場景添加了Manager,以及玩家初始化資訊。 下面我們來完成以下功能:導航網格的設定、攝像機的操控、以及製作單位預設。      在 遊戲中,我們需要限制玩家的可到達區域,不能到山上

Unity實戰 RTS3D即時戰略遊戲開發(十一) 單位生產

      大家好,我是Zander,我們接著來開發Rts3D即時戰略遊戲開發。在 遊戲中我們要建築也能生產無人機,這一章我們就來實現一下具體操作。       首先在Actions資料夾下建立CreateUnitAction指令碼並編輯,如下:using UnityEng

Unity遊戲開發】淺談Unity遊戲開發中的單元測試

可靠 屬於 sin 自定義類型 允許 ogr 兩個 階段 ast 一、單元測試的定義與作用   單元測試定義:單元測試在傳統軟件開發中是非常重要的工具,它是指對軟件中的最小可測試單元進行檢查和驗證,一般情況下就是對代碼中的一個函數去進行驗證,檢查它的正確性。一個單元測試是

Unity遊戲開發之“屏幕截圖”

texture apt 項目 一個 art error topn details camera2 下面是我總結的、在u3d中的,三種截屏方法:1、使用Application類下的CaptureScreenshot方法。void CaptureScreen() { Ap

寫給使用Unity進行遊戲開發的建議

知新樹 寧金峰Unity是一款非常流行的遊戲開發軟件。它的功能令人印象深刻,也能夠適應不同的遊戲開發要求。遊戲開發人員可以使用Unity創建任意類型的遊戲,從世界級的RPG遊戲到最受歡迎的增強現實遊戲Pokemon Go。此外,許多初學者通用Unity來學習遊戲開發或遊戲編程。 Unity的真正影響更加多樣化

【Android開發VR實戰】三.開發一個尋寶類VR遊戲TreasureHunt

eno ica obj @override github abs cardboard ast you 轉載請註明出處:http://blog.csdn.net/

Unity遊戲開發】AssetBundle雜記--AssetBundle的二三事

比較 streaming 指定 但是 chunk 加載 公司 prefab 方法 一、簡介   馬三在公司大部分時間做的都是遊戲業務邏輯和編輯器工具等相關工作,因此對Unity AssetBundle這塊的知識點並不是很熟悉,自己也是有打算想了解並熟悉一下AssetBun

劉國柱- Unity遊戲開發深度學習 系列課程福利大放送

Unity課程送書 Unity套餐課程 Unity遊戲深度學習 Unity最新書籍贈送 Unity專題課程 劉國柱--Unity遊戲開發深度學習 系列課程福利大發送!不單優惠, 還送Unity最新版本必備實戰書籍! HI, 各位熱心的Unity愛好者與學員,《Unity3D/2D 遊戲開

2.GUI控件的使用 --《UNITY 3D 遊戲開發》筆記

div info art color text tar scrip 寬高 執行 1.Label 控件 編寫腳本文件,直接綁定在main camera上 public class labelScript : MonoBehaviour { //設定一個值來接收外部