respawning

This commit is contained in:
2023-04-11 13:40:17 +02:00
parent fd44becec0
commit a0aaf5e87d
12 changed files with 586 additions and 164 deletions

View File

@@ -1,5 +1,80 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &261657313129027875
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7923022385326637093}
- component: {fileID: 2868191364499615810}
- component: {fileID: 5240132829499334097}
- component: {fileID: 6758834897188183274}
m_Layer: 0
m_Name: Respawn Trigger
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &7923022385326637093
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 261657313129027875}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: -5, z: 0}
m_LocalScale: {x: 100, y: 10, z: 100}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7933998900790106032}
m_RootOrder: -1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &2868191364499615810
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 261657313129027875}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!65 &5240132829499334097
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 261657313129027875}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 1
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!114 &6758834897188183274
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 261657313129027875}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7a0c8567dfd74fefb6f5e90098ab7af3, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &5743657079028767629
GameObject:
m_ObjectHideFlags: 0
@@ -30,7 +105,7 @@ Transform:
m_Children:
- {fileID: 7933998900790106032}
m_Father: {fileID: 0}
m_RootOrder: 0
m_RootOrder: -1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &8236754837553209924
GameObject:
@@ -61,6 +136,7 @@ Transform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 8825350056022503906}
- {fileID: 7923022385326637093}
m_Father: {fileID: 7626240558108670521}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -69,7 +145,7 @@ PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 2
serializedVersion: 3
m_TransformParent: {fileID: 7933998900790106032}
m_Modifications:
- target: {fileID: -8679921383154817045, guid: 3a11a6b6fc0ad1a429fa098c08e2c361,
@@ -138,7 +214,13 @@ PrefabInstance:
value: Desert Floor
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents:
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: 3a11a6b6fc0ad1a429fa098c08e2c361,
type: 3}
insertIndex: -1
addedObject: {fileID: 1902631214646309221}
m_SourcePrefab: {fileID: 100100000, guid: 3a11a6b6fc0ad1a429fa098c08e2c361, type: 3}
--- !u!1 &8156618926076308312 stripped
GameObject:

View File

@@ -121,7 +121,7 @@ Transform:
m_Children:
- {fileID: 6621787781305821930}
m_Father: {fileID: 0}
m_RootOrder: 0
m_RootOrder: -1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!135 &1036238382491359241
SphereCollider:
@@ -131,9 +131,17 @@ SphereCollider:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6665240268073425225}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 2
serializedVersion: 3
m_Radius: 0.08350818
m_Center: {x: -0.016491815, y: 0, z: 0}
--- !u!135 &8622568307222677767
@@ -144,9 +152,17 @@ SphereCollider:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6665240268073425225}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 2
serializedVersion: 3
m_Radius: 0.08350818
m_Center: {x: 0.01649182, y: 0, z: 0}
--- !u!135 &2301225619036503967
@@ -157,9 +173,17 @@ SphereCollider:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6665240268073425225}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 2
serializedVersion: 3
m_Radius: 0.08350818
m_Center: {x: 0, y: 0, z: -0.01649182}
--- !u!135 &33709339505785279
@@ -170,9 +194,17 @@ SphereCollider:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6665240268073425225}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 2
serializedVersion: 3
m_Radius: 0.08350818
m_Center: {x: 0, y: 0, z: 0.01649182}
--- !u!54 &6665240268073425228
@@ -182,15 +214,26 @@ Rigidbody:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6665240268073425225}
serializedVersion: 2
serializedVersion: 4
m_Mass: 0.1
m_Drag: 0
m_AngularDrag: 0.05
m_CenterOfMass: {x: 0, y: 0, z: 0}
m_InertiaTensor: {x: 1, y: 1, z: 1}
m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_ImplicitCom: 1
m_ImplicitTensor: 1
m_UseGravity: 1
m_IsKinematic: 0
m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 0
m_CollisionDetection: 2
--- !u!114 &7480587180842755505
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -236,6 +279,7 @@ MonoBehaviour:
m_Bits: 4294967295
m_InteractionLayers:
m_Bits: 1
m_DistanceCalculationMode: 1
m_SelectMode: 0
m_CustomReticle: {fileID: 0}
m_FirstHoverEntered:
@@ -268,6 +312,8 @@ MonoBehaviour:
m_Deactivated:
m_PersistentCalls:
m_Calls: []
m_StartingHoverFilters: []
m_StartingSelectFilters: []
m_OnFirstHoverEntered:
m_PersistentCalls:
m_Calls: []
@@ -296,6 +342,10 @@ MonoBehaviour:
m_PersistentCalls:
m_Calls: []
m_AttachTransform: {fileID: 0}
m_UseDynamicAttach: 0
m_MatchAttachPosition: 1
m_MatchAttachRotation: 1
m_SnapToColliderVolume: 1
m_AttachEaseInTime: 0.15
m_MovementType: 0
m_VelocityDamping: 1
@@ -332,3 +382,6 @@ MonoBehaviour:
m_ForceGravityOnDetach: 0
m_RetainTransformParent: 1
m_AttachPointCompatibilityMode: 0
m_StartingSingleGrabTransformers: []
m_StartingMultipleGrabTransformers: []
m_AddDefaultGrabTransformers: 1

View File

@@ -0,0 +1,97 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1001 &3078857717803341424
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 6665240268073425225, guid: 39c7a496fd0efad4cbb5e6fe1a171309,
type: 3}
propertyPath: m_Name
value: Respawning Dispenser Orb
objectReference: {fileID: 0}
- target: {fileID: 6665240268073425229, guid: 39c7a496fd0efad4cbb5e6fe1a171309,
type: 3}
propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6665240268073425229, guid: 39c7a496fd0efad4cbb5e6fe1a171309,
type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6665240268073425229, guid: 39c7a496fd0efad4cbb5e6fe1a171309,
type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6665240268073425229, guid: 39c7a496fd0efad4cbb5e6fe1a171309,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6665240268073425229, guid: 39c7a496fd0efad4cbb5e6fe1a171309,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6665240268073425229, guid: 39c7a496fd0efad4cbb5e6fe1a171309,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6665240268073425229, guid: 39c7a496fd0efad4cbb5e6fe1a171309,
type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6665240268073425229, guid: 39c7a496fd0efad4cbb5e6fe1a171309,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6665240268073425229, guid: 39c7a496fd0efad4cbb5e6fe1a171309,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6665240268073425229, guid: 39c7a496fd0efad4cbb5e6fe1a171309,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6665240268073425229, guid: 39c7a496fd0efad4cbb5e6fe1a171309,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents:
- targetCorrespondingSourceObject: {fileID: 6665240268073425225, guid: 39c7a496fd0efad4cbb5e6fe1a171309,
type: 3}
insertIndex: -1
addedObject: {fileID: 1397504423829359831}
m_SourcePrefab: {fileID: 100100000, guid: 39c7a496fd0efad4cbb5e6fe1a171309, type: 3}
--- !u!1 &8558524283348193081 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 6665240268073425225, guid: 39c7a496fd0efad4cbb5e6fe1a171309,
type: 3}
m_PrefabInstance: {fileID: 3078857717803341424}
m_PrefabAsset: {fileID: 0}
--- !u!114 &1397504423829359831
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8558524283348193081}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 883312c0b43e43d4bd9b113d29da2ee2, type: 3}
m_Name:
m_EditorClassIdentifier:

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 47b21ad213905c342b92fc5b384878c4
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -32,6 +32,7 @@ Transform:
- {fileID: 4962209360291872147}
- {fileID: 8028899283464672130}
- {fileID: 2517468216669162399}
- {fileID: 677046973731718451}
m_Father: {fileID: 0}
m_RootOrder: -1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -48,6 +49,85 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
size: {x: 1, y: 1}
--- !u!1001 &2036437371661111836
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 463845462802249093}
m_Modifications:
- target: {fileID: 251845578051121456, guid: 62927df188f2d924abbd1345eb9d2cdf,
type: 3}
propertyPath: m_Name
value: Redirector 4
objectReference: {fileID: 0}
- target: {fileID: 1524393306245076783, guid: 62927df188f2d924abbd1345eb9d2cdf,
type: 3}
propertyPath: m_RootOrder
value: -1
objectReference: {fileID: 0}
- target: {fileID: 1524393306245076783, guid: 62927df188f2d924abbd1345eb9d2cdf,
type: 3}
propertyPath: m_LocalPosition.x
value: 0.104
objectReference: {fileID: 0}
- target: {fileID: 1524393306245076783, guid: 62927df188f2d924abbd1345eb9d2cdf,
type: 3}
propertyPath: m_LocalPosition.y
value: 0.125
objectReference: {fileID: 0}
- target: {fileID: 1524393306245076783, guid: 62927df188f2d924abbd1345eb9d2cdf,
type: 3}
propertyPath: m_LocalPosition.z
value: 0.333
objectReference: {fileID: 0}
- target: {fileID: 1524393306245076783, guid: 62927df188f2d924abbd1345eb9d2cdf,
type: 3}
propertyPath: m_LocalRotation.w
value: 0.00000007872404
objectReference: {fileID: 0}
- target: {fileID: 1524393306245076783, guid: 62927df188f2d924abbd1345eb9d2cdf,
type: 3}
propertyPath: m_LocalRotation.x
value: 0.715814
objectReference: {fileID: 0}
- target: {fileID: 1524393306245076783, guid: 62927df188f2d924abbd1345eb9d2cdf,
type: 3}
propertyPath: m_LocalRotation.y
value: -0.00000015685944
objectReference: {fileID: 0}
- target: {fileID: 1524393306245076783, guid: 62927df188f2d924abbd1345eb9d2cdf,
type: 3}
propertyPath: m_LocalRotation.z
value: -0.698291
objectReference: {fileID: 0}
- target: {fileID: 1524393306245076783, guid: 62927df188f2d924abbd1345eb9d2cdf,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1524393306245076783, guid: 62927df188f2d924abbd1345eb9d2cdf,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: -451.41998
objectReference: {fileID: 0}
- target: {fileID: 1524393306245076783, guid: 62927df188f2d924abbd1345eb9d2cdf,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 180
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 62927df188f2d924abbd1345eb9d2cdf, type: 3}
--- !u!4 &677046973731718451 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 1524393306245076783, guid: 62927df188f2d924abbd1345eb9d2cdf,
type: 3}
m_PrefabInstance: {fileID: 2036437371661111836}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &4019572223174925488
PrefabInstance:
m_ObjectHideFlags: 0
@@ -227,7 +307,7 @@ PrefabInstance:
- target: {fileID: 1524393306245076783, guid: 62927df188f2d924abbd1345eb9d2cdf,
type: 3}
propertyPath: m_LocalPosition.x
value: -0.021999948
value: -0.0047
objectReference: {fileID: 0}
- target: {fileID: 1524393306245076783, guid: 62927df188f2d924abbd1345eb9d2cdf,
type: 3}
@@ -237,7 +317,7 @@ PrefabInstance:
- target: {fileID: 1524393306245076783, guid: 62927df188f2d924abbd1345eb9d2cdf,
type: 3}
propertyPath: m_LocalPosition.z
value: 0.08099992
value: 0.1603
objectReference: {fileID: 0}
- target: {fileID: 1524393306245076783, guid: 62927df188f2d924abbd1345eb9d2cdf,
type: 3}

View File

@@ -14,6 +14,7 @@ GameObject:
- component: {fileID: 4164828007642968986}
- component: {fileID: 5156043258505205515}
- component: {fileID: 7231726315279509463}
- component: {fileID: 65979914628935854}
m_Layer: 0
m_Name: Laser Redirector
m_TagString: Untagged
@@ -36,7 +37,7 @@ Transform:
- {fileID: 6130255007532736668}
- {fileID: 8905692309860668305}
m_Father: {fileID: 0}
m_RootOrder: 0
m_RootOrder: -1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &897376356061303010
MonoBehaviour:
@@ -238,6 +239,19 @@ Rigidbody:
m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 2
--- !u!114 &65979914628935854
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 251845578051121456}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 883312c0b43e43d4bd9b113d29da2ee2, type: 3}
m_Name:
m_EditorClassIdentifier:
spawn: {fileID: 0}
--- !u!1 &452836741980269854
GameObject:
m_ObjectHideFlags: 0

View File

@@ -0,0 +1,17 @@
using EscapeRoomEngine.Engine.Runtime.Utilities;
using UnityEngine;
namespace Station46.Scripts
{
[RequireComponent(typeof(Collider))]
public class RespawnTrigger : MonoBehaviour
{
private void Awake()
{
if (!GetComponent<Collider>().isTrigger)
{
throw new WrongTypeException($"{this} must have a trigger collider.");
}
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 7a0c8567dfd74fefb6f5e90098ab7af3
timeCreated: 1683720477

View File

@@ -0,0 +1,44 @@
using EscapeRoomEngine.Engine.Runtime.Utilities;
using UnityEngine;
namespace Station46.Scripts
{
/// <summary>
/// An object that will be placed in its original position if it falls off the platform.
/// </summary>
[RequireComponent(typeof(Collider), typeof(Rigidbody))]
public class Respawning : MonoBehaviour
{
private Vector3 _spawnPosition;
private Quaternion _spawnRotation;
private Rigidbody _rigidbody;
private void Awake()
{
_rigidbody = GetComponent<Rigidbody>();
if (GetComponent<Collider>().isTrigger)
{
throw new WrongTypeException($"{this} must have a rigidbody collider.");
}
}
private void Start()
{
var t = transform;
_spawnPosition = t.position;
_spawnRotation = t.rotation;
}
private void OnTriggerEnter(Collider other)
{
var respawnTrigger = other.GetComponent<RespawnTrigger>();
if (respawnTrigger)
{
transform.SetPositionAndRotation(_spawnPosition, _spawnRotation);
_rigidbody.velocity = Vector3.zero;
_rigidbody.angularVelocity = Vector3.zero;
}
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 883312c0b43e43d4bd9b113d29da2ee2
timeCreated: 1683720386