/// ---------------------------------------------
/// Behavior Designer
/// Copyright (c) Opsive. All Rights Reserved.
/// https://www.opsive.com
/// ---------------------------------------------
namespace Opsive.BehaviorDesigner.Samples
{
using Opsive.BehaviorDesigner.Runtime.Tasks;
using Opsive.BehaviorDesigner.Runtime.Tasks.Actions;
using UnityEngine;
///
/// Picks up the next available resource.
///
[Shared.Utility.Category("Behavior Designer Samples")]
public class Gather : Action
{
protected override bool ReceiveTriggerEnterCallback => true;
private ResourceTrigger m_ResourceTrigger;
///
/// Picks up the resource.
///
/// Success if the agent was able to pickup the resource, otherwise failure if the resource is null.
public override TaskStatus OnUpdate()
{
if (m_ResourceTrigger == null) {
return TaskStatus.Failure;
}
m_ResourceTrigger.Pickup();
return TaskStatus.Success;
}
///
/// The agent has entered a trigger.
///
/// The trigger that the agent entered.
protected override void OnTriggerEnter(Collider other)
{
ResourceTrigger resourceTrigger;
if ((resourceTrigger = other.GetComponent()) != null) {
m_ResourceTrigger = resourceTrigger;
}
}
}
}