支援系統

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

我們使用以下系統來支持 基本遊戲系統 ,以及任何 主設計需求 的目標。

使用經理

使用管理器 提供了一個簡單的 API 來將一個抓取對象應用到某個東道具,例如將一件衣服穿在人體上。這個 API 的主要功能是 UseManager

我們可以使用 UseManager.RemoveUse 來移除使用,這通常會在任務完成或特定項目使用後幫助。在此之上,我們也可以添加或移除目標 AddUseTargetsRemoveUseTargets

高光

LocalScript 使用新的引擎功能 Highlight ,以繪製對象

HighlightItemsFunc 用於與其他客戶系統通信。例如, EventManager 用它啟用或關閉特定 cutscenes 中的 Class

知識和 ThoughtBubbles

LoreThoughtBubbles 是 2 個相似的系統。 Lore 使用 Class

LoreMangerLocalScript 當單擊或觸摸時,發射一個使用 utils.RaycastAlongPointingDir 協助函物件的雷

注意,我們使用 Camera.ViewportPointToRayCamera.ScreenPointToRay 來構建射線,依照是否從非觸摸或觸摸的來調用。坐標在某些不同的坐標系統中。對

ThoughtBubbles 相對於一般來說很相似,使用射線投射檢查網格或其父輩是否有 ThoughtBubble 標籤。它還使用思考文字屬性為文字,以及一個 ThoughtBubble 標籤來指向世界中位置 UI 的預設對象。使用相同的位置對象,但是有不同的文字的冷卻時間。

特殊情況

Lore 有一些特殊情況,其中一個是腐化 LoreManager 也處理特殊情況,當玩家點擊鎖定的門時,會顯示一個小 cutscene 來顯示當前房間的鎖。

項目指標

我們想在玩家查看特定項目時,屏幕中央會顯示不同的圖示。客戶端指令 OnItemindicator 會以射線投射在相機 Class.CFrame.LookVector 上,並分析結果。根據結果,它會在 OnItemIndicator2 ScreenGui 中設置圖像。

當沒有任何相關項目被擊中時,預設圖示是一個小點。我們可以通過將 OnItemIndicatorImages 字串屬性添加到特定網格中,使用 onItemIndicatorImages 的名稱,例如手、眼、或門目前鎖定,來設置任何圖示。這種類型的標誌通常只在�

將一些類型放入優先權順序。在 OnItemIndicator 覆寫後,我們檢查是否是可以狀態取或是否為 "手" 圖示的儲物櫃通過 utils.CanGrabModel(model) 或 utils.GetTag


highlightItemsFunc:Invoke({"GetType", curInst})

Lore 和 ThoughtBubble 標籤會在檢查標籤時稍後檢查標籤。對於門,我們有 2 個不同的圖示:門已關閉 和門已鎖定。 2> Do

門管理器

DoorManager 使用 LocalScript 來管理開啟和關閉門。門有前方和後方側面控制,我們通過觸摸和 触摸結束 事件來連接。我們創建了�

每個門都有一個簡單的狀態系統, DoorState (關閉、開啟、開啟、關閉),以及使用雙讓位移動器來切換使用外部系統來打開或關閉門的能力。我們可以啟用或禁用門的能力以從外部系統關閉門的能力,並設置 DoorManager.EnableDoor ,這設置一個 Do

大師動畫師

MasterAnimatorLocalScript 播放動畫圖像 (材質 at

一個有動畫 SurfaceGui 的對象,將有一個動畫師 <

本地空間動畫

Class.LocalScript 使用 LocalScript 標籤來旋轉大多數 "裝飾" 對象,並且在 X、Y 或 Z 軸上使用指定的旋轉速度和

頭燈管理器

Class.ImageButton 處理用戶選擇LocalScriptImageButton 來切換頭頂聚光燈的位置,發

座位管理器

我們不想玩家在靠近對象時自動坐下,而是想要要求玩家點擊座椅才能

抽屜管理器

DrawerManager 指令使用 Drawer2 標籤和 CollectionService 來處理點擊抽屜以開啟或關閉它們,並播放任何相關的音訊。開啟和關閉操作由設置目標位置來執行 1> Class.PrismaticConstraint1> 。

擊殺音量

在主要遊戲區域的幾個區域,例如電擊和水旁邊的路開始,玩家可以在進入音量使用 Humanoid.Health 設為 0 時,當輸入音量標籤

玩家任務重生

PlayerMissionRespawn 指令使用 RespawnVolume 標籤和 CollectionService 來處理觸摸時讓玩家重生的音效。 我們將這些音效放置在腐朽的房

當處理 GameEvents.PlayerRespawn 時,會使用 RespawnPositions , 如果任務配置提供。 如果不是,會使用 TeleportPositions</

小型協助系統

鋼琴經理

PianoManager 指令碼使用 Piano 標籤和 CollectionService 來添加 1> Class.ClickDetector|ClickDetectors1> 並在鍵盤上點擊時播放一個鋼琴聲。

儀式支援

玩家放置印記的禮堂有一個複雜的裝置,其中每個印記都經歷改變,因為每個印記都被放置在其定義位置。例如,依照放置印記的數量來啟動/關閉燈和光束、變更特定物件的透明度等

可恢復管理器

一些可以抓取的物件對遊遊玩體驗很重要,例如海豹,我們不想讓它們丟失,如果玩家把它們放在某個地方。 如果對象有RestorableManager.StartTracking

傳送門

在幾個任務中,我們會在任務內將玩家傳送一小段距離內,例如 重生玩家 從旋轉平台上掉下來。為了簡化設置此類型的傳送,我們在 指令碼中的 ProcessPortal 裡使用了一個名為 2> <


P1.Touched:Connect(function(otherPart) utils.ProcessPortal(otherPart, P2) end)

ProcessPortal 處理其他部分是否為人類,傳送玩家通過 CFrame 坐標變更,並且召喚小個切景隱藏過渡使用 Teleport_Jump 事件在 0> 1> EventManager 1> 中。

設定指令碼

我們有多個配置、資料定義和通用功能指令碼: 示範設定檔 。定義任務。對遊戲狀態、客戶端-伺服器通訊的事件進行枚數。 全球設定演示頁面 。我們在一個空間開發,但在其他地方發行 (並進行遊戲測試) 。 此腳本檢查 placeID 並啟用/關閉各種欺詐和調試功能。 DemoUtilities 。各種工具功能。處理變形。設定隱藏、錨定或其他屬性。檢查條件在方塊子中。查找對象在階層中通過“dotted”名稱。管理暫時移動模型“某處遠處”並在稍後恢復。點擊探� 音效工具 。一些可以從設定合播放重要的隨機聲音的功能。 GrabUtil 。 用於抓取的幫助功能。