mirror of
https://github.com/tym1116/BH3.git
synced 2025-12-19 09:54:46 +01:00
265 lines
3.6 KiB
C#
265 lines
3.6 KiB
C#
using System;
|
|
using System.Collections;
|
|
using UnityEngine;
|
|
|
|
namespace BehaviorDesigner.Runtime.Tasks
|
|
{
|
|
public abstract class Task
|
|
{
|
|
protected GameObject gameObject;
|
|
|
|
protected Transform transform;
|
|
|
|
[SerializeField]
|
|
private NodeData nodeData;
|
|
|
|
[SerializeField]
|
|
private Behavior owner;
|
|
|
|
[SerializeField]
|
|
private int id = -1;
|
|
|
|
[SerializeField]
|
|
private string friendlyName = string.Empty;
|
|
|
|
[SerializeField]
|
|
private bool instant = true;
|
|
|
|
private int referenceID = -1;
|
|
|
|
public GameObject GameObject
|
|
{
|
|
set
|
|
{
|
|
gameObject = value;
|
|
}
|
|
}
|
|
|
|
public Transform Transform
|
|
{
|
|
set
|
|
{
|
|
transform = value;
|
|
}
|
|
}
|
|
|
|
public NodeData NodeData
|
|
{
|
|
get
|
|
{
|
|
return nodeData;
|
|
}
|
|
set
|
|
{
|
|
nodeData = value;
|
|
}
|
|
}
|
|
|
|
public Behavior Owner
|
|
{
|
|
get
|
|
{
|
|
return owner;
|
|
}
|
|
set
|
|
{
|
|
owner = value;
|
|
}
|
|
}
|
|
|
|
public int ID
|
|
{
|
|
get
|
|
{
|
|
return id;
|
|
}
|
|
set
|
|
{
|
|
id = value;
|
|
}
|
|
}
|
|
|
|
public string FriendlyName
|
|
{
|
|
get
|
|
{
|
|
return friendlyName;
|
|
}
|
|
set
|
|
{
|
|
friendlyName = value;
|
|
}
|
|
}
|
|
|
|
public bool IsInstant
|
|
{
|
|
get
|
|
{
|
|
return instant;
|
|
}
|
|
set
|
|
{
|
|
instant = value;
|
|
}
|
|
}
|
|
|
|
public int ReferenceID
|
|
{
|
|
get
|
|
{
|
|
return referenceID;
|
|
}
|
|
set
|
|
{
|
|
referenceID = value;
|
|
}
|
|
}
|
|
|
|
public virtual void OnAwake()
|
|
{
|
|
}
|
|
|
|
public virtual void OnStart()
|
|
{
|
|
}
|
|
|
|
public virtual TaskStatus OnUpdate()
|
|
{
|
|
return TaskStatus.Success;
|
|
}
|
|
|
|
public virtual void OnLateUpdate()
|
|
{
|
|
}
|
|
|
|
public virtual void OnFixedUpdate()
|
|
{
|
|
}
|
|
|
|
public virtual void OnEnd()
|
|
{
|
|
}
|
|
|
|
public virtual void OnPause(bool paused)
|
|
{
|
|
}
|
|
|
|
public virtual float GetPriority()
|
|
{
|
|
return 0f;
|
|
}
|
|
|
|
public virtual void OnBehaviorRestart()
|
|
{
|
|
}
|
|
|
|
public virtual void OnBehaviorComplete()
|
|
{
|
|
}
|
|
|
|
public virtual void OnReset()
|
|
{
|
|
}
|
|
|
|
public virtual void OnDrawGizmos()
|
|
{
|
|
}
|
|
|
|
protected void StartCoroutine(string methodName)
|
|
{
|
|
Owner.StartTaskCoroutine(this, methodName);
|
|
}
|
|
|
|
protected Coroutine StartCoroutine(IEnumerator routine)
|
|
{
|
|
return Owner.StartCoroutine(routine);
|
|
}
|
|
|
|
protected Coroutine StartCoroutine(string methodName, object value)
|
|
{
|
|
return Owner.StartTaskCoroutine(this, methodName, value);
|
|
}
|
|
|
|
protected void StopCoroutine(string methodName)
|
|
{
|
|
Owner.StopTaskCoroutine(methodName);
|
|
}
|
|
|
|
protected void StopAllCoroutines()
|
|
{
|
|
Owner.StopAllTaskCoroutines();
|
|
}
|
|
|
|
public virtual void OnCollisionEnter(Collision collision)
|
|
{
|
|
}
|
|
|
|
public virtual void OnCollisionExit(Collision collision)
|
|
{
|
|
}
|
|
|
|
public virtual void OnCollisionStay(Collision collision)
|
|
{
|
|
}
|
|
|
|
public virtual void OnTriggerEnter(Collider other)
|
|
{
|
|
}
|
|
|
|
public virtual void OnTriggerExit(Collider other)
|
|
{
|
|
}
|
|
|
|
public virtual void OnTriggerStay(Collider other)
|
|
{
|
|
}
|
|
|
|
public virtual void OnCollisionEnter2D(Collision2D collision)
|
|
{
|
|
}
|
|
|
|
public virtual void OnCollisionExit2D(Collision2D collision)
|
|
{
|
|
}
|
|
|
|
public virtual void OnCollisionStay2D(Collision2D collision)
|
|
{
|
|
}
|
|
|
|
public virtual void OnTriggerEnter2D(Collider2D other)
|
|
{
|
|
}
|
|
|
|
public virtual void OnTriggerExit2D(Collider2D other)
|
|
{
|
|
}
|
|
|
|
public virtual void OnTriggerStay2D(Collider2D other)
|
|
{
|
|
}
|
|
|
|
public virtual void OnControllerColliderHit(ControllerColliderHit hit)
|
|
{
|
|
}
|
|
|
|
protected T GetComponent<T>() where T : Component
|
|
{
|
|
return gameObject.GetComponent<T>();
|
|
}
|
|
|
|
protected Component GetComponent(Type type)
|
|
{
|
|
return gameObject.GetComponent(type);
|
|
}
|
|
|
|
protected GameObject GetDefaultGameObject(GameObject go)
|
|
{
|
|
if (go == null)
|
|
{
|
|
return gameObject;
|
|
}
|
|
return go;
|
|
}
|
|
}
|
|
}
|