public BehaviourInstanceBase AddBehaviour(BehaviourTypeSO behaviourType)
        {
            var behaviourData = behaviourType.CreateDefaultBehaviourData();

            Data.BehaviourDatas.Add(behaviourData);

            var behaviourInstance = behaviourData.BehaviourSO.AddBehaviourToEntity(Instance);

            behaviourInstance.UpdateAllParameters(behaviourData.ParamDatas);

            return(behaviourInstance);
        }
Example #2
0
 public bool HasBehaviour(BehaviourTypeSO behaviourType)
 {
     for (int i = 0; i < Behaviours.Count; i++)
     {
         var behaviourInstance = Behaviours[i];
         if (behaviourInstance.BehaviourSO.GetInstanceID() == behaviourType.GetInstanceID())
         {
             return(true);
         }
     }
     return(false);
 }
Example #3
0
 /// <summary>
 /// Get behaviour instance of the given type
 /// </summary>
 /// <param name="behaviourType"></param>
 /// <returns>the instance, return null if the instance with the given type is not found</returns>
 public BehaviourInstanceBase GetBehaviour(BehaviourTypeSO behaviourType)
 {
     for (int i = 0; i < Behaviours.Count; i++)
     {
         var behaviourInstance = Behaviours[i];
         if (behaviourInstance.BehaviourSO.GetInstanceID() == behaviourType.GetInstanceID())
         {
             return(behaviourInstance);
         }
     }
     return(null);
 }
Example #4
0
 protected void OnEnable()
 {
     m_BehaviourSO = target as BehaviourTypeSO;
     m_Parameters  = serializedObject.FindProperty(nameof(m_Parameters));
 }
 /// <summary>
 /// Used in create mode, called when instantiated
 /// </summary>
 /// <param name="data"></param>
 public void OnCreated(BehaviourTypeSO data)
 {
     m_BehaviourSO = data;
 }