国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【unity】Pico VR 開(kāi)發(fā)筆記(基礎(chǔ)篇)

這篇具有很好參考價(jià)值的文章主要介紹了【unity】Pico VR 開(kāi)發(fā)筆記(基礎(chǔ)篇)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

Pico VR 開(kāi)發(fā)筆記(基礎(chǔ)篇)

XR Interaction Tooikit 版本 2.3.2

一、環(huán)境搭建

其實(shí)官方文檔已經(jīng)寫(xiě)的很詳細(xì)了,這里只是不廢話快速搭建,另外有一項(xiàng)官方說(shuō)明有誤的,補(bǔ)充說(shuō)明一下,在開(kāi)發(fā)工具部分說(shuō)明

插件安裝——安裝pico的sdk和XR Interaction Tooikit

環(huán)境配置——在場(chǎng)景里添加頭顯和手柄,并進(jìn)行配置和項(xiàng)目配置

開(kāi)發(fā)工具——Pico提供的串流開(kāi)發(fā)工具,可以在不打包的情況的,使用手柄和頭顯進(jìn)行調(diào)試。

1、插件安裝

pico SDK安裝

pico SDK下載地址:SDK - PICO 開(kāi)發(fā)者平臺(tái) (pico-interactive.com)

SDK下載后解壓

打開(kāi)unity→Window→PackgeManager→Add Package From disk(左上角+)→選擇解壓后文件里的package.json

【unity】Pico VR 開(kāi)發(fā)筆記(基礎(chǔ)篇),unity,vr,筆記

XR Interaction Tooikit安裝

在packgeManager里搜索XR Interaction Tooikit

【unity】Pico VR 開(kāi)發(fā)筆記(基礎(chǔ)篇),unity,vr,筆記

選擇版本盡量高版本,不要低于2.1.0。

打開(kāi)Samples 面板,導(dǎo)入 Starter Assets、**XR Device Simulater **和 Tunneling Vignette。

2、環(huán)境配置

場(chǎng)景配置

添加XR Origin:Hierarchy→Add(左上角+)→XR→XR Origin(VR)

手柄設(shè)置

  1. 選中Hierarchy的XR Origin子物體LeftHand Controller

  2. 配置LeftHand Controller的控件XR Controller,點(diǎn)擊在右上角的預(yù)設(shè),選擇XRI Default Left Controller (右手柄同樣配置,選擇XRI Default Right Controller )

    【unity】Pico VR 開(kāi)發(fā)筆記(基礎(chǔ)篇),unity,vr,筆記

  3. 選擇手柄模型,在XR Controller的Model Prefab選擇LeftControllerModel(Tranform)

    【unity】Pico VR 開(kāi)發(fā)筆記(基礎(chǔ)篇),unity,vr,筆記

打包設(shè)置

【unity】Pico VR 開(kāi)發(fā)筆記(基礎(chǔ)篇),unity,vr,筆記

選擇:Edit→Player→settings for Android→other Setting

Minimum API Level 選擇Android 10.0

Target API Level 選擇Automatic(Highest installed)

Scripting Backend 選擇IL2CPP

勾選ARM64

【unity】Pico VR 開(kāi)發(fā)筆記(基礎(chǔ)篇),unity,vr,筆記

選擇:Edit→Project Settings→XR Plug-in Management→Android Standalone Settings→選擇PICO

3、開(kāi)發(fā)工具

SDK安裝

下載地址:SDK - PICO 開(kāi)發(fā)者平臺(tái) (PICO Unity Live Preview Plugin)

SDK下載后解壓

打開(kāi)unity→Window→PackgeManager→Add Package From disk(左上角+)→選擇解壓后文件里的package.json

【unity】Pico VR 開(kāi)發(fā)筆記(基礎(chǔ)篇),unity,vr,筆記

windows下載客戶(hù)端

下載地址:SDK - PICO 開(kāi)發(fā)者平臺(tái) (PICO Developer Center)

在本地安裝后會(huì)安裝steam串流工具

為一體機(jī)開(kāi)啟開(kāi)發(fā)者模式

  1. 開(kāi)啟 PICO VR 一體機(jī)。
  2. 前往 設(shè)置 > 通用。
  3. 射線對(duì)準(zhǔn) 設(shè)置 字段并連續(xù)點(diǎn)擊多次,直到左側(cè)導(dǎo)航欄下方出現(xiàn) 開(kāi)發(fā)者 選項(xiàng)。
  4. 點(diǎn)擊 開(kāi)發(fā)者,進(jìn)入開(kāi)發(fā)者選項(xiàng)界面。
  5. 打開(kāi)右上角的 USB 調(diào)試開(kāi)關(guān)。

*這里官方文檔有誤,開(kāi)啟開(kāi)發(fā)者模型要多次點(diǎn)擊設(shè)置鍵

項(xiàng)目設(shè)置

【unity】Pico VR 開(kāi)發(fā)筆記(基礎(chǔ)篇),unity,vr,筆記

選擇:Edit→Project Settings→XR Plug-in Management→ PC Standalone Settings→選擇 PICO Live Preview

二、開(kāi)發(fā)

1、手柄輸入

得到手柄

    InputDevice deviceLeft;//左手柄
    InputDevice deviceRight;//右手柄
    private void Start()
    {
        deviceLeft = InputDevices.GetDeviceAtXRNode(XRNode.LeftHand);
        deviceRight = InputDevices.GetDeviceAtXRNode(XRNode.RightHand);
    }

手柄觸發(fā)核心方法 TryGetFeatureValue

手柄扳機(jī)鍵觸發(fā)

    /// <summary>
    /// 扳機(jī)鍵
    /// </summary>
    /// <param name="inputDevice">手柄</param>
    /// <param name="action">觸發(fā)委托</param>
    /// <param name="Value">觸發(fā)參數(shù)</param>
    void triggerButton(InputDevice inputDevice, ref bool Value, Action action)
    {
        if (inputDevice.TryGetFeatureValue(CommonUsages.triggerButton,out Value)&&Value)
        {
            action();
        }
    }

扳機(jī)鍵力度

    /// <summary>
    /// 扳機(jī)鍵力度
    /// </summary>
    /// <param name="inputDevice">手柄</param>
    /// <param name="action">觸發(fā)委托</param>
    /// <param name="Value">觸發(fā)參數(shù)</param>
    void trigger(InputDevice inputDevice, ref float Value, Action<float> action)
    {
        if (inputDevice.TryGetFeatureValue(CommonUsages.trigger, out Value)&& !Value.Equals(0))
        {
            action(Value);
        }
    }

抓握鍵

    /// <summary>
    /// 抓握鍵
    /// </summary>
    /// <param name="inputDevice"></param>
    /// <param name="action"></param>
    /// <param name="Value"></param>
    void gripButton(InputDevice inputDevice, ref bool Value, Action action)
    {
        if (inputDevice.TryGetFeatureValue(CommonUsages.gripButton, out Value) && Value)
        {
            action();
        }
    }

抓握鍵力度

    /// <summary>
    /// 抓握鍵力度
    /// </summary>
    /// <param name="inputDevice"></param>
    /// <param name="action"></param>
    /// <param name="Value"></param>
    void grip(InputDevice inputDevice, ref float Value, Action<float> action)
    {
        if (inputDevice.TryGetFeatureValue(CommonUsages.grip, out Value) && !Value.Equals(0))
        {
            action(Value);
        }
    }

搖桿方向

    /// <summary>
    /// 搖桿方向
    /// </summary>
    /// <param name="inputDevice"></param>
    /// <param name="action"></param>
    /// <param name="Value"></param>
    void primary2DAxis(InputDevice inputDevice, ref Vector2 Value, Action<Vector2> action)
    {
        if (inputDevice.TryGetFeatureValue(CommonUsages.primary2DAxis, out Value) && !Value.Equals(Vector2.zero))
        {
            action(Value);
        }
    }

搖桿

    /// <summary>
    /// 搖桿
    /// </summary>
    /// <param name="inputDevice"></param>
    /// <param name="Value"></param>
    /// <param name="action"></param>
    void primary2DAxisClick(InputDevice inputDevice, ref bool Value, Action action)
    {
        if (inputDevice.TryGetFeatureValue(CommonUsages.primary2DAxisClick, out Value) && Value)
        {
            action();
        }
    }

X/A

    /// <summary>
    /// X/A
    /// </summary>
    /// <param name="inputDevice"></param>
    /// <param name="Value"></param>
    /// <param name="action"></param>
    void primaryButton(InputDevice inputDevice, ref bool Value, Action action)
    {
        if (inputDevice.TryGetFeatureValue(CommonUsages.primaryButton, out Value) && Value)
        {
            action();
        }
    }

Y/B

    /// <summary>
    /// Y/B
    /// </summary>
    /// <param name="inputDevice"></param>
    /// <param name="Value"></param>
    /// <param name="action"></param>
    void secondaryButton(InputDevice inputDevice, ref bool Value, Action action)
    {
        if (inputDevice.TryGetFeatureValue(CommonUsages.secondaryButton, out Value) && Value)
        {
            action();
        }
    }
2、射線

得到射線的方法

XRRayInteractor.TryGetCurrent3DRaycastHit(out hit)

XRRayInteractor是手柄上掛載的XRRayInteractor腳本。

【unity】Pico VR 開(kāi)發(fā)筆記(基礎(chǔ)篇),unity,vr,筆記

Demo

    public XRRayInteractor rayInteractor;
    RaycastHit hit;
    Vector3 getRayPoint()
    {
        if (rayInteractor.TryGetCurrent3DRaycastHit(out hit))
        {
           
            string name = hit.collider.name;
            Debug.Log(name);
            return hit.point;
        }
        else
        {
            return Vector3.zero;
        }
    }

補(bǔ)充設(shè)置

射線的類(lèi)型

類(lèi)型 說(shuō)明
Staight Line 直線
Projectile Curve 拋物線
Bezier Curve 貝塞爾曲線

修改方法

 rayInteractor.lineType = XRRayInteractor.LineType.ProjectileCurve;

不同類(lèi)型的射線還有自己的參數(shù)可以修改,比如Stailght Line的MaxRaycastDistance(最遠(yuǎn)射線距離)和ProjectileCurve的Additional Flight Time(射線飛行時(shí)間)都可以直接賦值。

有效射線和無(wú)效射線

當(dāng)射線觸碰到可觸發(fā)的UI或者模型時(shí),射線為有效射線,反饋則是使用了ValidColorGradient。否則是使用InvalidColorGradient。

【unity】Pico VR 開(kāi)發(fā)筆記(基礎(chǔ)篇),unity,vr,筆記

無(wú)效射線和有效射線觸碰到有碰撞的模型時(shí)同樣可以返回RaycastHit,區(qū)別在XR射線本身的設(shè)置上,比如碰撞Reticle。

實(shí)現(xiàn)有效碰撞,需要另外在模型上添加Tracked Device Physics Raycaster腳本等

Reticle (十字線)

Reticle 是射線和模型(UI)碰撞的點(diǎn)。

【unity】Pico VR 開(kāi)發(fā)筆記(基礎(chǔ)篇),unity,vr,筆記

添加方法:

在手柄的上找到XR Interactor Line Visual腳本,創(chuàng)建Reticle 預(yù)制體后直接添加上。

3、UI觸發(fā)

觸發(fā)條件

手柄射線要觸發(fā)到UI,在完成VR基礎(chǔ)場(chǎng)景搭建的前提下,需要掛載兩個(gè)腳本。

在Canvas上增加Tracked Device Graphic Raycaster

替換EventSystem上的Standalone Input Module為XR UI Input Module(模型上添加的Tracked Device Physics Raycaster腳本也是受XR UI Input Module影響的)

注意事項(xiàng)

Canvas的Order in Layer 最好設(shè)置為負(fù)值。如果為0或者正值,十字線可能會(huì)被UI遮擋。

【unity】Pico VR 開(kāi)發(fā)筆記(基礎(chǔ)篇),unity,vr,筆記

為0時(shí)

【unity】Pico VR 開(kāi)發(fā)筆記(基礎(chǔ)篇),unity,vr,筆記

為-1時(shí)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-621631.html

到了這里,關(guān)于【unity】Pico VR 開(kāi)發(fā)筆記(基礎(chǔ)篇)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Pico VR眼鏡(XR) Unity開(kāi)發(fā)環(huán)境部署及打包教程,包含瞬間移動(dòng)、轉(zhuǎn)向等基本操作配置

    Pico VR眼鏡(XR) Unity開(kāi)發(fā)環(huán)境部署及打包教程,包含瞬間移動(dòng)、轉(zhuǎn)向等基本操作配置

    創(chuàng)建項(xiàng)目 我這里選擇的是URP項(xiàng)目。URP對(duì)移動(dòng)端性能比較友好,另外VR平臺(tái)也不支持HDRP渲染管線。 然后進(jìn)入unity工具欄-File - Build Settings 點(diǎn)擊 Android后,點(diǎn)就Switch Platform將項(xiàng)目轉(zhuǎn)為Android項(xiàng)目 安裝依賴(lài)包 在unity的工具欄中點(diǎn)擊Window-Package Manager,打開(kāi)包管理器 如圖將package來(lái)源設(shè)置

    2024年02月03日
    瀏覽(35)
  • Unity PICO VR 入門(mén)(一)-Unity導(dǎo)入PICO SKD-PICO Unity Integration SDK

    Unity PICO VR 入門(mén)(一)-Unity導(dǎo)入PICO SKD-PICO Unity Integration SDK

    基于官方教程PICO開(kāi)發(fā)者文檔 建議unity 2020.3.48或者更高,并且安裝安卓適配,PICO3及以上使用 安裝插件SDK Windows Package Manager//插件菜單 在 Package Manager 窗口中,點(diǎn)擊 + Add package from disk。 選擇 解壓好的SDK文件夾中的package.json 文件并導(dǎo)入。Unity PICO SDK下載 不需要賬號(hào)key也可以安裝

    2024年01月19日
    瀏覽(22)
  • 【PICO】【Unity】【VR】如何對(duì)打包后的PICO項(xiàng)目有效Debug

    【PICO】【Unity】【VR】如何對(duì)打包后的PICO項(xiàng)目有效Debug

    PICO項(xiàng)目打包后再運(yùn)行就看不到Console了。當(dāng)然,會(huì)有各類(lèi)專(zhuān)業(yè)的Debug工具。 有一類(lèi)Debug的工具是Preview形式下展示Debug信息,但是發(fā)現(xiàn)Preview成功不見(jiàn)得打包也成功。 打包后也會(huì)有一些Debug工具,不過(guò)這里我給出自己的簡(jiǎn)單解決辦法。 Unity Console的Debug是展示信息,所以我們也在游

    2024年01月21日
    瀏覽(26)
  • Unity3D Pico VR 手勢(shì)識(shí)別

    Unity3D Pico VR 手勢(shì)識(shí)別

    視頻鏈接 本文章使用的 Unity3D版本: 2021.3.6 ,?Pico SDK 230 ,Pico? OS v.5.7.1 硬件Pico 4 Pico SDK可以去Pico官網(wǎng)下載SDK 第一步:創(chuàng)建Unity3D項(xiàng)目 第二步:導(dǎo)入 PICO Unity Integration SDK ????????選擇 Windows Package Manager。 ????????在 Package Manager 窗口中,點(diǎn)擊 + Add package from disk。 第三步:

    2024年02月11日
    瀏覽(22)
  • Unity3D Pico VR 手勢(shì)識(shí)別 二

    Unity3D Pico VR 手勢(shì)識(shí)別 二

    Unity3D Pico VR 手勢(shì)識(shí)別_Cool-浩的博客-CSDN博客 此篇主要講解怎么手勢(shì)追蹤,手勢(shì)姿態(tài)自定義預(yù)制識(shí)別,不會(huì)導(dǎo)入SDK和配置環(huán)境的請(qǐng)看上一章節(jié) SDK 版本:2.3.0 及以上 PICO 設(shè)備型號(hào):PICO Neo3 和 PICO 4 系列 PICO 設(shè)備系統(tǒng)版本:5.7.0 及以上 PICO SDK 的 “手勢(shì)追蹤” 功能遵循 OpenXR 標(biāo)準(zhǔn)

    2024年02月10日
    瀏覽(26)
  • 【Unity】VR基礎(chǔ)開(kāi)發(fā)2項(xiàng)目準(zhǔn)備-VR基本場(chǎng)景構(gòu)建(OpenXR方向)

    稍等一會(huì)兒,編輯器界面就出現(xiàn)了。有可能你的界面布局會(huì)有所不同,可以在右上角點(diǎn)擊布局,選擇Tall,布局切換后在來(lái)到左邊窗口的左上角,將Game選項(xiàng)卡拖放到下方Dock,這樣就可以得到和我一樣的布局了。 簡(jiǎn)單介紹一下。 場(chǎng)景面板是對(duì)游戲進(jìn)行可視化編輯的地方。 Hie

    2024年02月07日
    瀏覽(22)
  • 【vr】【unity】白馬VR課堂系列-VR開(kāi)發(fā)核心基礎(chǔ)05-主體設(shè)置-手柄對(duì)象的引入和設(shè)置

    【vr】【unity】白馬VR課堂系列-VR開(kāi)發(fā)核心基礎(chǔ)05-主體設(shè)置-手柄對(duì)象的引入和設(shè)置

    【白馬VR課堂系列-VR開(kāi)發(fā)核心基礎(chǔ)05-主體設(shè)置-手柄對(duì)象的引入和設(shè)置】 https://www.bilibili.com/video/BV19D4y1N73i/?share_source=copy_webvd_source=7f5c96f5a58b7542fc6b467a9824b04e 上一節(jié)引入了XR Origin并進(jìn)行了初步設(shè)置,運(yùn)行測(cè)試時(shí)VR場(chǎng)景中的玩家視野已經(jīng)可以跟隨頭盔了。 這一節(jié)來(lái)了解如何將手柄

    2024年02月05日
    瀏覽(26)
  • 【unity】【VR】白馬VR課堂系列-VR開(kāi)發(fā)核心基礎(chǔ)04-主體設(shè)置-XR Rig的引入和設(shè)置

    【unity】【VR】白馬VR課堂系列-VR開(kāi)發(fā)核心基礎(chǔ)04-主體設(shè)置-XR Rig的引入和設(shè)置

    接下來(lái)我們開(kāi)始引入并構(gòu)建XR Rig。 你可以將XR Rig理解為玩家在VR世界中的替身。 我們先刪除Main Camera,在Hierarchy右鍵點(diǎn)擊刪除。 然后再在場(chǎng)景層右鍵選擇XR下的XR Origin。這時(shí)一個(gè)XR Origin對(duì)象就被添加到了Hierarchy。 重設(shè)XR Origin的Position和Rotation為原點(diǎn)。 可以注意到這個(gè)XR Origin對(duì)

    2024年02月06日
    瀏覽(19)
  • Unity之OpenXR+XR Interaction Toolkit接入Pico VR一體機(jī)

    Pico VR 一體機(jī)是目前國(guó)內(nèi)比較流行的VR設(shè)備之一,PICO成立于2015年3月,于2021年9月并入字節(jié)跳動(dòng)。最新推出的Pico4一體機(jī)售價(jià)只有2400左右,這讓很多家庭都入手了Pico設(shè)備,VR一體機(jī)的功能包括:VR全景視頻,VR運(yùn)動(dòng),VR游戲等等。我們今天就來(lái)通過(guò)Unity最新的OpenXR標(biāo)準(zhǔn)來(lái)接入Pico

    2024年02月04日
    瀏覽(30)
  • PICO4開(kāi)發(fā)實(shí)戰(zhàn)一:節(jié)奏光劍(VR)(需求文檔)

    PICO4開(kāi)發(fā)實(shí)戰(zhàn)一:節(jié)奏光劍(VR)(需求文檔)

    目的:配置PXR環(huán)境,并借助Unity自帶的基礎(chǔ)模型搭建一個(gè)簡(jiǎn)單的場(chǎng)景?;谠搱?chǎng)景實(shí)現(xiàn)方塊生成、移動(dòng)和方塊和光劍的交互(光劍碰到方塊則將方塊銷(xiāo)毀)。 1、V1版本完成頁(yè)面 2、V1基本功能需求介紹 (1)配置PXR基礎(chǔ)環(huán)境創(chuàng)建XR Origin并 綁定光劍 (2)環(huán)境搭建 一共六個(gè)物體:

    2024年02月15日
    瀏覽(32)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包