//metodo per assegnare gli asset dentro l'inspector... By Luca del dftStudent /// <summary> /// Lo script metodo charlie e serializza percorsi sono due metodi statici perchè vengono richiamati /// in due script cioè manager iniziale e gamemanager. /// Per evitare di avere due metodi identici dentro entrambi gli script li ho spostati qui e resi statici /// in modo che siano scritti una volta sola e richiamati dove si vuole. /// </summary> /// <param name="databseInizialeAmicizie"></param> /// <param name="databaseInizialeProprieta"></param> public static void assegnaAssetDatabase(ref GameData databseInizialeAmicizie,ref caratteristichePersonaggioV2 databaseInizialeProprieta) { if (databseInizialeAmicizie == null) { if (EditorPrefs.HasKey(Statici.STR_PercorsoConfig)) { string percorso = EditorPrefs.GetString(Statici.STR_PercorsoConfig); databseInizialeAmicizie = AssetDatabase.LoadAssetAtPath<GameData>(percorso + Statici.STR_DatabaseDiGioco); } } if (databaseInizialeProprieta == null) { if (EditorPrefs.HasKey(Statici.STR_PercorsoConfig3)) { string percorso = EditorPrefs.GetString(Statici.STR_PercorsoConfig3); databaseInizialeProprieta = AssetDatabase.LoadAssetAtPath<caratteristichePersonaggioV2>(percorso + Statici.STR_DatabaseDiGioco3); } } }
public static caratteristichePersonaggioV2 CreaDatabase() { string tmpStr = "Assets"; caratteristichePersonaggioV2 _caratteristichePersonaggioV2 = null; if (percorso == null || percorso == string.Empty) { string tmpPercosro = EditorUtility.OpenFolderPanel("Percorso per Database", tmpStr, ""); if (tmpPercosro != string.Empty) { percorso = "Assets" + tmpPercosro.Substring(Application.dataPath.Length); EditorPrefs.SetString(Statici.STR_PercorsoConfig3, percorso); } } if (percorso != string.Empty) _caratteristichePersonaggioV2 = ScriptableObject.CreateInstance<caratteristichePersonaggioV2>(); _caratteristichePersonaggioV2.classePersonaggio = new System.Collections.Generic.List<String>(); AssetDatabase.CreateAsset(_caratteristichePersonaggioV2, percorso + Statici.STR_DatabaseDiGioco3); AssetDatabase.Refresh(); ProjectWindowUtil.ShowCreatedAsset(_caratteristichePersonaggioV2); resettaParametri(_caratteristichePersonaggioV2); return _caratteristichePersonaggioV2; }
private void OnGUI() { if (_caratteristichePersonaggioV2 != null) { GUILayout.BeginHorizontal(EditorStyles.objectFieldThumb); GUILayout.Label("Editor by DFT Students", GUI.skin.GetStyle("Label")); GUILayout.EndHorizontal(); EditorGUILayout.Separator(); GestisciProprieta(); } else { GUILayout.BeginHorizontal(EditorStyles.objectFieldThumb); if (GUILayout.Button("Crea il DataBase")) { string tmpStr = "Assets"; if (percorso == null || percorso == string.Empty) { string tmpPercosro = EditorUtility.OpenFolderPanel("Percorso per Database", tmpStr, ""); if (tmpPercosro != string.Empty) { percorso = "Assets" + tmpPercosro.Substring(Application.dataPath.Length); EditorPrefs.SetString(Statici.STR_PercorsoConfig3, percorso); } } if (percorso != string.Empty) _caratteristichePersonaggioV2 = ScriptableObject.CreateInstance<caratteristichePersonaggioV2>(); _caratteristichePersonaggioV2.classePersonaggio = new System.Collections.Generic.List<String>(); AssetDatabase.CreateAsset(_caratteristichePersonaggioV2, percorso + Statici.STR_DatabaseDiGioco3); AssetDatabase.Refresh(); ProjectWindowUtil.ShowCreatedAsset(_caratteristichePersonaggioV2); resettaParametri(); } EditorGUILayout.HelpBox("DataBase Mancante", MessageType.Error); GUILayout.EndHorizontal(); } }
private void OnEnable() { if (EditorPrefs.HasKey(Statici.STR_PercorsoConfig3)) { percorso = EditorPrefs.GetString(Statici.STR_PercorsoConfig3); _caratteristichePersonaggioV2 = AssetDatabase.LoadAssetAtPath<caratteristichePersonaggioV2>(percorso + Statici.STR_DatabaseDiGioco3); } }
/// <summary> /// Lo script metodo charlie e serializza percorsi sono due metodi statici perchè vengono richiamati /// in due script cioè manager iniziale e gamemanager. /// Per evitare di avere due metodi identici dentro entrambi gli script li ho spostati qui e resi statici /// in modo che siano scritti una volta sola e richiamati dove si vuole. /// </summary> /// <param name="databseInizialeAmicizie"></param> /// <param name="databaseInizialeProprieta"></param> /// <summary> /// Lo script metodo assegnaAssetDatabase e serializza percorsi sono due metodi statici perchè vengono richiamati /// in due script cioè manager iniziale e gamemanager. /// Per evitare di avere due metodi identici dentro entrambi gli script li ho spostati qui e resi statici /// in modo che siano scritti una volta sola e richiamati dove si vuole. /// </summary> /// <param name="databseInizialeAmicizie"></param> /// <param name="databaseInizialeProprieta"></param> public static void assegnaAssetDatabase() { DataBase.Inizializza(); databseInizialeAmicizie = DataBase.GiveMeAmicizie(); databaseInizialeProprieta = DataBase.GiveMeProprieta(); databaseInizialePercorsi = DataBase.GiveMePercorsi(); }
private static void resettaParametri(caratteristichePersonaggioV2 _caratteristichePersonaggioV2) { for (int i = 0; i < _caratteristichePersonaggioV2.classePersonaggio.Count; i++) _caratteristichePersonaggioV2.classePersonaggio[i] = "nessuna classe"; for (int r = 0; r < _caratteristichePersonaggioV2.classePersonaggio.Count; r++) { _caratteristichePersonaggioV2.matriceProprieta[r].classe = classiPersonaggi.magoAcqua; _caratteristichePersonaggioV2.matriceProprieta[r].nomeM = "nessun nome"; _caratteristichePersonaggioV2.matriceProprieta[r].nomeF = "nessun nome"; _caratteristichePersonaggioV2.matriceProprieta[r].giocabile = false; _caratteristichePersonaggioV2.matriceProprieta[r].Attacco = 0; _caratteristichePersonaggioV2.matriceProprieta[r].difesa = 0; _caratteristichePersonaggioV2.matriceProprieta[r].Livello = 0; _caratteristichePersonaggioV2.matriceProprieta[r].Mana = 0; _caratteristichePersonaggioV2.matriceProprieta[r].Vita = 0; _caratteristichePersonaggioV2.matriceProprieta[r].Xp = 0; for (int c = 0; c < Enum.GetValues(typeof(ProprietaPersonaggio)).Length; c++) { _caratteristichePersonaggioV2.schieraProprietaC[c] = Enum.GetName(typeof(ProprietaPersonaggio), c); } AssetDatabase.Refresh(); } EditorUtility.SetDirty(_caratteristichePersonaggioV2); AssetDatabase.SaveAssets(); }
private void OnGUI() { if (_caratteristichePersonaggioV2 != null) { GUILayout.BeginHorizontal(EditorStyles.objectFieldThumb); GUILayout.Label("Editor by DFT Students", GUI.skin.GetStyle("Label")); GUILayout.EndHorizontal(); EditorGUILayout.Separator(); GestisciProprieta(); } else { GUILayout.BeginHorizontal(EditorStyles.objectFieldThumb); if (GUILayout.Button("Crea il DataBase")) { _caratteristichePersonaggioV2 = CreaDatabase(); } EditorGUILayout.HelpBox("DataBase Mancante", MessageType.Error); GUILayout.EndHorizontal(); } }
private void OnEnable() { controlloPercorsiNulli = false; controlloPersonaggiNulli = false; if (EditorPrefs.HasKey(Statici.STR_PercorsoConfig2)) { pathPercorsi = EditorPrefs.GetString(Statici.STR_PercorsoConfig2); percorsi = AssetDatabase.LoadAssetAtPath<Percorsi>(pathPercorsi + Statici.STR_DatabaseDiGioco2); } if (EditorPrefs.HasKey(Statici.STR_PercorsoConfig3)) { pathPercorsi = EditorPrefs.GetString(Statici.STR_PercorsoConfig3); personaggi = AssetDatabase.LoadAssetAtPath<caratteristichePersonaggioV2>(pathPercorsi + Statici.STR_DatabaseDiGioco3); } // if (percorsi != null) cambiatoAlmenoUnaScena = false; //NON MI RICORDO PERCHE L'HO MESSO...BOHH RIGUARDARSI LA LEZIONE }