Hệ điều hành hỗ trợ

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Chúng tôi đã sử dụng các hệ thống sau đây để hỗ trợ cả hai hệ thống gameplay cơ bản, cũng như bất kỳ mục tiêu nào của yêu cầu thiết kế chính .

Sử dụng Manager

Cung cấp một API đơn giản để áp dụng một đối tượng bị lấy trên một cái gậy như một mảnh quần áo vật phẩmtrên

Chúng tôi có thể loại bỏ "sử dụng" với UseManager.RemoveUse, which thường hữu ích khi một nhiệm vụ đã kết thúc hoặc một mục đã "được sử dụng". Ngoài ra, chúng tôi có thể thêm hoặc bỏ bớt mục tiêu với AddUseTargets và RemoveUseTargets</

Điểm nổi bật

This LocalScript utilizes a new engine tính năngHighlight that draws an outline of an object and/or fills the

HighlightItemsFunc được sử dụng để truyền thông với các hệ thống khác của khách hàng. Ví dụ,

Lore và ThoughtBubbles

Lore and ThoughtBubbles are 2 systems similar. Lore uses a ScreenGui as an on-screen UI container with a child

Lore được thực hiện trong LoreManger LocalScript . Khi nhấp hoặc chạm vào nó, nó phát ra một raycast bằng c

Lưu ý rằng chúng tôi sử dụng Camera.ViewportPointToRay hoặc Camera.ScreenPointToRay để xây dựng cái ray, tùy thuộc vào nếu nó đượ

ThoughtBubbles tổng thể tương tự, using a raycast to check if a mesh or its parents have a ThoughtBubble tag. It also uses the ThoughtText attribute for text, and a ThoughtBubble tag to point to a placeholder object used for positioning the UI in the world. Thought bubbles that use the same positional object but have different text have different cooldowns.

Các trường hợp đặc biệt

Lore có một vài trường hợp đặc bi LoreManager cũng xử lý một trường hợp đặc biệt với việc hiển thị một cảnh cắt nhỏ khi nhấp vào các cửa bị khóa cho đến khi người chơi nhặt lên chìa khóa của phòng.

Trên ItemIndicator

Chúng tôi muốn hiển thị các biểu tượng khác nhau ở trung tâm màn hình khi người chơi nhìn vào một số mặt hàng quan tâm nhất định. Kịch bản client OnItemindicator được thực hiện bằng cách phản chiếu các tia

Khi không có vật phẩm quan tâm được đánh, biểu tượng mặc định là một dấu chấm nhỏ. Chúng ta có thể thiết lập bất kỳ biểu tượng nào bằng cách thêm một đặt tính OnItemIndicator đ

Hãy kiểm tra một số trong một trình tư duy trọng tài. Sau khi OnItemIndicator đổi trạng thái, chúng tôi kiểm tra xem nó có phải là một thẻ tay hay một抽屉 cho


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

Các thẻ Lore và ThoughtBubble được kiểm tra sau khi kiểm tra các thẻ. Đối với các cửa, chúng tôi có 2 biểu tượng khác nhau: DoorCurrentlyClosed và

Quản lý cửa

The DoorManager LocalScript uses a Cửa tag and 1> Class.CollectionService1> to manage opening and closing doors. Door has front and back side triggers that we connect with touch and 4> 触摸结束4> events

Mỗi cánh cửa đều có một hệ thống trạng thái đơn giản, DoorState (Đóng, Mở, Mở, Đóng), với các thiết bị tweens được sử dụng cho các chuyển động. Chúng ta có thể bật hoặc tắt khả năng mở hoặc đóng cửa t

Chuyển động viên chính

The Class.LocalScript``UpdateImageAnimations(dT) playsAnimated images (texture atlas), which we used

Một đối tượng với một animator SurfaceGui có m

Hoạt Hình Quảng Cáo

The LocalSpaceAnimations LocalScript uses a LocalSpaceRotation tag to rotate most "cosmetic" objects with a given rotational velocity and delay around either the X, Y, or Z axis. We used

Quản lý đèn pha

The HeadlampManager LocalScript handle when users select the on-screen ImageButton to toggle the spotlight on top of their head on or tắt, fires comments to

Quản lý chỗ ngồi

Chúng tôi không muốn người chơi tự động ngồi khi gần mộ

Quản lý Drawer

Các DrawerManager tập tin sử dụng một nhãn Drawer2 và CollectionService để xử lý việc nhấp vào các hộp để mở hoặc đóng chúng, và chơi bất kỳ âm thanh tương ứng nào. Hoạt động mở và đóng bằng cách thiế

KillVolumes

Ở một vài khu vực của khu vực chơi chính, chẳng hạn như các ngọn lửa điện và nước gần với khu vực bắt đầu của con đ

PlayerMissionHồi sinh

Script PlayerMissionRespawn sử dụng một thẻ RespawnVolumeCollectionService để xử lý các kích thước mà khiến người chơi respawn khi chạm và

Khi xử lý GameEvents.PlayerRespawn , script có thể sử dụng RespawnPositions, nếu mission config cung cấp nó. Nếu không, nó sử dụ

Hệ thống giúp việc nhỏ

Quản lý Piano

Script PianoManager sử dụng một thẻ PianoCollectionService để thêm 1> Class.ClickDetector|ClickDetectors1> và chơi một trong những âm thanh piano khi nhấp vào bàn phím.

Hỗ trợ lễ vật

Phòng chờ nơi người chơi đặt hộp chữ ký có một cỗ máy phức tạp thay đổi khi mỗi hộp chữ ký được đặt ở vị trí định nghĩa của nó. Ví

Quản lý phục hồi

Một số đối tượng có thể lấy được là quan trọng cho trải nghiệm trò chơi, chẳng hạn như các hải cẩu, và chúng tôi không muốn chúng bị mất nế

Cổng thông tin

Trong một vài nhiệm vụ, chúng tôi dịch chuyển người chơi ngắn trong một nhiệm vụ, chẳng hạn như respawning players người thoát khỏi một nền tảng quay, để đơn gi


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

ProcessPortal kiểm tra xem mộtPart khác là một con người, dịch chuyển người chơi qua một CFrame biến đổi, và gọi một cảnh nhỏ để ẩn chuyển động bằng cách sử dụng một sự kiện Teleport_Jump trong

Tập lệnh cấu hình

Chúng tôi có một số cấu hình, định nghĩa dữ liệu và các tập lệnh chức năng chung: DemoConfig . Định nghĩa các nhiệm vụ. Danh sách đếm cho trạng thái trò chơi, sự kiện cho trò chơi client-server. DemoGlobalSettings . Chúng tôi phát triển ở một nơi, nhưng phát hành (và test) ở những nơi khác. Script kiểm tra placeID và bật/tắt các cheat và chức năng debug. DemoUtilities . Các chức năng công cụ khác nhau. Điều trị biến. Cài đặt độ hiển thị, kết nối hoặc các thuộc tính khác. Kiểm tra điểm trong một hộp. Tìm kiếm các thố AudioUtilities . Một vài hàm để chơi âm thanh ngẫu nhiên từ một cài đặtdữ liệu. GrabUtil . Các chức năng trợ giúp cho việc lấy.