100 lines
2.8 KiB
C#
100 lines
2.8 KiB
C#
|
|
using BehaviorDesigner.Runtime;
|
|
using BehaviorDesigner.Runtime.Tasks;
|
|
using UnityEngine;
|
|
|
|
public class Actions
|
|
{
|
|
public class SetEnemyState : Action
|
|
{
|
|
public SharedInt state;
|
|
|
|
public override TaskStatus OnUpdate()
|
|
{
|
|
Enemy enemy = transform.GetComponent<Enemy>();
|
|
if (enemy == null) return TaskStatus.Failure;
|
|
enemy.state = (EnemyState)state.Value;
|
|
return TaskStatus.Success;
|
|
}
|
|
}
|
|
|
|
public class SetEnemyDestination : Action
|
|
{
|
|
public SharedVector3 targetPos;
|
|
|
|
public override TaskStatus OnUpdate()
|
|
{
|
|
Enemy enemy = transform.GetComponent<Enemy>();
|
|
if (enemy == null) return TaskStatus.Failure;
|
|
enemy.ai.isStopped = false;
|
|
enemy.ai.destination = targetPos.Value;
|
|
return TaskStatus.Success;
|
|
}
|
|
}
|
|
|
|
public class SetEnemyDestination2 : Action
|
|
{
|
|
public SharedGameObject target;
|
|
|
|
public override TaskStatus OnUpdate()
|
|
{
|
|
Enemy enemy = transform.GetComponent<Enemy>();
|
|
if (enemy == null) return TaskStatus.Failure;
|
|
enemy.ai.isStopped = false;
|
|
enemy.ai.destination = target.Value.transform.position;
|
|
return TaskStatus.Success;
|
|
}
|
|
}
|
|
|
|
public class EnemyMoveForward : Action
|
|
{
|
|
public SharedFloat dis;
|
|
|
|
public override TaskStatus OnUpdate()
|
|
{
|
|
Enemy enemy = transform.GetComponent<Enemy>();
|
|
if (enemy == null) return TaskStatus.Failure;
|
|
Vector3 targetPos = transform.position + transform.forward * dis.Value;
|
|
enemy.ai.isStopped = false;
|
|
enemy.ai.destination = targetPos;
|
|
return TaskStatus.Success;
|
|
}
|
|
}
|
|
|
|
public class EnemyMoveToward : Action
|
|
{
|
|
public SharedFloat dis;
|
|
|
|
public override TaskStatus OnUpdate()
|
|
{
|
|
Enemy enemy = transform.GetComponent<Enemy>();
|
|
if (enemy == null) return TaskStatus.Failure;
|
|
Vector3 targetPos = transform.position + new Vector3(0, 0, -1) * dis.Value;
|
|
enemy.ai.isStopped = false;
|
|
enemy.ai.destination = targetPos;
|
|
return TaskStatus.Success;
|
|
}
|
|
}
|
|
|
|
public class EnemyStop : Action
|
|
{
|
|
public override TaskStatus OnUpdate()
|
|
{
|
|
Enemy enemy = transform.GetComponent<Enemy>();
|
|
if (enemy == null) return TaskStatus.Failure;
|
|
enemy.ai.isStopped = true;
|
|
return TaskStatus.Success;
|
|
}
|
|
}
|
|
|
|
public class EnemyShoot : Action
|
|
{
|
|
public override TaskStatus OnUpdate()
|
|
{
|
|
Enemy enemy = transform.GetComponent<Enemy>();
|
|
if (enemy == null) return TaskStatus.Failure;
|
|
enemy.Shoot();
|
|
return TaskStatus.Success;
|
|
}
|
|
}
|
|
} |