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

@@ -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: