Added Behavior Graph asset for Unity

This commit is contained in:
2026-04-28 12:35:51 +02:00
parent a3c7859b18
commit 2b213f359b
34 changed files with 5079 additions and 9 deletions
@@ -0,0 +1,49 @@
using System;
using AI.FSM;
using Unity.Behavior;
using UnityEngine;
using Action = Unity.Behavior.Action;
using Unity.Properties;
[Serializable, GeneratePropertyBag]
[NodeDescription(name: "Find By Raycast", story: "Find [Target] by Raycast from [Agent]", category: "Action/Find", id: "4485803bf98219ce319c3000d6f8e6bf")]
public partial class FindByRaycastAction : Action
{
[SerializeReference] public BlackboardVariable<GameObject> Target;
[SerializeReference] public BlackboardVariable<GameObject> Agent;
[SerializeReference] public BlackboardVariable<float> MaxDistance = new(10.0f);
protected override Status OnStart()
{
// initialize action here
// test for valid variables
if (Agent.Value == null) return Status.Failure;
return Status.Running;
}
protected override Status OnUpdate()
{
Target.Value = null;
RaycastHit hit;
if (!Physics.Raycast(Agent.Value.transform.position, Agent.Value.transform.forward, out hit,
MaxDistance))
{
return Status.Failure;
}
PlayerController playerController = hit.collider.GetComponent<PlayerController>();
if (!playerController) return Status.Failure;
Target.Value = playerController.gameObject;
return Status.Success;
}
protected override void OnEnd()
{
// deinitialize action here
}
}