private void OnEnable() { //Set min size minSize = new Vector2(400, 100); if (EditorPrefs.HasKey("PatrolSettingsPath")) { string objectPath = EditorPrefs.GetString("PatrolSettingsPath"); settings = AssetDatabase.LoadAssetAtPath(objectPath, typeof(AI_PatrolSettings)) as AI_PatrolSettings; LoadSettings(); } }
public void InitSettings() { //Taken from https://unity3d.com/learn/tutorials/modules/beginner/live-training-archive/scriptable-objects //then edited for now //Will be modified in the future for better needs if (settings != null) { GUILayout.Space(12); if (GUILayout.Button("Show Settings in Project Window", GUILayout.Height(50))) { EditorUtility.FocusProjectWindow(); Selection.activeObject = settings; } GUILayout.Space(12); } else { GUILayout.Label("No current settings found!", EditorStyles.boldLabel); GUILayout.Space(12); if (GUILayout.Button("Create Settings File")) { GUILayout.Label("Creating file...", EditorStyles.boldLabel); AI_PatrolSettings settingsAsset = CreateInstance <AI_PatrolSettings> (); AssetDatabase.CreateAsset(settingsAsset, "Assets/Editor/PatrolSceneSettings.asset"); AssetDatabase.SaveAssets(); settings = settingsAsset; if (settings) { LoadSettings(); string assetPath = AssetDatabase.GetAssetPath(settings); EditorPrefs.SetString("PatrolSettingsPath", assetPath); } } } }
//Inspector Draw private void Awake() { //Class t = target as AI_Patrol; if (EditorPrefs.HasKey("PatrolSettingsPath")) { settings = (AI_PatrolSettings)AssetDatabase.LoadAssetAtPath(EditorPrefs.GetString("PatrolSettingsPath"), typeof(AI_PatrolSettings)); SetData(); } //Variables patrolOptions = Enum.GetNames(typeof(PatrolMode)); //Get all the enum types pointMoveOptions = Enum.GetNames(typeof(PointMovement)); patrolMode = t.patrolMode; //Get enum type for ref later on patrolOptionsIndex = (int)patrolMode; pointMovement = PointMovement.XZ; //Get enum type for ref later on pointOptionsIndex = (int)pointMovement; }