Steam-VR-Unity學(xué)習(xí)筆記

一狂芋、開發(fā)前準(zhǔn)備:

二、文檔翻譯:

開始項目:

  1. 創(chuàng)建場景:
  2. 刪除Main Camera對象
  3. Player預(yù)設(shè)從Core/Prefabs路徑拖入場景聚霜。這個預(yù)設(shè)體設(shè)置了主播放器組件和hands 豆励。它還與所有需要的SteamVR相關(guān)的東西掛鉤。
  4. 現(xiàn)在可以看到場景,同時控制器(指硬件)在場景中被追蹤
  5. Interactable組件添加到場景中的任一對象籍茧。這個對象上的其他組件將從玩家手柄中接收消息。(可以查看Samples/Scripts/InteractableExample.cs中的用法)
  6. 插件中已經(jīng)包含了一些常用的交互類梯澜,比如Throwable寞冯。將這個組件添加到你想讓玩家可以撿起來并可以拋出去的對象上面。
  7. 如果需要設(shè)置傳送(個人理解是類似于出門或者進(jìn)門或者切換場景)邏輯,只需要將InteractionSystem/Teleport/Prefabs/Teleporting預(yù)設(shè)體拖動到場景
    8.Teleport/Prefabs預(yù)設(shè)體用來添加玩家可以傳送到的位置吮龄。(每一個對象對應(yīng)一個傳送點)
    9.也可以將TeleportArea組件添加到場景中的任何對象俭茧。這樣就允許玩家在對撞機(jī)上傳送該物體(沒理解,待驗證)漓帚∧刚可以在Samples/Scenes查看相當(dāng)復(fù)雜的對象

示例場景

1.InteractionSystem/Samples/Scenes/Interactions_Example包括所有主要組件,是熟悉整個系統(tǒng)的最好場景尝抖。場景包含以下元素:

<1> ```Player```預(yù)設(shè)體是整個系統(tǒng)的核心毡们。大多數(shù)其他組件取決于玩家是否出現(xiàn)在場景中。
<2> ```Teleporting```傳送預(yù)置處理系統(tǒng)的所有傳送邏輯昧辽。(具體的直接研究代碼)
<3> ```InteractableExample```對象顯示了一個非常簡單的Interactive衙熔,它顯示了從手接收消息并對其作出反應(yīng)的基本方面。
<4> ```Throwables```對象展示了如何使用交互系統(tǒng)來創(chuàng)建一個稍微復(fù)雜一點的對象搅荞,這個對象實際上可以在游戲中使用红氯。
<5> ```UI & Hints```對象顯示了如何在交互系統(tǒng)中處理提示,以及如何使用它與Unity UI小部件(如按鈕)進(jìn)行交互咕痛。
<6> ```LinearDrive```對象是結(jié)合了一些不同的peice來創(chuàng)建一個可以通過簡單交互控制的動畫對象脖隶。
<7> ```CircularDrive```對象展示了如何以不同的方式約束和映射交互,從而導(dǎo)致更復(fù)雜的運動暇检。
<8> ```Longbow```(重點)是我們用這個系統(tǒng)創(chuàng)建的更復(fù)雜的物體之一,它展示了如何將簡單的peice組合起來創(chuàng)建一個完整的游戲機(jī)制婉称。

交互系統(tǒng)中的基本組件

1. Core:

<1> 交互系統(tǒng)的核心組件主要有 ```Player``` 块仆、 ```Hand``` 、```Interactable``` 王暗,可以用來設(shè)置玩家對象和場景的SteamVR攝像機(jī)悔据。
<2> 交互系統(tǒng)的工作原理是將信息發(fā)送到手與之交互的任何對象。然后這些物體會對信息做出反應(yīng)俗壹,如果需要的話科汗,它們可以附著在手上。
<3> 要使任何對象接收來自手的消息绷雏,只需將可交互組件添加到那個物體头滔。當(dāng)手執(zhí)行懸停檢查時,將考慮此對象涎显。
<4> 插件中已經(jīng)包括了一些常用的交互對象坤检,如```Throwable```或```LinearDrive```。
<5> Player prefact還創(chuàng)建了一個InputModule期吓,允許手模擬鼠標(biāo)事件以輕松的使用Unity UI widgets.
<6> 交互系統(tǒng)還包括一個后備模式早歇,允許典型的第一人稱使用鍵盤和鼠標(biāo)控制相機(jī)。這也允許鼠標(biāo)像玩家的手。當(dāng)團(tuán)隊中不是每個人都可以訪問虛擬現(xiàn)實時箭跳,這種模式特別有用頭戴式耳機(jī)晨另。

2. Player:

<1> ```Player```是一個```Singleton```。場景中只能有一個玩家
<2> 可以在整個項目中被全局訪問谱姓,交互系統(tǒng)的許多方面都假設(shè)播放器對象始終存在于場景中借尿。
<3> 可以跟蹤玩家是處于VR模式還是```2D fallback ```模式
<4> 通過Player類使用訪問器可以讓其他組件以類似的方式工作,而不必知道是否正在使用虛擬現(xiàn)實耳機(jī)或鼠標(biāo)/鍵盤逝段。(我個人理解為調(diào)試模式垛玻,用鼠標(biāo)鍵盤模擬)
<5> 2D fallback 模式主要用來測試非常簡單的交互,只需要一只手和觸發(fā)按鈕奶躯,主要用來調(diào)試帚桩。
<6> 以下是重要的屬性:
    * ``` hmdTransforms ``` : 將始終返回當(dāng)前攝像機(jī)組件。包括VR設(shè)備和模擬設(shè)備的攝像機(jī)
    * ``` feetPositionGuess ``` : 根據(jù)VR設(shè)備的位置來猜測玩家腳的位置嘹黔,因為實際上不知道玩家腳的位置账嚎,因為不確定玩家是否是站著
    * ```bodyDirectionGuess``` : 身體方向的,和上面的屬性相同儡蔓,取決于玩家的站姿
<7> Player類被設(shè)置為在編輯器場景視圖中使用圖標(biāo)來顯示腳和手郭蕉,但是由于Unity的工作方式,這些圖標(biāo)必須位于特定的文件夾中才能工作喂江。這些圖標(biāo)在Core/icons下提供召锈。將它們移到項目資源根目錄下名為“Gizmos”的文件夾中,它們就可以工作了获询。
<8> 2d fallback 模式主要用來測試涨岁,發(fā)布正式版本的時候可以通過以下方式禁用:
    * 在編譯之前,取消選中 ```Player對象```上的 ```Allow Toggle To 2D```
    * 在項目中的 ```PlayerSetting```腳本中添加預(yù)編譯宏 ```HIDE_DEBUG_UI```吉嚣,在調(diào)試模式下使用 2d fallback 模式梢薪,發(fā)布之后使用的VR設(shè)備模式

3. Hand :

<1> Hand類負(fù)責(zé)交互系統(tǒng)的大部分重?fù)?dān)。
<2> 手會檢查其懸停的對象(可交互對象)尝哆,并根據(jù)當(dāng)前懸停狀態(tài)向它們發(fā)送消息秉撇。
<3> 手一次只能在一個對象上懸停,同時只有一只手可以在一個對象上懸停秋泄。
<4> 物體可以附著在手上琐馆,也可以從手上分離。只有一個對象可以是手的焦點對象印衔,但可以同時將多個對象附加到手上啡捶。
<5> 一旦一個對象從手上分離,那么先前附著到手上的對象(如果它仍然附著)將成為手上焦點對象
<6> 當(dāng)手上沒有東西時奸焙,它將始終顯示控制器瞎暑。
<7> 附加對象可以設(shè)置```AttachmentFlags```彤敛,這些標(biāo)志確定手和對象在附加后的行為。
<8> 根據(jù)情況了赌,手可以被鎖定墨榄,不會懸停在其他物體或任何物體上。
<9> 以下是手和交互對象的消息:
    * OnHandHoverBegin:當(dāng)手開始在對象上懸停時發(fā)送
    * HandHoverUpdate:發(fā)送手懸停在對象上的每一幀
    * OnHandHoverEnd:當(dāng)手停止在對象上懸停時發(fā)送
    * OnAttachedToHand:當(dāng)對象附著到手上時發(fā)送
    * handatchedupdate:當(dāng)對象附加到手上時發(fā)送每幀
    * OnDetactedFromHand:當(dāng)對象與手分離時發(fā)送
    * OnHandFocusLost:當(dāng)附加的對象因為其他對象已附加到手而失去焦點時發(fā)送
    * OnHandFocusAcquired:當(dāng)一個附加對象獲得焦點時發(fā)送勿她,因為先前的焦點對象已經(jīng)從手上分離
<10> 以下是手向其子對象發(fā)送的消息
    * OnHandInitialized:通過將自身與SteamVR跟蹤控制器的設(shè)備ID關(guān)聯(lián)來初始化手時發(fā)送開始在手上懸停
    * OnParentHandHoverEnd:當(dāng)手停止在某個對象上懸停時發(fā)送
    * OnParentHandHoverBegin :當(dāng)手開始在某物上懸停時發(fā)送
    * OnParentHandInputFocusAcquired:當(dāng)游戲窗口獲得輸入焦點時發(fā)送
    * OnParentHandInputFocusLost:當(dāng)游戲窗口失去輸入焦點時發(fā)送
<11> 以下成員負(fù)責(zé)連接和分離:
    * AttachObject :使用傳入的AttachmentFlags從手附加對象
    * DetachObject :從手部分離對象袄秩,并有選擇地將其恢復(fù)到原來的父節(jié)點
    * currentAttachedObject :這將返回手上的焦點附著對象(如果有的話)
<12> 其他的功能:
    * OtherHand : 這是另一只手在玩家身上。這對于需要與雙手交互的對象(如longbow)非常有用逢并。
    * HoverSphereTransform and Radius (沒有找到全部對應(yīng)的 ```Radius```的屬性之剧,可能是包含):可用于自定義手的懸停范圍。
    * HoverLayerMask :可以更改此設(shè)置砍聊,使手只懸停在某些層中的對象上背稼。
    * HoverUpdateInterval : 根據(jù)游戲的要求,懸停檢查可以或多或少地進(jìn)行玻蝌。  
    * HoverLock/Unlock:用于使手只懸停在某個對象上蟹肘。傳遞null將使手在懸停鎖定時不會懸停在任何對象上。此技術(shù)用于使手在傳送弧處于活動狀態(tài)時不懸停在對象上俯树。
    * GetStandardInteractionButton/Up/Down:用于檢查控制器上觸發(fā)器的狀態(tài)帘腹。這對于也可以與二維回退手一起使用的簡單對象很有用。在2D回退情況下许饿,左鍵單擊充當(dāng)標(biāo)準(zhǔn)交互按鈕阳欲,對象的行為相同。
    * GuessCurrentHandType:這使用一些SteamVR函數(shù)來確定哪只手最左邊陋率,哪只手最右邊胸完。
    * GetAttachmentTransform:對象可以使用手上的“附件變換”來計算如何捕捉到手。這些只是手對象的命名子對象翘贮。Player預(yù)置包含“Attach_ControllerTip”作為示例。

4. Interactable :

<1> 可交互類更像是一個標(biāo)識符爆惧。它向手標(biāo)識這個對象是可交互的狸页。
<2> 任何具有此組件的對象都將接收來自手的相關(guān)消息。 
<3> 僅使用這三個組件扯再,您應(yīng)該能夠創(chuàng)建許多不同的和復(fù)雜的交互式對象芍耘。 
<4> 一些常用的交互系統(tǒng)組件展示了系統(tǒng)如何結(jié)合這些基本機(jī)制來創(chuàng)建更復(fù)雜的對象:

5. Throwable :

<1> 這是最基本的交互對象之一。   
<2> 當(dāng)一只手懸停在這個物體上并按下交互按鈕(觸發(fā)器)時熄阻,玩家可以撿起它斋竞。  
<3> 當(dāng)按下按鈕時,物體會附著在手上并保持在那里秃殉。  
<4> 當(dāng)扳機(jī)被釋放時坝初,手上的任何速度都被賦予投擲的物體浸剩。   
<5> 這使您可以創(chuàng)建可以拾取和拋出的基本對象。    

6. LinearDrive :

<1> 這允許用手在起始位置和結(jié)束位置之間移動對象鳄袍。
<2> 對象的當(dāng)前位置用于設(shè)置LinearMapping绢要。

7. CircularDrive :

<1> 這使得一個物體可以用手做圓周運動。
<2> 對象的當(dāng)前位置用于設(shè)置LinearMapping拗小。

8. LinearMapping :

<1> 這是一個由LinearDrive或CircularDrive設(shè)置的數(shù)字重罪。
<2> 該映射可用于將簡單的手交互映射為更復(fù)雜的行為。
    * 這方面的一個例子是Longbow中的字符串哀九,它使用線性映射將弓字符串的拉動映射到長弓回拉動畫剿配。
<3> 其他幾個類使用映射來插值它們的屬性
    * LinearAnimation
    * LinearAnimator
    * LinearBlendShape
    * LinearDisplacement
    * HapticRack

9. VelocityEstimator :

<1> 這個類對于根據(jù)物體位置的變化來估計物體的速度和加速度很有用。
<2> 在大多數(shù)情況下阅束,如果你從實際控制器獲得速度和加速度呼胚,你會得到更準(zhǔn)確的結(jié)果,但有時這是不可能的围俘,例如當(dāng)使用2D回退手砸讳。  

10. IgnoreHovering :

<1> 如果希望在執(zhí)行懸停檢查時手忽略它,可以將其添加到對象或特定碰撞器中界牡。

11. UIElement :

<1> 將這個組件添加到一個現(xiàn)有的UI小部件中可以使手與之交互簿寂。
<2> 這將生成基于手交互的鼠標(biāo)懸停和單擊事件,并通過Unity事件系統(tǒng)發(fā)送它們宿亡,以使用現(xiàn)有的UI小部件常遂。
<3> 此外,它還將生成一個OnHandClick事件挽荠,該事件也將傳遞給單擊元素的手克胳。
<4> 交互系統(tǒng)的另一個重要部分是ItemPackage的概念

12. ItemPackage :

<1> ItemPackage是用于臨時覆蓋手部功能的對象的集合。例如長弓圈匆。當(dāng)長弓附在手上時漠另,它有點接管了手的基本功能。
<2> itemspackages的概念是能夠被提取并放回原來的位置跃赚。
<3> 一旦撿起它們笆搓,它們就一直附著在手上,直到它們被放回原處纬傲。不需要按住按鈕就可以保持與手的連接满败。手仍然像普通的一樣傳遞消息,但是這些對象通常會禁用手的一些基本功能叹括,例如在附加對象時懸停算墨。
* 來自實驗室的項目包的其他例子是氣球工具或Xortex無人機(jī)控制器。這兩個對象在連接時接管手的基本功能汁雷。
<4> 物品包可以是單手或雙手净嘀。

13. ItemPackageSpawner :

<1> 它處理何時生成和放置ItemPackage以及如何附加的邏輯手上的物品一旦產(chǎn)生报咳。
<2> 它還處理顯示項目預(yù)覽或項目提貨時的大綱。

14. ItemPackageReference :

<1> 可以將此組件添加到項以指示它是項包的一部分面粮。
<2> 作為交互系統(tǒng)的核心部分少孝,還有一些其他的helper類。

15. PlaySound :

<1> 它可以接收許多音頻片段熬苍,每次隨機(jī)播放1個
<2> 它還可以隨機(jī)播放剪輯的方式

16. SoundPlayOneShot :

<1> 這個類是專門為只播放一次而不循環(huán)或需要在播放時暫停的聲音

17. Util :

<1> 這是一個充滿了在整個交互系統(tǒng)中使用的小實用程序函數(shù)的類稍走。

18. InteractiableHoverEvents :

<1> 這個類在從手部接收消息時生成UnityEvents。

19. InteractableButtonEvents :

<1> 此類將控制器按鈕輸入轉(zhuǎn)換為UnityEvents柴底。

20. ComplexThrowable :

<1> 這個類使用物理關(guān)節(jié)將對象附加到手上婿脸,而不是簡單的父子關(guān)系。
<2> 這就允許了更多的物理基礎(chǔ)上的相互作用柄驻,一旦它是附加的狐树。
<3> 注:這節(jié)課有點實驗性。因為我們并沒有在實驗室中使用它鸿脓,所以它可能功能不完整抑钟,而且可能有缺陷。

21. DistanceHaptics :

<1> 根據(jù)兩個變換之間的距離觸發(fā)觸覺脈沖野哭。

22. Player (Prefab) :

<1> 這是交互系統(tǒng)的一部分在塔,它結(jié)合了所有的基本部分。
<2> 這個Prefab的安排Palyer和手的方式拨黔,使他們都很容易接近蛔溃。
<3> 它還包含SteamVR和2D fallback系統(tǒng)的所有設(shè)置
<4> 交互系統(tǒng)的大多數(shù)其他組件都依賴于播放器,其中一些組件假定播放器和手是以這種方式設(shè)置的篱蝇。
<5> 一個場景中應(yīng)該只有一個贺待。

23. BlankController (Prefab)

<1> 這是Hand在沒有其他東西附著的情況下使用的。
<2> 虛擬現(xiàn)實的所有部件都是通過虛擬現(xiàn)實的渲染器連接而成的零截。

24. 傳送功能 :

<1> 實驗室的傳送系統(tǒng)支持傳送到特定的傳送點或更一般的傳送區(qū)域麸塞。
<2>  主要的類有```Teleport```,```TeleportPoint```和```TeleportArea```涧衙。
<3> 所有的功能都包含在``` Teleport/Prefabs```中的傳送預(yù)制件中喘垂。這個預(yù)設(shè)包括傳送系統(tǒng)的所有邏輯功能。
<4> 在場景中添加```TeleportPoints```或```TeleportAreas```以添加玩家可以傳送到的地點绍撞。
<5> ```Teleport```類 :
    * 這個類處理心靈傳送的大部分邏輯。
    * 按下觸摸板時得院,傳送指針顯示傻铣。如果釋放觸摸板時指針指向一個有效點,則玩家將傳送祥绞。
        ** 在2D回退模式下非洲,您也可以按鍵盤上的“T”鍵來調(diào)出傳送指針
    * 當(dāng)玩家傳送時鸭限,會有輕微的暗顯到黑色,然后游戲又會淡入两踏。
    * 這個類跟蹤場景中的所有傳送標(biāo)記败京,并根據(jù)傳送指針的狀態(tài)通知它們淡入/淡出。
    * 在某些情況下梦染,為地板設(shè)置一個不同于傳送網(wǎng)格的場景的單獨網(wǎng)格是很有用的赡麦。在這些情況下,傳送系統(tǒng)會追蹤到它擊中傳送網(wǎng)的地方帕识,并嘗試將玩家放在地板上泛粹。這樣做的目的是嘗試將場景中的可視地板與玩家游戲區(qū)域中的物理地板相匹配。
    * 可能需要調(diào)整的屬性
        ** tracerLayerMask:這是傳送指針將嘗試命中的所有層
        ** floorFixupMask:地板所在的層肮疗。
        ** floorFixupMaximumTraceDistance:嘗試查找地板時要跟蹤的最大距離晶姊。
        ** ShowPlayAreaMarker:此選項用于切換是否在傳送時顯示玩家游戲區(qū)域的矩形。這有助于引導(dǎo)玩家在他們的物理空間伪货。
        ** arcDistance:傳送弧應(yīng)該走多遠(yuǎn)们衙。增加這個數(shù)字將允許玩家在場景中進(jìn)一步傳送〖詈簦可能需要為每個場景調(diào)整此值蒙挑。
<6> ```TeleportMarkerBase```類   :
    * 這是所有傳送標(biāo)記的基類。
    * 它包含Teleport類期望在所有Teleport標(biāo)記中出現(xiàn)的方法巍举。
    * 你可以用它作為基類來創(chuàng)建一個新類型的傳送標(biāo)記脆荷。
    * 傳送標(biāo)記可以鎖定或解鎖。玩家不能傳送到鎖定的標(biāo)記懊悯。
<7> ```TeleportArea```類 :
    * 這是一個由網(wǎng)格組成的傳送區(qū)域。
    * 當(dāng)傳送到這些桃焕,玩家將傳送到他們所指的地方(加上地板固定裝置)
    * 將此組件添加到具有碰撞器和網(wǎng)格渲染器的任何對象中,以允許玩家在其上傳送师痕。
<8> ```TeleportPoint``` 類 :
    * 這是一個傳送點胰坟,玩家可以傳送到泞辐。
    * 當(dāng)傳送到這些點上時竞滓,玩家將在點的原點傳送吹缔,而不管他們指向的點在哪里茶没。
    * 這些點可以命名為
    * 這些點還具有傳送玩家到新場景的能力礁叔。(這不是完全的功能,因為您必須將其連接到場景加載系統(tǒng)涣易。)
<9> ```TeleportArc``` 類 :
    * 這將為傳送指針繪制弧線,并對傳送系統(tǒng)進(jìn)行物理跟蹤冶伞。
<10> ```AllowTeleportWhileAttachedToHand``` 類:
    * 默認(rèn)情況下徒爹,你不能用一只手來傳送侯繁。將此組件添加到附加對象將繞過該規(guī)則贮竟。
    * 這是使用```BlankController```和``` longbow Arrow```對象,以便玩家可以傳送咕别,即使他們是附在手上。
<11> ```IgnoreTeleportTrace``` 類:
    * 用對撞機(jī)將其添加到一個物體上,將允許傳送軌跡通過它翔冀。
    * 處理這個問題的另一種方法是把這個物體放在一個不同的層上纤子,而這個層是```TeleportArc```不會檢查的泽论。
    * ```arrow tip```用來傳送``` longbow Arrow```鹦赎。
<12> ```Teleporting (Prefab)``` :
    * 這個預(yù)制體建立了整個傳送系統(tǒng)陪踩。
    * 將此拖動到你的場景將使你能夠在游戲中打開傳送指針悉抵。
    * 所有的視覺和聲音傳送系統(tǒng)可以改變通過修改這個預(yù)置的屬性肩狂。
<13> ```TeleportPoint (Prefab)``` :
    * 將這些添加到場景中以添加玩家可以傳送到的位置。
    * 注意:此場景中某些對象的名稱是硬編碼的基跑,如果要更改模型婚温,則需要修改部分代碼。

25. 提示功能 :

<1> 提示系統(tǒng)在控制器上顯示提示媳否。
<2> 提示的設(shè)置方式是栅螟,控制器上的每個按鈕都可以單獨調(diào)用。
<3> 還可以顯示與每個按鈕相關(guān)聯(lián)的文本提示篱竭。
<4> ```ControllerButtonHints```類 :
    * 提示是根據(jù)控制器的呈現(xiàn)模型設(shè)置的力图。
    * SteamVR提供了從渲染模型組件到按鈕id的映射。這個映射是用于計算控制器的哪個部分對應(yīng)于哪個按鈕掺逼。
    * 一旦某個按鈕的提示被激活吃媒,該按鈕將在控制器模型上持續(xù)閃爍,直到提示關(guān)閉。
    * 提示只能用于按鈕赘那,也可以與按鈕關(guān)聯(lián)的可選文本提示刑桑。
    * 有幾種靜態(tài)方法用于與提示系統(tǒng)交互:
        ** ShowButtonHint:在指定的手上閃爍指定的按鈕。
        ** HideButtonHint:停止在指定的手上閃爍指定的按鈕募舟。
        ** 隱藏按鈕提示:停止閃爍指定手上的所有按鈕祠斧。
        ** IsButtonMaintactive:檢查指定的按鈕是否在指定的手上閃爍。
        ** ShowTextHint:顯示一個文本提示拱礁,其中傳遞的字符串與指定手上的指定按鈕關(guān)聯(lián)琢锋。
        ** HideTextHint:隱藏指定按鈕上指定手的文本提示。
        ** hidealltextshints:隱藏指定手上當(dāng)前活動的所有文本提示呢灶。
        ** GetActiveHintText:獲取指定按鈕的活動提示文本吴超。

26. 指示箭頭:

<1> Longbow是使用交互系統(tǒng)創(chuàng)建的復(fù)雜游戲機(jī)制的一個例子。
<2> 這里包含的版本與我們在實驗室里提供的版本完全相同鸯乃,包括所有的模型鲸阻、材料和聲音。
<3> Longbow是使用```ItemPackage```系統(tǒng)構(gòu)建的飒责。它由```LongbowItemPackage```預(yù)制在主手生成 ``` Longbow prefab```赘娄, 另外一只手生成```ArrowHand prefab``` 。
<4> ArrowHand Prefab 是在每次發(fā)射一個新的 ```ArrowHand Prefab ```之后在手上產(chǎn)生的新的箭頭宏蛉。
<5> 所有的弓箭邏輯都出現(xiàn)在以下腳本中:
    * Longbow
        ** 它處理弓如何在有凹痕和無凹痕模式下控制的邏輯
        ** 它還可以記錄弓弦被拉多遠(yuǎn)
    * ArrowHand
        ** 根據(jù)箭頭的位置和控制器按鈕處理開槽和發(fā)射箭頭
        ** 處理在需要時在手上生成箭頭
    * ArrowheadRotation
        ** 每次生成新箭頭時隨機(jī)旋轉(zhuǎn)箭頭
    * SoundBowClick
        ** 播放拉弓弦的聲音遣臼。
<6> Longbow文件夾中的其他腳本處理Longbow目標(biāo)的邏輯
    * ArcheryTarget
        ** 這是一個通用射箭目標(biāo)的腳本
        ** 當(dāng)被箭頭擊中時,它會調(diào)用UnityEvent拾并。
    * FireSource // TODO
        ** 表示可以點燃的對象揍堰。一旦著火,當(dāng)它與另一個火源接觸時嗅义,這個物體就會蔓延開來屏歹。
    * ExplosionWobble
        ** 用來使射箭目標(biāo)擺動。
    * Balloon
    * BalloonColliders
    * BalloonHapticBump
    * BalloonSpawner
        ** 這些腳本處理當(dāng)weeble被箭頭擊中時產(chǎn)生的球的邏輯之碗。

27. Samples:

<1> 有幾個類是專門為在示例場景中顯示一些示例而創(chuàng)建的蝙眶。;
<2> ```ControllerHintsExample```
    * 這個類演示如何使用提示系統(tǒng)。
<3> ```InteractableExample```
    * 這個類展示了一個非常簡單的例子褪那,它演示了從手部接收和響應(yīng)消息幽纷。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市博敬,隨后出現(xiàn)的幾起案子友浸,更是在濱河造成了極大的恐慌,老刑警劉巖偏窝,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件收恢,死亡現(xiàn)場離奇詭異武学,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)伦意,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進(jìn)店門火窒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人驮肉,你說我怎么就攤上這事沛鸵。” “怎么了缆八?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長疾捍。 經(jīng)常有香客問我奈辰,道長,這世上最難降的妖魔是什么乱豆? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任奖恰,我火速辦了婚禮,結(jié)果婚禮上宛裕,老公的妹妹穿的比我還像新娘瑟啃。我一直安慰自己,他們只是感情好揩尸,可當(dāng)我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布蛹屿。 她就那樣靜靜地躺著,像睡著了一般岩榆。 火紅的嫁衣襯著肌膚如雪错负。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天勇边,我揣著相機(jī)與錄音犹撒,去河邊找鬼。 笑死粒褒,一個胖子當(dāng)著我的面吹牛识颊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播奕坟,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼祥款,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了执赡?” 一聲冷哼從身側(cè)響起镰踏,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎沙合,沒想到半個月后奠伪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體跌帐,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年绊率,在試婚紗的時候發(fā)現(xiàn)自己被綠了谨敛。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡滤否,死狀恐怖脸狸,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情藐俺,我是刑警寧澤炊甲,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站欲芹,受9級特大地震影響卿啡,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜菱父,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一颈娜、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧浙宜,春花似錦官辽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至裙品,卻和暖如春乓梨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背清酥。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工扶镀, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人焰轻。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓臭觉,卻偏偏與公主長得像,于是被迫代替她去往敵國和親辱志。 傳聞我的和親對象是個殘疾皇子蝠筑,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,925評論 2 344