1
0
forked from cgvr/DeltaVR

npcs turn towards the player separately from being aggroed

This commit is contained in:
2026-03-12 18:57:30 +02:00
parent a6a6b036ca
commit fc083e7d81
9 changed files with 100 additions and 15 deletions

View File

@@ -7,15 +7,14 @@
* uurida miks buildis Whisper halvemini töötab * uurida miks buildis Whisper halvemini töötab
* proovida suuremat Whisperi mudelit, äkki töötab mürases keskkonnas paremini * proovida suuremat Whisperi mudelit, äkki töötab mürases keskkonnas paremini
* npc character: * npc character:
* eraldi trigger kust hakkab pöörama mängija poole, aga pole veel "aggro range'is"
* klaas on näha temast eespool * klaas on näha temast eespool
* shape detection: * shape detection:
* professor võiks öelda "good job, continue..." pärast esimest successi * professor võiks öelda "good job, continue..." pärast esimest successi
* kui kõik configurationid tehtud, siis professor ütleb "thank you" * kui kõik configurationid tehtud, siis professor ütleb "thank you"
* uks võiks käia ainult väljapoole
* peab mängijale kuidagi selgitama, kuidas scale'ida prinditud objekte * peab mängijale kuidagi selgitama, kuidas scale'ida prinditud objekte
* prinditud objekti scale'imisele min ja max size limiit * prinditud objekti scale'imisele min ja max size limiit
* soft particle'id, et ei clipiks * soft particle'id, et ei clipiks
* uks võiks käia ainult väljapoole
* archery range: * archery range:
* võiks jääda kordama viimast instruktsiooni, kui mängija ei progressi edasi * võiks jääda kordama viimast instruktsiooni, kui mängija ei progressi edasi
* kui archery range läbi, võiks npc öelda "good job, try again..." * kui archery range läbi, võiks npc öelda "good job, try again..."

View File

@@ -93,6 +93,7 @@ GameObject:
- component: {fileID: 7699707098595015193} - component: {fileID: 7699707098595015193}
- component: {fileID: 1413215456818694348} - component: {fileID: 1413215456818694348}
- component: {fileID: 483845010817450077} - component: {fileID: 483845010817450077}
- component: {fileID: 8646891389811022226}
m_Layer: 0 m_Layer: 0
m_Name: ArcheryRangeNPC m_Name: ArcheryRangeNPC
m_TagString: Untagged m_TagString: Untagged
@@ -267,7 +268,7 @@ MonoBehaviour:
_initializeOrder: 0 _initializeOrder: 0
_defaultDespawnType: 0 _defaultDespawnType: 0
NetworkObserver: {fileID: 0} NetworkObserver: {fileID: 0}
<PrefabId>k__BackingField: 18 <PrefabId>k__BackingField: 6
<SpawnableCollectionId>k__BackingField: 0 <SpawnableCollectionId>k__BackingField: 0
_scenePathHash: 0 _scenePathHash: 0
<SceneId>k__BackingField: 0 <SceneId>k__BackingField: 0
@@ -465,6 +466,27 @@ MonoBehaviour:
X: 0 X: 0
Y: 0 Y: 0
Z: 0 Z: 0
--- !u!135 &8646891389811022226
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: 1
serializedVersion: 3
m_Radius: 5
m_Center: {x: 0, y: 0, z: 0}
--- !u!1 &7802421088258943189 --- !u!1 &7802421088258943189
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@@ -195,6 +195,7 @@ GameObject:
- component: {fileID: 7699707098595015193} - component: {fileID: 7699707098595015193}
- component: {fileID: 1413215456818694348} - component: {fileID: 1413215456818694348}
- component: {fileID: 483845010817450077} - component: {fileID: 483845010817450077}
- component: {fileID: 8270600859684143550}
m_Layer: 0 m_Layer: 0
m_Name: CafeWaiterNPC m_Name: CafeWaiterNPC
m_TagString: Untagged m_TagString: Untagged
@@ -270,7 +271,7 @@ MonoBehaviour:
m_FallbackScreenDPI: 96 m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96 m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1 m_DynamicPixelsPerUnit: 1
m_PresetInfoIsWorld: 1 m_PresetInfoIsWorld: 0
--- !u!114 &6105090838799004608 --- !u!114 &6105090838799004608
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -569,6 +570,27 @@ MonoBehaviour:
X: 0 X: 0
Y: 0 Y: 0
Z: 0 Z: 0
--- !u!135 &8270600859684143550
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: 1
serializedVersion: 3
m_Radius: 5
m_Center: {x: 0, y: 0, z: 0}
--- !u!1 &7802421088258943189 --- !u!1 &7802421088258943189
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@@ -93,6 +93,7 @@ GameObject:
- component: {fileID: 1653195237934660084} - component: {fileID: 1653195237934660084}
- component: {fileID: 1413215456818694348} - component: {fileID: 1413215456818694348}
- component: {fileID: 483845010817450077} - component: {fileID: 483845010817450077}
- component: {fileID: 1179918406964740421}
m_Layer: 0 m_Layer: 0
m_Name: ShapeDetectionNPC m_Name: ShapeDetectionNPC
m_TagString: Untagged m_TagString: Untagged
@@ -233,10 +234,14 @@ MonoBehaviour:
questMarker: {fileID: 0} questMarker: {fileID: 0}
radio: {fileID: 0} radio: {fileID: 0}
computerKeyboardKey: {fileID: 0} computerKeyboardKey: {fileID: 0}
computerPrinter: {fileID: 0}
printerInsertionHole: {fileID: 0} printerInsertionHole: {fileID: 0}
computerPrinter: {fileID: 0}
shapeScanner: {fileID: 0} shapeScanner: {fileID: 0}
staticRadio: {fileID: 0}
questMarkerPoint: {fileID: 0}
radioAmount: 1 radioAmount: 1
movementPath: []
moveSpeedPerSecond: 2
--- !u!114 &1413215456818694348 --- !u!114 &1413215456818694348
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -459,6 +464,27 @@ MonoBehaviour:
X: 0 X: 0
Y: 0 Y: 0
Z: 0 Z: 0
--- !u!135 &1179918406964740421
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: 1
serializedVersion: 3
m_Radius: 5
m_Center: {x: 0, y: 0, z: 0}
--- !u!1 &7802421088258943189 --- !u!1 &7802421088258943189
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@@ -121,14 +121,14 @@ public abstract class NPCController : MonoBehaviour
currentVoicelineEvent.release(); currentVoicelineEvent.release();
} }
public void PlayerApproach(Transform player) { public void PlayerApproach() {
playerTransform = player;
OnPlayerApproach(); OnPlayerApproach();
} }
public void PlayerLeave() public void PlayerLeave()
{ {
playerTransform = null;
OnPlayerLeave(); OnPlayerLeave();
} }
@@ -136,6 +136,22 @@ public abstract class NPCController : MonoBehaviour
protected virtual void OnPlayerLeave() {} protected virtual void OnPlayerLeave() {}
private void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == "Player Head")
{
playerTransform = other.transform;
}
}
private void OnTriggerExit(Collider other)
{
if (other.gameObject.tag == "Player Head")
{
playerTransform = null;
}
}
public void SpeakVoiceLine(int voiceLineId, GameObject emitter = null, float radioAmount = 0f) public void SpeakVoiceLine(int voiceLineId, GameObject emitter = null, float radioAmount = 0f)
{ {
if (voiceLineId < 0 || voiceLineId >= voiceLineKeys.Length) if (voiceLineId < 0 || voiceLineId >= voiceLineKeys.Length)

View File

@@ -24,7 +24,7 @@ public class NPCTriggerArea : MonoBehaviour
if (isEnter && other.gameObject.tag == "Player Head") if (isEnter && other.gameObject.tag == "Player Head")
{ {
npcController.PlayerApproach(other.transform); npcController.PlayerApproach();
} }
} }

Binary file not shown.