plantilla base para movimiento básico
This commit is contained in:
Robii Aragon
2026-02-05 05:07:55 -08:00
parent 195b696771
commit 779f2c8b20
14443 changed files with 23840465 additions and 452 deletions

View File

@@ -0,0 +1,140 @@
using UnityEngine;
using System.Collections;
using UnityEngine.Events;
public class AIViewTriggerSystem : MonoBehaviour
{
[Header ("Main Settings")]
[Space]
public bool checkTriggerEnabled = true;
public bool onTriggerEnter;
public bool onTriggerExit;
[Space]
public bool sendDetectedObjectAsSuspectOnEnter = true;
public bool removeDetectedObjectAsSuspectOnExit = true;
[Space]
public bool sendDetectedObjectAsTargetToCheckOnEnter;
public bool removeDetectedObjectAsTargetToCheckOnExit;
[Space]
[Header ("Regular Event Settings")]
[Space]
public bool useEvents;
public UnityEvent onTriggerEnterEvent = new UnityEvent ();
public UnityEvent onTriggerExitEvent = new UnityEvent ();
[Space]
[Header ("Events With Objects Settings")]
[Space]
public bool useOnTriggerEnterEventWithObject;
public eventParameters.eventToCallWithGameObject onTriggerEnterEventWithObject;
public bool useOnTriggerExitEventWithObject;
public eventParameters.eventToCallWithGameObject onTriggerExitEventWithObject;
[Space]
[Header ("Debug")]
[Space]
public bool showDebugPrint;
[Space]
[Header ("Components")]
[Space]
public findObjectivesSystem mainFindObjectivesSystem;
void OnTriggerEnter (Collider col)
{
if (!checkTriggerEnabled) {
return;
}
checkTrigger (col, true);
}
void OnTriggerExit (Collider col)
{
if (!checkTriggerEnabled) {
return;
}
checkTrigger (col, false);
}
public void checkTrigger (Collider col, bool isEnter)
{
if (isEnter) {
if (onTriggerEnter) {
if (useEvents) {
callEvent (onTriggerEnterEvent);
if (useOnTriggerEnterEventWithObject) {
callEventWithObject (onTriggerEnterEventWithObject, col.gameObject);
}
}
if (sendDetectedObjectAsSuspectOnEnter) {
mainFindObjectivesSystem.checkSuspect (col.gameObject);
}
if (sendDetectedObjectAsTargetToCheckOnEnter) {
mainFindObjectivesSystem.checkTriggerInfo (col, true);
}
if (showDebugPrint) {
print ("checking detected object on trigger enter " + col.gameObject.name);
}
}
} else {
if (onTriggerExit) {
if (useEvents) {
callEvent (onTriggerExitEvent);
if (useOnTriggerExitEventWithObject) {
callEventWithObject (onTriggerExitEventWithObject, col.gameObject);
}
}
if (removeDetectedObjectAsSuspectOnExit) {
mainFindObjectivesSystem.cancelCheckSuspect (col.gameObject);
}
if (removeDetectedObjectAsTargetToCheckOnExit) {
mainFindObjectivesSystem.checkTriggerInfo (col, false);
}
if (showDebugPrint) {
print ("checking detected object on trigger exit " + col.gameObject.name);
}
}
}
}
public void callEvent (UnityEvent eventToCall)
{
eventToCall.Invoke ();
}
public void callEventWithObject (eventParameters.eventToCallWithGameObject eventToCall, GameObject objectToSend)
{
eventToCall.Invoke (objectToSend);
}
public void setCheckTriggerEnabledState (bool state)
{
checkTriggerEnabled = state;
}
}