using System.Collections; using System.Collections.Generic; using System.Reflection; using NodeCanvas.Framework; using UnityEngine; namespace BITKit.NodeCanvas { public sealed class SetBehaviourEnabled:ActionTask { public BBParameter behaviour; public BBParameter enabled; protected override void OnExecute() { switch (behaviour.value) { case MonoBehaviour monoBehaviour: monoBehaviour.enabled = enabled.value; break; case Collider collider: collider.enabled = enabled.value; break; case Component component: component.GetType().GetProperty(nameof(BoxCollider.enabled), BindingFlags.Public | BindingFlags.Instance | BindingFlags.IgnoreCase ).SetValue(behaviour.value, enabled.value); break; } EndAction(); } protected override string info { get { if(behaviour.isNoneOrNull || enabled.isNoneOrNull) return "Set Behaviour Enabled"; var enabledStr = enabled.value ? "Enabled" : "Disabled"; return $"Set {behaviour.name} {enabledStr}"; } } } }