#if GRAPH_DESIGNER /// --------------------------------------------- /// Behavior Designer /// Copyright (c) Opsive. All Rights Reserved. /// https://www.opsive.com /// --------------------------------------------- namespace Opsive.BehaviorDesigner.Tasks.Actions.Math { using Opsive.BehaviorDesigner.Runtime.Tasks; using Opsive.BehaviorDesigner.Runtime.Tasks.Actions; using Opsive.GraphDesigner.Runtime.Variables; using UnityEngine; [Tooltip("Returns a random integer between the specified values (inclusive).")] [Shared.Utility.Category("Math")] public class RandomInteger : Action { [Tooltip("The minimum integer value (inclusive).")] [SerializeField] protected SharedVariable m_MinimumInteger; [Tooltip("The maximum integer value (inclusive).")] [SerializeField] protected SharedVariable m_MaximumInteger; [Tooltip("The stored random integer value.")] [RequireShared] [SerializeField] protected SharedVariable m_StoreResult; [Tooltip("The seed of the random number generator. Set to 0 to disable.")] [SerializeField] protected int m_Seed; /// /// Callback when the behavior tree is initialized. /// public override void OnAwake() { if (m_Seed != 0) { Random.InitState(m_Seed); } } /// /// Executes the task logic. /// /// The status of the task. public override TaskStatus OnUpdate() { m_StoreResult.Value = Random.Range(m_MinimumInteger.Value, m_MaximumInteger.Value); return base.OnUpdate(); } } } #endif