Detailed Setup
Quick Tips & Troubleshooting
QUICK START: You can add the Door Kit - Demo Scene - Prefab to your project, to get a quick start with every part connected.
TextMeshPro Required
Please note that TMP will appear as a popup if not installed in your project
Click Import TMP Essentials to use the system fully
Door Prefab Rotation
Some door objects may appear flat when dragged from the prefabs folder
Set X rotation to -90 to fix this issue
System Setup
Step 1 - Setting Up The Player
Make sure you have a FPSController
Add a DoorInteractor script (This may be on the Main Camera already)
Ray Distance: This is how far you can interact with objects
Interaction Key: What key should we use for interaction clicks. Default: Mouse 0
Step 2 - Door Inventory Setup
Add a DoorInventory object from the prefabs folder (Details are explained below)
Inventory Key
What key press do we need to open the inventory
Key List
Will fill when you collect object (Leave blank)
Key Events
You can add the Door UI Manager to both slots and find the method (At the top of the list) for AddInventorySlot & RemoveInventorySlot to the respective area
Persistence
Choose whether you want this object to save between scenes
Whether you want to enable automatic saving (Remember all Key ScriptableObjects need to be in the resources folder to save correctly)
Debugs
Using the custom editor buttons will allow you to check for a saved file, delete it or search the location for a saved file
Details about the JSON Saving system can be found on the page linked
Step 3 - Door UI Manager Setup
Add a DoorUIManager object from the prefabs folder (If not already added & Details are explained below)
Object Interaction Prompts
InteractTextBG: UI background for interaction text
Interaction UI: UI interactionnametext object
IconImage: UI - Icon that can be displayed
KeyPromptUI: For the key prompts when collecting, using or removing
Notification UI
NotificationTextUI: Notification TextMeshPro gameobject from the UI
NotificationUIBG: The background UI object
Notification UI - Text Customisation:
Set the size, type, style and colour
Inventory Fields
Add the Inventory slot prefab from the prefabs folder
Add the Inventory Panel UI object
Fading duration when opening and closing the inventory
Timer
The timers for showing the popup UI of notifications on screen
Crosshair U
Add the Crosshair UI here
Step 4 - Door Audio Manager Setup
Add a Door Audio Manager object to your scene (If not already)
You can add the Sounds - ScriptableObjects to this to make them playable
More information on Audio Scriptables here
Step 5 - Adding Doors
Add a Door object to your project - This will require the following components
Box Collider
InteractablePrompt script (Optional Component)
DoorInteractable script
Step 5.1 - Interactable Prompt Settings (Optional Component)
More information on the Interactable Prompt here
Enable Prompt
Whether you want to interact prompt to show
Icon Parameters
Enable whether you want to show the icon from the UI manager
Key Prompt Parameters
Whether you want to show the KeyPromptText
Add text below to prompt for the player
Interaction Name Parameters:
Whether you want to show some kind of interaction text
Add the interaction text to this field
Step 5.2 - DoorInteractable Settings
Interactable Type
Select a Door or Drawer
Door Transform
Add the door to this slot here or the pivot point (If you're using a parent object)
Door Opening Settings
Set the angle, axis, speeds for opening and closing
Sound Delay Settings
Add the sounds scriptable objects and delay the audio if you like
Plank Settings
If you want to use planks over the doors to block it. Show it and set how many are above (Adding 1 or more to the plank count will make this become active)
Lock Settings
Choose whether to enable locking, set the text to appear via notification for when this is locked or unlocked.
Choose to remove the key and the SO
Spawning Items
Choose an item you want to appear at a spawn location - More information here
Step 6 - Creating Keys
Add a 3D object of a key to your scene and make sure it is setup as below:
Box Collider
InteractablePrompt script (Optional Component)
Key Collectable script
KeyScriptable: Add the relevant ScriptableObject to this slot
PickupSound: Add a pickup sound of your choice
More information can be found on this page
Step 7 - Spawning Objects
Spawning Objects Suggestion:
Spawning items in drawers, make sure the drawer has a mesh collider because you don't want another collider blocking the interaction
Box Colliders have a larger area and can block more precise interactions
Box colliders are good for general interactions
Mesh colliders are more expensive but required when doing things like items in drawers
You can find more information on setup here
Last updated