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); }
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); }
/// <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); }
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; }