We used the following systems to support both the 基本ゲームプレイシステム , as well as any goals of the メインデザイン要件 .
UseManager
UseManager は、人形の衣服のような簡単な API を提供して、グラビューのオブジェクトを何かに適用する、例えば。メイン機能は UseManager.
We could remove the "use" with UseManager.RemoveUse , which was usually helpful when a mission was finished or a specific item was "used". また、AddUseTargets と RemoveUseTargets を追加または削除できます。
ハイライト
プ
この LocalScript は、オブジェクトのアウトラインを描き、/またはオブジェクトの内部
HighlightItemsFunc は、他のクライアントシステムとコミュニケーションするために使用されます。たとえば、 EventManager
Lore and ThoughtBubbles
Lore と ThoughtBubbles は、2つの似ているシステムです。Lore は、Class
Lore は LoreManger LocalScript に実装されています。クリックまたはタッチすると、ヘルパーグループ数 utils.RaycastAlongPointing
注意、Camera.ViewportPointToRay または Camera.ScreenPointToRay を使用して、レイを構造します。これは、Class.UserInputService.InputEnded``:Connectで呼び出された場合と、2>タッチ2>で呼
ThoughtBubbles は、レイキャストを使用してメッシュまたはその親が ThoughtBubble タグを持っているかどうかをチェックします。また、 ThoughtText 属性を使用して、UI を世界に配置するために使用されるプレースホルダーオブジェクトを指します。同じ位置オブジェクトを使用
特殊な場合
Lore には、いくつかの特別な場合があります。こ LoreManager は、プレイヤーが部屋のロックを解除するまで、無効になったドアをクリックすると、小さなカットシーンを表示する特別なケースも処理します。
オンアイテムインジケータ
プレイヤーが特定のアイテムを見ているときに画面の中央に異なるアイコンを表示したい場合は、クライアントスクリプト OnItemIndicator はカメラの Class.CFrame.LookVector をレイキャストし、結果を分析します。結果に基づいて、OnItemIndicator2 の ScreenGui
関心のないアイテムがヒットされないと、デフォルトのアイコンは小さなドットです。OnItemIndicator 属性を特定のメッシュに追加して、onItemIndicatorImages のような名前を持つ名前を使用して、アイコンの種類を設定できます。アトリビュ
Type チェックを優先順位オーダーで実行します。 OnItemIndicator オーバーライド後、utils.CanGrabModel(model) または utils.GetTaggedObjectUpHierarchy("Drawer2", model) を通じて、
highlightItemsFunc:Invoke({"GetType", curInst})
ロールと思考バブルタグは、タグをチェックして後でチェックして、ドアには 2つの異なるアイコンがあります:ドアCurrentlyClosed とドアAlwaysLocked。DoorManager
ドアマネージャー
Class.LocalScript は、LocalScript タグと Class.CollectionService を使用して、ドアの開閉を管理します。ドアには、触れるとオープン/クローズの両方がトリガーされます。<
各ドアには単純な状態システム、 DoorState (閉鎖、開鎖、開鎖、閉鎖)、DoorManager.EnableDoor を呼び出して、外部システムからドアを開くか閉じることができます。DoorEnabled 属性を設定するために、1> DoorManager.EnableDoor
マスターアニメーター
マスターアニメーターLocalScript は、テレビ画面
オブジェクトにアニメーション付きの SurfaceGui があると、
ローカルスペースアニメーション
Class.LocalScript は、LocalScript タグを使用して、X、Y、または Z 軸の 1つまたは複数の "コスメティック" オブジェク
ヘッドランプマネージャー
Class.ImageButton を拡張すると、スポットライトを頭上にオン/オフに切り替えるために、LocalScript をハン
SeatManager
We do not want players to automatically seat when near an object they can sit on. 代わりに、ユーザーが座るためにクリックす
DrawerManager
スクリプトは、DrawerManager タグを使用し、Drawer2 タグ、および Class.CollectionService を使用して、ドロワーを開くか閉じるためにクリックすると、対応するオーディオを再生するために 2> Class.CollectionService2> を設定します。開くときと閉じるときのアクションは、5>タ
KillVolumes
メインのゲームプレイエリアのいくつかのエリア、例えば電気スパークや水の近くのスタート地点の近くの水域で、プレイヤーは Humanoid.Health を 0 に設定す
PlayerMissionRespawn
PlayerMissionRespawn スクリプトは、RespawnVolume タグと Class.CollectionService を使用して、プレイヤーがタッチされたときにリスポーンするボリュームを処理します。これらのボリューム
GameEvents.PlayerRespawn を処理すると、スクリプトは RespawnPositions を使用できます。ミッションの構成がミッションを提供する場合、ミッ
小さなヘルパーシステム
ピアノマネージャー
ピアノマネージャースクリプトは、ピアノ タグと Class.CollectionService を使用して、キーボードをクリックしたときにCollectionServiceし、ピアノのサウンドの 1つを再生します。
儀式サポート
プレイヤーが印章を置く場所の玄関先には、印章が各々の印章の位置に配置されると変更される複雑な構造があります。たとえば、印章を配置する印章の位置に応じて、特定のイベントを有
RestorableManager
一部のグラビアブルオブジェクトは、ゲームプレイに重要です。例えば、封印はそうです。そして、RestorableManager スクリプトは、RestorableSystem に追加されたときの
ポータル
数ミッションで、ミッション内のプレイヤーを短距離でミッションの中にテレポートします。たとえば、プレイヤーをリスポーンするミッションのプレイヤーは、ProcessPortalプレイ
P1.Touched:Connect(function(otherPart) utils.ProcessPortal(otherPart, P2) end)
ProcessPortal は、他のパートが人間であることをチェックし、CFrame コーデント変更を通じてプレイヤーをテレポートし、小さなカットシーンを呼び出して、 Teleport_Jump イベントを使用してトランジションを隠すために、0> 1> イベントマ
構成スクリプト
複数の構成、データ定義、および共通の機能スクリプトを持っています: デモコンフィグ ミッションの定義。ゲーム状態、クライアント-サーバー通信のエンタリング。 デモグローバル設定 を開発する場所は 1つですが、他の場プレースで (およびプレイテスト) をリリースします。スクリプトは場所ID をチェックし、さまざまなチートとデバッグ機能を有効/無効にします。 DemoUtilities 。さまざまなユーティリティ機能。変換に対処する。視ibil性、錠定、その他のプロパティを設定。Checking for a point in a box。Finding objects in hierarchy by "dotted" name。Managing TempStorage (that can be used to temporarily move models "somewhere far" and bring back later)。クリックディテクターヘル AudioUtilities 。いくつかの関数で、セットから重設定する付きのランダムなサウンドを再生します。 GrabUtil 。グリップのためのヘルパー機能。