From a8e65514f41f757514532af8d6792c06b4bf7ed6 Mon Sep 17 00:00:00 2001 From: henrisel Date: Wed, 28 Jan 2026 14:23:16 +0200 Subject: [PATCH] refactor NPCController script, make it abstract, extendable; separate AlienNPC and CafeWaiterNPC --- 3d-generation-pipeline/README.md | 1 - Assets/DefaultPrefabObjects.asset | 4 +- .../NetworkPrefabs/KBMPlayer.prefab | 6 +- .../Characters/AlienNPC.prefab | 571 ++++++++++++++++++ ...rdNPC.prefab.meta => AlienNPC.prefab.meta} | 0 ...llboardNPC.prefab => CafeWaiterNPC.prefab} | 179 +++++- .../Characters/CafeWaiterNPC.prefab.meta | 7 + .../_PROJECT/Scenes/DeltaBuilding_base.unity | 4 +- .../_PROJECT/Scripts/ModeGeneration/NPCs.meta | 8 + .../Scripts/ModeGeneration/NPCs/AlienNPC.cs | 15 + .../ModeGeneration/NPCs/AlienNPC.cs.meta | 11 + .../ModeGeneration/NPCs/CafeWaiterNPC.cs | 16 + .../ModeGeneration/NPCs/CafeWaiterNPC.cs.meta | 11 + .../NPCs}/NPCController.cs | 31 +- .../NPCs}/NPCController.cs.meta | 0 15 files changed, 823 insertions(+), 41 deletions(-) create mode 100644 Assets/_PROJECT/Prefabs/ModelGeneration/Characters/AlienNPC.prefab rename Assets/_PROJECT/Prefabs/ModelGeneration/Characters/{BillboardNPC.prefab.meta => AlienNPC.prefab.meta} (100%) rename Assets/_PROJECT/Prefabs/ModelGeneration/Characters/{BillboardNPC.prefab => CafeWaiterNPC.prefab} (78%) create mode 100644 Assets/_PROJECT/Prefabs/ModelGeneration/Characters/CafeWaiterNPC.prefab.meta create mode 100644 Assets/_PROJECT/Scripts/ModeGeneration/NPCs.meta create mode 100644 Assets/_PROJECT/Scripts/ModeGeneration/NPCs/AlienNPC.cs create mode 100644 Assets/_PROJECT/Scripts/ModeGeneration/NPCs/AlienNPC.cs.meta create mode 100644 Assets/_PROJECT/Scripts/ModeGeneration/NPCs/CafeWaiterNPC.cs create mode 100644 Assets/_PROJECT/Scripts/ModeGeneration/NPCs/CafeWaiterNPC.cs.meta rename Assets/_PROJECT/Scripts/{ => ModeGeneration/NPCs}/NPCController.cs (69%) rename Assets/_PROJECT/Scripts/{ => ModeGeneration/NPCs}/NPCController.cs.meta (100%) diff --git a/3d-generation-pipeline/README.md b/3d-generation-pipeline/README.md index 17690fde..06531cd7 100644 --- a/3d-generation-pipeline/README.md +++ b/3d-generation-pipeline/README.md @@ -13,7 +13,6 @@ * highscore json tühjaks * quest marker järjest järgmise tegevuse kohal: mikrofon, siis nupud * character billboard: - * peaks vaatama pea poole, mitte xr origin * klaas on näha temast eespool * pööramine kaamera poole - sujuvalt (slerp) diff --git a/Assets/DefaultPrefabObjects.asset b/Assets/DefaultPrefabObjects.asset index 3ad2f828..cffcd5b5 100644 --- a/Assets/DefaultPrefabObjects.asset +++ b/Assets/DefaultPrefabObjects.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4fb1f320c2d0ae3f8352cbbdb2b998905794490b709402e89d63cd78f7ed26dc -size 2328 +oid sha256:413b9d4cc7215e0a0971e4f5ebb16882e48900116c180bb7d405519dd8593dd9 +size 2411 diff --git a/Assets/_PROJECT/Multiplayer/NetworkPrefabs/KBMPlayer.prefab b/Assets/_PROJECT/Multiplayer/NetworkPrefabs/KBMPlayer.prefab index 35076b6c..e63ca8c6 100644 --- a/Assets/_PROJECT/Multiplayer/NetworkPrefabs/KBMPlayer.prefab +++ b/Assets/_PROJECT/Multiplayer/NetworkPrefabs/KBMPlayer.prefab @@ -14,7 +14,7 @@ GameObject: - component: {fileID: 5044934254662751385} m_Layer: 0 m_Name: Camera - m_TagString: Untagged + m_TagString: Player Head m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 @@ -150,7 +150,7 @@ GameObject: - component: {fileID: 4988939121945913031} m_Layer: 0 m_Name: KBMPlayer - m_TagString: Untagged + m_TagString: Player Head m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 @@ -253,7 +253,7 @@ GameObject: - component: {fileID: 5514715047119596940} m_Layer: 0 m_Name: Capsule - m_TagString: Untagged + m_TagString: Player Head m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 diff --git a/Assets/_PROJECT/Prefabs/ModelGeneration/Characters/AlienNPC.prefab b/Assets/_PROJECT/Prefabs/ModelGeneration/Characters/AlienNPC.prefab new file mode 100644 index 00000000..5a4d69e2 --- /dev/null +++ b/Assets/_PROJECT/Prefabs/ModelGeneration/Characters/AlienNPC.prefab @@ -0,0 +1,571 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1758614216652057599 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6822286665445551211} + - component: {fileID: 7293572772725810188} + - component: {fileID: 3429438874807908211} + m_Layer: 0 + m_Name: MainImage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6822286665445551211 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1758614216652057599} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.00069064, y: 0.00069064, z: 0.00069064} + m_ConstrainProportionsScale: 1 + m_Children: + - {fileID: 5759406807219530703} + m_Father: {fileID: 5657737279223690836} + m_RootOrder: -1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0, y: 0.188} + m_SizeDelta: {x: 1224, y: 2048} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7293572772725810188 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1758614216652057599} + m_CullTransparentMesh: 1 +--- !u!114 &3429438874807908211 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1758614216652057599} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: d6c8339abbe148d41922111b7cb9864b, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &4663194936290788516 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5657737279223690836} + - component: {fileID: 629815897227783454} + - component: {fileID: 584286906844083765} + - component: {fileID: 6105090838799004608} + - component: {fileID: 5789790698403274331} + - component: {fileID: 7699707098595015193} + - component: {fileID: 1155083335105893391} + - component: {fileID: 7315184541177211783} + - component: {fileID: 1413215456818694348} + - component: {fileID: 483845010817450077} + m_Layer: 0 + m_Name: AlienNPC + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5657737279223690836 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4663194936290788516} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 6822286665445551211} + m_Father: {fileID: 0} + m_RootOrder: -1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 250, y: 250} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!223 &629815897227783454 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4663194936290788516} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_UpdateRectTransformForStandalone: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &584286906844083765 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4663194936290788516} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!114 &6105090838799004608 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4663194936290788516} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &5789790698403274331 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4663194936290788516} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ea1b6453c1ef8e24d921a6dbaa549eba, type: 3} + m_Name: + m_EditorClassIdentifier: + mouthTransform: {fileID: 5759406807219530703} + mouthScalingMultiplier: 2.5 + mouthMovementDuration: 0.25 + voiceLineKeys: + - Alien/Madis_Look2 + - Alien/Madis_Mic_Speak1 + - Alien/Madis_Button_Press2 + - +--- !u!114 &7699707098595015193 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4663194936290788516} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6c6205a218222364ca440c740b7a6b8f, type: 3} + m_Name: + m_EditorClassIdentifier: + SelectAudio: + Guid: + Data1: -324096350 + Data2: 1099316438 + Data3: -1292984414 + Data4: -378837710 + Path: event:/Voiceovers/Voicelines_DeltaVR + SoundOcclusionWidening: 1 + PlayerOcclusionWidening: 1 + OcclusionLayer: + serializedVersion: 2 + m_Bits: 0 +--- !u!135 &1155083335105893391 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4663194936290788516} + 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: 0 + serializedVersion: 3 + m_Radius: 5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!65 &7315184541177211783 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4663194936290788516} + 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: 7.5, y: 2, z: 7.5} + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &1413215456818694348 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4663194936290788516} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 26b716c41e9b56b4baafaf13a523ba2e, type: 3} + m_Name: + m_EditorClassIdentifier: + k__BackingField: 0 + k__BackingField: 0 + k__BackingField: {fileID: 0} + _networkBehaviours: + - {fileID: 483845010817450077} + k__BackingField: {fileID: 0} + k__BackingField: [] + _isNetworked: 1 + _isGlobal: 0 + _initializeOrder: 0 + _defaultDespawnType: 0 + NetworkObserver: {fileID: 0} + k__BackingField: 18 + k__BackingField: 0 + _scenePathHash: 0 + k__BackingField: 0 + k__BackingField: 13446978597385568795 + _sceneNetworkObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 1413215456818694348} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} +--- !u!114 &483845010817450077 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4663194936290788516} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a2836e36774ca1c4bbbee976e17b649c, type: 3} + m_Name: + m_EditorClassIdentifier: + _componentIndexCache: 0 + _addedNetworkObject: {fileID: 1413215456818694348} + _networkObjectCache: {fileID: 1413215456818694348} + _synchronizeParent: 0 + _packing: + Position: 1 + Rotation: 1 + Scale: 0 + _interpolation: 2 + _extrapolation: 2 + _enableTeleport: 0 + _teleportThreshold: 1 + _clientAuthoritative: 1 + _sendToOwner: 1 + _synchronizePosition: 1 + _positionSnapping: + X: 0 + Y: 0 + Z: 0 + _synchronizeRotation: 1 + _rotationSnapping: + X: 0 + Y: 0 + Z: 0 + _synchronizeScale: 1 + _scaleSnapping: + X: 0 + Y: 0 + Z: 0 +--- !u!1 &7802421088258943189 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5759406807219530703} + - component: {fileID: 7165916293981694318} + - component: {fileID: 6022352331462232051} + m_Layer: 0 + m_Name: Mouth + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5759406807219530703 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7802421088258943189} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0} + m_LocalScale: {x: 4.2348323, y: 4.2348323, z: 4.2348323} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6822286665445551211} + m_RootOrder: -1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 82, y: -129} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7165916293981694318 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7802421088258943189} + m_CullTransparentMesh: 1 +--- !u!114 &6022352331462232051 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7802421088258943189} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 4e1109ed0698828469be212e037d25a8, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 diff --git a/Assets/_PROJECT/Prefabs/ModelGeneration/Characters/BillboardNPC.prefab.meta b/Assets/_PROJECT/Prefabs/ModelGeneration/Characters/AlienNPC.prefab.meta similarity index 100% rename from Assets/_PROJECT/Prefabs/ModelGeneration/Characters/BillboardNPC.prefab.meta rename to Assets/_PROJECT/Prefabs/ModelGeneration/Characters/AlienNPC.prefab.meta diff --git a/Assets/_PROJECT/Prefabs/ModelGeneration/Characters/BillboardNPC.prefab b/Assets/_PROJECT/Prefabs/ModelGeneration/Characters/CafeWaiterNPC.prefab similarity index 78% rename from Assets/_PROJECT/Prefabs/ModelGeneration/Characters/BillboardNPC.prefab rename to Assets/_PROJECT/Prefabs/ModelGeneration/Characters/CafeWaiterNPC.prefab index 45370bf3..fe14cb28 100644 --- a/Assets/_PROJECT/Prefabs/ModelGeneration/Characters/BillboardNPC.prefab +++ b/Assets/_PROJECT/Prefabs/ModelGeneration/Characters/CafeWaiterNPC.prefab @@ -27,7 +27,7 @@ RectTransform: m_GameObject: {fileID: 1758614216652057599} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_LocalScale: {x: 0.00069064, y: 0.00069064, z: 0.00069064} m_ConstrainProportionsScale: 1 m_Children: - {fileID: 5759406807219530703} @@ -36,7 +36,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0} + m_AnchoredPosition: {x: -0, y: 0.188} m_SizeDelta: {x: 1224, y: 2048} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &7293572772725810188 @@ -89,13 +89,13 @@ GameObject: - component: {fileID: 629815897227783454} - component: {fileID: 584286906844083765} - component: {fileID: 6105090838799004608} - - component: {fileID: 6238040606326453210} + - component: {fileID: 2850739244050060128} - component: {fileID: 7699707098595015193} - - component: {fileID: 1155083335105893391} + - component: {fileID: 7980494176537648463} - component: {fileID: 1413215456818694348} - component: {fileID: 483845010817450077} m_Layer: 0 - m_Name: BillboardNPC + m_Name: CafeWaiterNPC m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -184,7 +184,7 @@ MonoBehaviour: m_BlockingMask: serializedVersion: 2 m_Bits: 4294967295 ---- !u!114 &6238040606326453210 +--- !u!114 &2850739244050060128 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -193,13 +193,15 @@ MonoBehaviour: m_GameObject: {fileID: 4663194936290788516} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: baa11cfc03dc213438961722257e2e94, type: 3} + m_Script: {fileID: 11500000, guid: 8a215290e2c2e1d43983b61cb160e241, type: 3} m_Name: m_EditorClassIdentifier: mouthTransform: {fileID: 5759406807219530703} mouthScalingMultiplier: 2.5 mouthMovementDuration: 0.25 - voiceLineKeys: [] + voiceLineKeys: + - Chef/Ulrich_Serve + - Ulrich_Terribly_Sorry_1 --- !u!114 &7699707098595015193 MonoBehaviour: m_ObjectHideFlags: 0 @@ -224,8 +226,8 @@ MonoBehaviour: OcclusionLayer: serializedVersion: 2 m_Bits: 0 ---- !u!135 &1155083335105893391 -SphereCollider: +--- !u!65 &7980494176537648463 +BoxCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} @@ -243,7 +245,7 @@ SphereCollider: m_ProvidesContacts: 0 m_Enabled: 1 serializedVersion: 3 - m_Radius: 5 + m_Size: {x: 5, y: 1, z: 5} m_Center: {x: 0, y: 0, z: 0} --- !u!114 &1413215456818694348 MonoBehaviour: @@ -273,8 +275,159 @@ MonoBehaviour: k__BackingField: 0 _scenePathHash: 0 k__BackingField: 0 - k__BackingField: 13803629248975202771 - _sceneNetworkObjects: [] + k__BackingField: 836791613782540943 + _sceneNetworkObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 1413215456818694348} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} --- !u!114 &483845010817450077 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Assets/_PROJECT/Prefabs/ModelGeneration/Characters/CafeWaiterNPC.prefab.meta b/Assets/_PROJECT/Prefabs/ModelGeneration/Characters/CafeWaiterNPC.prefab.meta new file mode 100644 index 00000000..be85969f --- /dev/null +++ b/Assets/_PROJECT/Prefabs/ModelGeneration/Characters/CafeWaiterNPC.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2e263777ed105764cbdb92993c36d129 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_PROJECT/Scenes/DeltaBuilding_base.unity b/Assets/_PROJECT/Scenes/DeltaBuilding_base.unity index 9722823f..31a84ebf 100644 --- a/Assets/_PROJECT/Scenes/DeltaBuilding_base.unity +++ b/Assets/_PROJECT/Scenes/DeltaBuilding_base.unity @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:defd3e6e7fe3df5288221f83613d5bb4f05e743f0c396d2ba20aa30023fb8b53 -size 67906882 +oid sha256:8620527e88baf86d382f49b07ff3eb1ca95263bcf1d54e56cbd1b31a6f6be4ac +size 67946801 diff --git a/Assets/_PROJECT/Scripts/ModeGeneration/NPCs.meta b/Assets/_PROJECT/Scripts/ModeGeneration/NPCs.meta new file mode 100644 index 00000000..0a3fe4fa --- /dev/null +++ b/Assets/_PROJECT/Scripts/ModeGeneration/NPCs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8993dd48830472642b4b2c8a4c6e291c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_PROJECT/Scripts/ModeGeneration/NPCs/AlienNPC.cs b/Assets/_PROJECT/Scripts/ModeGeneration/NPCs/AlienNPC.cs new file mode 100644 index 00000000..12b42711 --- /dev/null +++ b/Assets/_PROJECT/Scripts/ModeGeneration/NPCs/AlienNPC.cs @@ -0,0 +1,15 @@ +using UnityEngine; + +public class AlienNPC : NPCController +{ + protected override void OnPlayerApproach() + { + Debug.Log("Alien NPC: player approached"); + AudioManager.Instance.PlayDialogue(voiceLineKeys[0], gameObject); + } + + protected override void OnPlayerLeave() + { + Debug.Log("Alien NPC: player left"); + } +} diff --git a/Assets/_PROJECT/Scripts/ModeGeneration/NPCs/AlienNPC.cs.meta b/Assets/_PROJECT/Scripts/ModeGeneration/NPCs/AlienNPC.cs.meta new file mode 100644 index 00000000..3378a049 --- /dev/null +++ b/Assets/_PROJECT/Scripts/ModeGeneration/NPCs/AlienNPC.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ea1b6453c1ef8e24d921a6dbaa549eba +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_PROJECT/Scripts/ModeGeneration/NPCs/CafeWaiterNPC.cs b/Assets/_PROJECT/Scripts/ModeGeneration/NPCs/CafeWaiterNPC.cs new file mode 100644 index 00000000..372c0db2 --- /dev/null +++ b/Assets/_PROJECT/Scripts/ModeGeneration/NPCs/CafeWaiterNPC.cs @@ -0,0 +1,16 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class CafeWaiterNPC : NPCController +{ + protected override void OnPlayerApproach() + { + AudioManager.Instance.PlayDialogue(voiceLineKeys[0], gameObject); + } + + protected override void OnPlayerLeave() + { + AudioManager.Instance.PlayDialogue(voiceLineKeys[1], gameObject); + } +} diff --git a/Assets/_PROJECT/Scripts/ModeGeneration/NPCs/CafeWaiterNPC.cs.meta b/Assets/_PROJECT/Scripts/ModeGeneration/NPCs/CafeWaiterNPC.cs.meta new file mode 100644 index 00000000..6d29ad23 --- /dev/null +++ b/Assets/_PROJECT/Scripts/ModeGeneration/NPCs/CafeWaiterNPC.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8a215290e2c2e1d43983b61cb160e241 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_PROJECT/Scripts/NPCController.cs b/Assets/_PROJECT/Scripts/ModeGeneration/NPCs/NPCController.cs similarity index 69% rename from Assets/_PROJECT/Scripts/NPCController.cs rename to Assets/_PROJECT/Scripts/ModeGeneration/NPCs/NPCController.cs index 6527e518..9cca2756 100644 --- a/Assets/_PROJECT/Scripts/NPCController.cs +++ b/Assets/_PROJECT/Scripts/ModeGeneration/NPCs/NPCController.cs @@ -1,14 +1,12 @@ using DG.Tweening; -using System.Collections; -using Unity.XR.CoreUtils; using UnityEngine; -public class NPCController : MonoBehaviour +public abstract class NPCController : MonoBehaviour { private Vector3 mouthClosedScale; private Vector3 mouthOpenScale; private bool isTalking; - private Transform playerTransform; + protected Transform playerTransform; public Transform mouthTransform; public float mouthScalingMultiplier = 2.5f; @@ -43,33 +41,26 @@ public class NPCController : MonoBehaviour private void OnTriggerEnter(Collider other) { - KbmController controller = other.GetComponent(); - XROrigin playerOrigin = other.GetComponent(); - if (controller != null) + if (other.gameObject.tag == "Player Head") { - playerTransform = controller.transform; - AudioManager.Instance.PlayDialogue(voiceLineKeys[0], gameObject); - } else if (playerOrigin != null) - { - playerTransform = playerOrigin.transform; - AudioManager.Instance.PlayDialogue(voiceLineKeys[0], gameObject); + playerTransform = other.transform; + OnPlayerApproach(); } } + protected virtual void OnPlayerApproach() {} + private void OnTriggerExit(Collider other) { - KbmController controller = other.GetComponent(); - XROrigin playerOrigin = other.GetComponent(); - if (controller != null) - { - playerTransform = null; - } - else if (playerOrigin != null) + if (other.gameObject.tag == "Player Head") { playerTransform = null; + OnPlayerLeave(); } } + protected virtual void OnPlayerLeave() {} + public void SpeakVoiceLine(int voiceLineId) { AudioManager.Instance.PlayDialogue(voiceLineKeys[voiceLineId], gameObject); diff --git a/Assets/_PROJECT/Scripts/NPCController.cs.meta b/Assets/_PROJECT/Scripts/ModeGeneration/NPCs/NPCController.cs.meta similarity index 100% rename from Assets/_PROJECT/Scripts/NPCController.cs.meta rename to Assets/_PROJECT/Scripts/ModeGeneration/NPCs/NPCController.cs.meta