中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

網(wǎng)站開發(fā)即時(shí)聊天源碼百度搜索指數(shù)排行榜

網(wǎng)站開發(fā)即時(shí)聊天源碼,百度搜索指數(shù)排行榜,網(wǎng)站建設(shè)做網(wǎng)站需要多少錢,網(wǎng)站衣服模特怎么做目錄 一.概述 二.功能實(shí)現(xiàn) 1.模型抓取 1)基礎(chǔ)抓取腳本 2)抓取物體在手柄上的角度 2.模型放置區(qū)域高亮并吸附 1)VRTK_SnapDropZone 2)VRTK_PolicyList 3)VRTK_SnapDropZone_UnityEvents 3.交互滑動(dòng)條 4.交互旋…

目錄

一.概述

二.功能實(shí)現(xiàn)

? 1.模型抓取

? ? ?1)基礎(chǔ)抓取腳本? ? ? ??

? ? ?2)抓取物體在手柄上的角度

? 2.模型放置區(qū)域高亮并吸附

? ? ? ?1)VRTK_SnapDropZone

? ? ? ?2)VRTK_PolicyList

? ? ? ?3)VRTK_SnapDropZone_UnityEvents

? 3.交互滑動(dòng)條

? 4.交互旋轉(zhuǎn)模型

? 5.設(shè)置手柄半透明

三.其他



一.概述

? ? ? ?此篇記錄在開發(fā)過程中所使用到的VR功能,不針對(duì)VRTK或SteamVR的插件進(jìn)行解釋,或?qū)氲鹊然A(chǔ)內(nèi)容的說明,如正在開發(fā)VR項(xiàng)目或許可以借鑒本篇中解釋的相關(guān)功能~

二.功能實(shí)現(xiàn)

? 1.模型抓取

? ? ?1)基礎(chǔ)抓取腳本? ? ? ??

? ? ? ?給需要被手柄抓取的模型添加圖例腳本,必須添加的有VRTK_InteractableObject、VRTK_SwapControllerGrabAction?

? ? ? ?再給手柄添加這些腳本即可,不需要單獨(dú)去記,因?yàn)楣P者犯懶,也是直接從VRTK的預(yù)制體直接拖拽到場景中的,程序和人有一個(gè)能跑就行不是嗎~

? ? ?2)抓取物體在手柄上的角度

? ? ? ?通常,在抓取到物體的時(shí)候,被抓取的物體只是相對(duì)于手柄當(dāng)時(shí)的抓取位置被吸附到手柄上,但一般在做項(xiàng)目,比如使用放大鏡的時(shí)候肯定要保證抓起放大鏡的時(shí)候保持鏡面在最上面,主要是用戶體驗(yàn)感上的功能。

? ? ? ?給需要被抓取的物體(筆者這里叫氣鉆)添加VRTK_TrackObjectGrabAttach,在需要被抓取的物體下創(chuàng)建一個(gè)空物體(SnapPoint),給這個(gè)空物體添加VRTK_SDKTransformModify。

? ? ? ?在新建的這個(gè)空物體下的腳本組件VRTK_SDKTransformModify—Sdk Overrides—Element0—Transform Override Settings中設(shè)置位置信息和旋轉(zhuǎn)信息,這里設(shè)置的信息會(huì)直接覆蓋掉被抓取物體相對(duì)于手柄的局部位置、局部旋轉(zhuǎn)的信息,建議在運(yùn)行起來將物體抓到手柄上去調(diào)這個(gè)參數(shù),最后結(jié)束運(yùn)行復(fù)制出來,因?yàn)樵诜沁\(yùn)行狀態(tài)下這個(gè)信息很難調(diào)。

? ? ? ? 最后就是需要將攜帶VRTK_SDKTransformModify的這個(gè)空物體添加到需要被抓取的物體(父物體)的VRTK_TrackObjectGrabAttach—Right Snap Handle中,這個(gè)只是代表右手手柄抓起來之后會(huì)使用這個(gè)空間信息,需要根據(jù)項(xiàng)目要求自行選擇添加到左手柄還是右手柄。

? 2.模型放置區(qū)域高亮并吸附

? ? ? ?這個(gè)功能主要是使用手柄拾取模型后,需要將這個(gè)模型放置到特定的位置上。比如有一條直線,需要用到尺子去測量這條直線的長度,那么在拾取這個(gè)尺子在直線附近釋放的時(shí)候直接將直尺完美貼合到直線上。

? ? ? ?首先在Project文件夾下直接搜索SnapDropZone,將預(yù)制體拖拽到場景中。

? ? ? ?可以看到這個(gè)預(yù)制體上默認(rèn)攜帶了碰撞器、剛體、VRTK_SnapDropZone.cs組件,但這些組件還不足以實(shí)現(xiàn)高亮和吸附的功能,需要再給這個(gè)預(yù)制體(SnapDropZone)添加兩個(gè)腳本,分別為VRTK_PolicyList、VRTK_MaterialColorSwapHighlighter。

? ? ? ?1)VRTK_SnapDropZone

? ? ? ?VRTK_SnapDropZone的作用主要是高亮和吸附的腳本的集成和控制,先主要對(duì)兩個(gè)參數(shù)進(jìn)行修改,分別是Highlight Object Prefab、Highlight Color。

  • Highlight Object Prefab用于在當(dāng)前區(qū)域繪制高亮,類型是GameObject,就是說你他的高亮信息就是你往這個(gè)參數(shù)里拖拽的任何物體,如果是空物體那什么也沒有,如果有網(wǎng)格那就對(duì)網(wǎng)格高亮。
  • Highlight Color高亮顏色,類型是Color,直接設(shè)置成自己喜歡的高亮顏色就行了。

? ? ? ?關(guān)于高亮顏色也可以添加VRTK_MaterialColorSwapHighlighter腳本,在這個(gè)腳本上添加材質(zhì)球會(huì)直接覆蓋掉VRTK_SnapDropZone的Highlight Color參數(shù)。因?yàn)轫?xiàng)目中可能會(huì)有大量的VRTK_SnapDropZone腳本,那么如果策劃說高亮顏色需要從藍(lán)色調(diào)整為黃色就得一個(gè)個(gè)去調(diào)整了,所以添加統(tǒng)一的顏色管理對(duì)于筆者而言還是很有必要的~

? ? ? ?2)VRTK_PolicyList

? ? ? ?在說VRTK_PolicyList前先要說一下這個(gè)物體上的碰撞器的作用,在這里碰撞器的大小就是用于判斷哪些物體被放置到這個(gè)檢測范圍之內(nèi)。

? ? ? ?VRTK_PolicyList的作用主要是設(shè)置高亮的目標(biāo),設(shè)置哪些物體進(jìn)入到這個(gè)區(qū)域(也就是碰撞器區(qū)域)的時(shí)候觸發(fā)高亮,主要判斷依據(jù)是碰撞器+標(biāo)簽,碰撞器主要檢測物體是否進(jìn)入到這個(gè)區(qū)域,標(biāo)簽主要檢測是哪個(gè)物體進(jìn)入到了這個(gè)區(qū)域,兩者結(jié)合在開發(fā)起來其實(shí)還是比較舒服的,而這個(gè)腳本主要就是標(biāo)簽的設(shè)置。

? ? ? ?首先給需要進(jìn)入到這個(gè)區(qū)域的物體(我這里是氣鉆)添加并設(shè)置一個(gè)標(biāo)簽(我這里是Module_3_Qizuan),再給VRTK_PolicyList下的Size—Element0設(shè)置一致的標(biāo)簽,最后把它自身給拖拽到VRTK_SnapDropZone組件的Valid Object List Policy中。

? ? ? ?到此,就可以把拖拽物體放置到高亮區(qū)域進(jìn)行高亮的顯示了,但實(shí)際做項(xiàng)目的時(shí)候肯定不能是把這個(gè)物體放置到位之后就萬事大吉了,所以還需要添加一個(gè)將物體放上去之后的事件VRTK_SnapDropZone_UnityEvents,這個(gè)添加方式和給Button添加事件沒有區(qū)別,自己公開一個(gè)方法添加即可。

? ? ? ?3)VRTK_SnapDropZone_UnityEvents

? ? ? ?給高亮檢測物體添加事件監(jiān)聽腳本VRTK_SnapDropZone_UnityEvents。

  • ObjectEnteredSnapDropZone:對(duì)象進(jìn)入捕捉放置區(qū)域
  • ObjectExitedSnapDropZone:對(duì)象退出捕捉區(qū)域
  • ObjectSnappedToDropZone:捕捉到放置區(qū)域的對(duì)象
  • ObjectUnsnappedFromDropZone:從放置區(qū)域取消捕捉的對(duì)象

? ? ? ?一般給ObjectSnappedToDropZone添加事件即可,這個(gè)將物體放下吸附上之后會(huì)調(diào)用,比如我要拿直尺去測量一條直線的長度,那么我的直尺放下之后就會(huì)調(diào)用具體測量的邏輯代碼。

? 3.交互滑動(dòng)條

???????使用VRTK腳本VRTK_ArtificialSlider.cs,需要設(shè)置的重要參數(shù)分別為滑動(dòng)軸和最大長度,滑動(dòng)軸用于控制XYZ三個(gè)方向的拖拽,

????????最大長度用于限制和觸發(fā)拖拽到終點(diǎn)的事件,這里設(shè)置為0.2和0.01,既代表該物體限制x:0.01—0.2之間。

????????通過VRTK_BaseControllable.cs腳本給物體添加滑動(dòng)到最小值和最大值的事件。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using VRTK.Controllables;public class TestSlider : MonoBehaviour
{public VRTK_BaseControllable _Controllable;private void OnEnable(){_Controllable.MaxLimitReached += MaxLimitReached;_Controllable.MinLimitReached += MinLimitReached;}protected virtual void MaxLimitReached(object sender, ControllableEventArgs e){Debug.Log("滑動(dòng)到最大值");}protected virtual void MinLimitReached(object sender, ControllableEventArgs e){Debug.Log("滑動(dòng)到最小值");}}

? 4.交互旋轉(zhuǎn)模型

????????需要用到VRTK的腳本為VRTK_ArtificialRotator.cs,需要設(shè)置的內(nèi)容為旋轉(zhuǎn)方向和旋轉(zhuǎn)最小最大值,比交互滑動(dòng)條需要多設(shè)置一個(gè)Hinge Point(鉸鏈點(diǎn)),可以理解為需要被旋轉(zhuǎn)的物體是基于這個(gè)鉸鏈點(diǎn)的位置信息進(jìn)行軸的旋轉(zhuǎn),這個(gè)可以幫助我們做一些不規(guī)則物體(見下圖)的正常旋轉(zhuǎn)(畢竟不能啥玩意都像老年健身區(qū)的轉(zhuǎn)盤那樣直溜溜的轉(zhuǎn))


????????VRTK_ArtificialRotator的重要參數(shù)

???????通過VRTK_BaseControllable.cs腳本給物體添加旋轉(zhuǎn)到最小值和最大值的事件。因?yàn)榇a寫的太爛大家自行參考自帶案例025_Controls_Overview,只對(duì)這個(gè)功能的實(shí)現(xiàn)邏輯大概說一下,是通過VRTK_Control_UnityEvents.cs的OnValueChanged獲取旋轉(zhuǎn)量,通過VRTK_BaseControllable來處理旋轉(zhuǎn)量。

? 5.設(shè)置手柄半透明

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using VRTK;public class _Device : MonoBehaviour
{public GameObject 傳入右手物體RightController;public GameObject 傳入左手物體LeftController;IEnumerator Start(){yield return new WaitForSeconds(1);VRTK_ObjectAppearance.SetOpacity(VRTK_DeviceFinder.GetModelAliasController(傳入右手物體RightController), 0.5f);VRTK_ObjectAppearance.SetOpacity(VRTK_DeviceFinder.GetModelAliasController(傳入左手物體LeftController), 0.5f);}}

三.其他

????????這里記錄使用VR開發(fā)遇到的一些問題

????????1.因?yàn)樾枨笫亲笫直蠻I持續(xù)跟隨懸浮,所以在左手柄的子物體列表下添加了可交互UI,而右手柄無法對(duì)UI進(jìn)行交互,左手柄本身做一些嘗試可以進(jìn)行交互,解決方案是通過Update持續(xù)更新UI的位置在左手柄下。

????????2.手柄半透明的腳本因?yàn)閷懺诹薙tart下,在啟動(dòng)軟件的時(shí)候剛好手柄丟失定位的情況下會(huì)導(dǎo)致手柄的半透明設(shè)置失效,我這里寫了協(xié)程延遲Start一秒,邏輯不嚴(yán)謹(jǐn)建議不要照搬。

????????3.盡量不要做UI持續(xù)在相機(jī)上的功能,因?yàn)轶w驗(yàn)感極差....如果非要做的話盡量讓UI往屏幕下方下調(diào)一些。如果為了第三者在屏幕觀看效果的話盡量讓UI向上調(diào),另外在屏幕上觀看只能看到右眼的畫面,和頭盔左右眼結(jié)合的畫面稍有偏離,可以通過SteamVR來調(diào)出“顯示VR視圖—左上角菜單—雙眼-xxxxx”的功能。

http://www.risenshineclean.com/news/38482.html

相關(guān)文章:

  • 濟(jì)南wordpress 建站線上營銷推廣方式有哪些
  • 門戶網(wǎng)站系統(tǒng)有哪些平臺(tái)seo優(yōu)化方法網(wǎng)站快速排名推廣渠道
  • 網(wǎng)站的技術(shù)解決方案長沙seo網(wǎng)站推廣
  • wordpress加sliderwin7怎么優(yōu)化最流暢
  • wordpress會(huì)員地址石家莊百度快照優(yōu)化
  • 做企業(yè)網(wǎng)站用哪個(gè)軟件長沙大型網(wǎng)站建設(shè)公司
  • 網(wǎng)站開發(fā)的功能需求怎么寫最新的即時(shí)比分
  • 溫州網(wǎng)站建設(shè)推廣百度小說排行榜2021
  • 用word做旅游網(wǎng)站新聞危機(jī)公關(guān)
  • 未來做那些網(wǎng)站能致富推廣方案怎么做
  • 做網(wǎng)站 需要多少錢邯鄲seo營銷
  • wordpress英文版如何變成中文版網(wǎng)站seo標(biāo)題優(yōu)化技巧
  • 單位網(wǎng)站建設(shè)方案如何優(yōu)化關(guān)鍵詞
  • 北京網(wǎng)站建設(shè)設(shè)計(jì)公司哪家好如何做好關(guān)鍵詞的優(yōu)化
  • 個(gè)人網(wǎng)站展示免費(fèi)的網(wǎng)頁設(shè)計(jì)成品下載
  • 網(wǎng)站建設(shè)程序結(jié)構(gòu)免費(fèi)推廣的預(yù)期效果
  • wordpress多用戶后臺(tái)windows10優(yōu)化大師
  • 原來做網(wǎng)站后來跑國外了教育機(jī)構(gòu)排名
  • wordpress站點(diǎn)版權(quán)設(shè)置大數(shù)據(jù)比較好的培訓(xùn)機(jī)構(gòu)
  • 百度站長平臺(tái)申請(qǐng)?zhí)峤绘溄雍蟬eo服務(wù)
  • 柳州疫情最新通知seo經(jīng)典案例
  • 電子商務(wù)營銷模式有哪些長沙網(wǎng)站seo推廣公司
  • 青浦手機(jī)網(wǎng)站建設(shè)網(wǎng)站推廣排名公司
  • php網(wǎng)站后臺(tái)模板推廣app最快的方法
  • 貴陽 網(wǎng)站建設(shè)網(wǎng)絡(luò)營銷主要內(nèi)容
  • 做旅行網(wǎng)站的依據(jù)及意義國內(nèi)十大搜索引擎網(wǎng)站
  • 福州專業(yè)網(wǎng)站建設(shè)友鏈交易網(wǎng)
  • app小程序開發(fā)價(jià)格網(wǎng)站優(yōu)化方式有哪些
  • 無錫網(wǎng)站建設(shè)制作方案網(wǎng)頁設(shè)計(jì)制作網(wǎng)站html代碼大全
  • 特效網(wǎng)站大全seo秘籍優(yōu)化課程