public static void SaveActionsAsSet(List <UtilityAIAction> actionsToSave, GameObject invoker) { UtilityAIActionSet actionSet = ScriptableObject.CreateInstance <UtilityAIActionSet>(); actionSet.actions = actionsToSave; actionSet.inheritingGameObject = invoker; invoker.GetComponent <UtilityAIAgent>().actionSet = actionSet; AssetDatabase.CreateAsset(actionSet, AssetDatabase.GenerateUniqueAssetPath("Assets/" + invoker.name + ".asset")); }
public void OnEnable() { utilityAIAgent = (UtilityAIActionSet)target; rootElement = new VisualElement(); VisualTreeAsset visualTree = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>("Assets/UtilityAI/Scripts/Editor/Utility AI Action Set Editor/UtilityAIActionSetEditor.uxml"); visualTree.CloneTree(rootElement); StyleSheet stylesheet = AssetDatabase.LoadAssetAtPath <StyleSheet>("Assets/UtilityAI/Scripts/Editor/Utility AI Action Set Editor/UtilityAIActionSetEditor.uss"); rootElement.styleSheets.Add(stylesheet); }
public void MakeActionsSetUnique() { if (actionSet != null) { List <UtilityAIAction> sharedActions = actionSet.actions; List <UtilityAIAction> uniqueActions = new List <UtilityAIAction>(); foreach (UtilityAIAction sharedAction in sharedActions) { uniqueActions.Add(new UtilityAIAction(sharedAction)); } actions = uniqueActions; actionSet = null; } }
public void SaveActionSet() { UtilityAIActionSet.SaveActionsAsSet(utilityAIAgent.actions, utilityAIAgent.gameObject); CreateInspectorGUI(); }