1
0
forked from cgvr/DeltaVR

npc characters have separate trigger enter and exit areas

This commit is contained in:
2026-02-28 15:00:16 +02:00
parent df44849d0d
commit 9d780f4dbc
10 changed files with 165 additions and 95 deletions

View File

@@ -19,7 +19,6 @@
* shape scanneris prinditud objektid mõnikord ei kao ära kui config success
* archery range:
* mute/unmute ikooni värv mitte must (muted kollane, roheline)
* spawn point kaugemale
* mikrofon peaks lõpetama protsessimise ka siis kui mängija läheb ära mikri juurest
* mikril ontriggerenter collider peaks olema väiksem kui ontriggerexit collider
* võiks jääda kordama viimast instruktsiooni, kui mängija ei progressi edasi
@@ -29,9 +28,7 @@
* cafe:
* npc võiks olla keeratud sinu poole juba kaugelt
* toit võiks tulla kandiku peal/sees
* spawn point panna
* npc character:
* ontriggerenter collider peaks olema väiksem kui ontriggerexit collider
* klaas on näha temast eespool
* voicelines: list listidest, mille hulgast saab valida

View File

@@ -91,7 +91,6 @@ GameObject:
- component: {fileID: 6105090838799004608}
- component: {fileID: 5789790698403274331}
- component: {fileID: 7699707098595015193}
- component: {fileID: 7315184541177211783}
- component: {fileID: 1413215456818694348}
- component: {fileID: 483845010817450077}
m_Layer: 0
@@ -166,7 +165,7 @@ MonoBehaviour:
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
m_PresetInfoIsWorld: 1
m_PresetInfoIsWorld: 0
--- !u!114 &6105090838799004608
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -196,6 +195,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: ea1b6453c1ef8e24d921a6dbaa549eba, type: 3}
m_Name:
m_EditorClassIdentifier:
mouth: {fileID: 5759406807219530703}
turnSpeed: 5
voicelinesFolder: CharacterVoicelines
characterSpecificFolder:
voiceLineKeys:
@@ -203,13 +204,21 @@ MonoBehaviour:
- Alien/Madis_Mic_Speak1
- Alien/Madis_Button_Press2
-
mouth: {fileID: 5759406807219530703}
minScaleY: 1
maxScaleY: 9.7
gain: 60
attack: 0.6
release: 0.2
inverted: 1
questMarker: {fileID: 0}
microphoneStand: {fileID: 0}
microphoneStandQuestMarkerPoint: {fileID: 0}
imageGenerationButton: {fileID: 0}
modelGenerationButton: {fileID: 0}
imageDisplay: {fileID: 0}
modelDisplay: {fileID: 0}
modelDisplaySize: 0.75
startTargetQuestMarkerPoint: {fileID: 0}
--- !u!114 &7699707098595015193
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -234,27 +243,6 @@ MonoBehaviour:
OcclusionLayer:
serializedVersion: 2
m_Bits: 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

View File

@@ -96,6 +96,12 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 96a5bc0230ea8fe41b253c653699fecc, type: 3}
m_Name:
m_EditorClassIdentifier:
pen: {fileID: 0}
minDown: 0.2
maxDown: 0.6
minDur: 0.04
maxDur: 0.1
upFraction: 0.35
--- !u!1 &1758614216652057599
GameObject:
m_ObjectHideFlags: 0
@@ -187,7 +193,6 @@ GameObject:
- component: {fileID: 6105090838799004608}
- component: {fileID: 2850739244050060128}
- component: {fileID: 7699707098595015193}
- component: {fileID: 7980494176537648463}
- component: {fileID: 1413215456818694348}
- component: {fileID: 483845010817450077}
m_Layer: 0
@@ -264,7 +269,7 @@ MonoBehaviour:
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
m_PresetInfoIsWorld: 1
m_PresetInfoIsWorld: 0
--- !u!114 &6105090838799004608
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -314,7 +319,7 @@ MonoBehaviour:
fmodWhisperBridge: {fileID: 0}
notepad: {fileID: 4428142794029565387}
notepadText: {fileID: 1672365637701508529}
pen: {fileID: 1094134314776274198}
pen: {fileID: 8182716950090654063}
backRoom: {fileID: 0}
plate: {fileID: 0}
backRoomMovingTime: 5
@@ -344,27 +349,6 @@ MonoBehaviour:
OcclusionLayer:
serializedVersion: 2
m_Bits: 0
--- !u!65 &7980494176537648463
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: 3, y: 2, z: 3}
m_Center: {x: 0, y: 0.25, z: 0}
--- !u!114 &1413215456818694348
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -391,7 +375,7 @@ MonoBehaviour:
NetworkObserver: {fileID: 0}
<PrefabId>k__BackingField: 0
<SpawnableCollectionId>k__BackingField: 0
_scenePathHash: 353480863
_scenePathHash: 0
<SceneId>k__BackingField: 0
<AssetPathHash>k__BackingField: 836791613782540943
_sceneNetworkObjects:

View File

@@ -0,0 +1,70 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1234853364713064365
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4454773052242920378}
- component: {fileID: 6394222637539549817}
- component: {fileID: 3767251192208736515}
m_Layer: 0
m_Name: NPCTriggerArea
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &4454773052242920378
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1234853364713064365}
m_LocalRotation: {x: -0, y: 0.12863638, z: -0, w: 0.9916918}
m_LocalPosition: {x: -0.244, y: -0.6930001, z: 0.646}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: -1
m_LocalEulerAnglesHint: {x: 0, y: 14.782, z: 0}
--- !u!65 &6394222637539549817
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1234853364713064365}
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: 3.5, y: 2, z: 4}
m_Center: {x: 0, y: 0, z: 0}
--- !u!114 &3767251192208736515
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1234853364713064365}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7e0b023cc6a72a94d98cc0b4de447614, type: 3}
m_Name:
m_EditorClassIdentifier:
npcController: {fileID: 0}
isEnter: 1

View File

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

View File

@@ -91,7 +91,6 @@ GameObject:
- component: {fileID: 6105090838799004608}
- component: {fileID: 7699707098595015193}
- component: {fileID: 1653195237934660084}
- component: {fileID: 7980494176537648463}
- component: {fileID: 1413215456818694348}
- component: {fileID: 483845010817450077}
m_Layer: 0
@@ -231,29 +230,13 @@ MonoBehaviour:
attack: 0.6
release: 0.2
inverted: 0
fmodWhisperBridge: {fileID: 0}
ignorePlayerCollisionLayer: 2
--- !u!65 &7980494176537648463
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: 5, y: 1, z: 5}
m_Center: {x: 0, y: 0, z: 0}
questMarker: {fileID: 0}
radio: {fileID: 0}
computerKeyboardKey: {fileID: 0}
computerPrinter: {fileID: 0}
printerInsertionHole: {fileID: 0}
shapeScanner: {fileID: 0}
radioAmount: 1
--- !u!114 &1413215456818694348
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -278,7 +261,7 @@ MonoBehaviour:
_initializeOrder: 0
_defaultDespawnType: 0
NetworkObserver: {fileID: 0}
<PrefabId>k__BackingField: 0
<PrefabId>k__BackingField: 5
<SpawnableCollectionId>k__BackingField: 0
_scenePathHash: 0
<SceneId>k__BackingField: 0

View File

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

View File

@@ -0,0 +1,38 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NPCTriggerArea : MonoBehaviour
{
public NPCController npcController;
public bool isEnter;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
private void OnTriggerEnter(Collider other)
{
if (isEnter && other.gameObject.tag == "Player Head")
{
npcController.PlayerApproach(other.transform);
}
}
private void OnTriggerExit(Collider other)
{
if (!isEnter && other.gameObject.tag == "Player Head")
{
npcController.PlayerLeave();
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 7e0b023cc6a72a94d98cc0b4de447614
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: