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
* proovida suuremat Whisperi mudelit, äkki töötab mürases keskkonnas paremini
* npc character:
* eraldi trigger kust hakkab pöörama mängija poole, aga pole veel "aggro range'is"
* klaas on näha temast eespool
* shape detection:
* professor võiks öelda "good job, continue..." pärast esimest successi
* 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
* prinditud objekti scale'imisele min ja max size limiit
* soft particle'id, et ei clipiks
* uks võiks käia ainult väljapoole
* archery range:
* 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..."

View File

@@ -93,6 +93,7 @@ GameObject:
- component: {fileID: 7699707098595015193}
- component: {fileID: 1413215456818694348}
- component: {fileID: 483845010817450077}
- component: {fileID: 8646891389811022226}
m_Layer: 0
m_Name: ArcheryRangeNPC
m_TagString: Untagged
@@ -267,7 +268,7 @@ MonoBehaviour:
_initializeOrder: 0
_defaultDespawnType: 0
NetworkObserver: {fileID: 0}
<PrefabId>k__BackingField: 18
<PrefabId>k__BackingField: 6
<SpawnableCollectionId>k__BackingField: 0
_scenePathHash: 0
<SceneId>k__BackingField: 0
@@ -465,6 +466,27 @@ MonoBehaviour:
X: 0
Y: 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
GameObject:
m_ObjectHideFlags: 0

View File

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

View File

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

View File

@@ -121,14 +121,14 @@ public abstract class NPCController : MonoBehaviour
currentVoicelineEvent.release();
}
public void PlayerApproach(Transform player) {
playerTransform = player;
public void PlayerApproach() {
OnPlayerApproach();
}
public void PlayerLeave()
{
playerTransform = null;
OnPlayerLeave();
}
@@ -136,6 +136,22 @@ public abstract class NPCController : MonoBehaviour
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)
{
if (voiceLineId < 0 || voiceLineId >= voiceLineKeys.Length)

View File

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

Binary file not shown.