Files
ft/Client/LocalPackages/TapjoySDK/Editor/TapjoySettingsEditor.cs
2026-06-29 21:18:33 +08:00

66 lines
2.3 KiB
C#

using System;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
using UnityEditor;
using TapjoyUnity.Internal;
namespace TapjoyEditor {
public static class TapjoySettingsEditor {
private const string TAPJOY_SETTINGS_DIRECTORY = "Assets/Settings/";
private const string ASSETS_DIRECTORY = "Assets";
private const string SETTINGS = "TapjoySettings.asset";
public static TapjoySettings CreateEmptySettings() {
TapjoySettings settings = (ScriptableObject.CreateInstance(typeof(TapjoySettings)) as TapjoySettings);
try {
Debug.Log("Creating new Settings.asset");
string assetPath = String.Format("{0}{1}", TAPJOY_SETTINGS_DIRECTORY,SETTINGS);
AssetDatabase.CreateAsset(settings, assetPath);
settings = (AssetDatabase.LoadAssetAtPath(assetPath, typeof(TapjoySettings)) as TapjoySettings);
} catch (UnityException) {
Debug.LogError("Failed to create the Tapjoy Settings asset.");
}
return settings;
}
public static TapjoySettings Load() {
// Ensure the TapjoySDK directory exists
if (!Directory.Exists(TAPJOY_SETTINGS_DIRECTORY)) {
Debug.Log("TapjoySDK directory does not exist. Creating it now.");
Directory.CreateDirectory(TAPJOY_SETTINGS_DIRECTORY);
AssetDatabase.Refresh(); // Refresh the asset database to recognize the new directory
}
//Search for Tapjoy Settings.asset folders in order. Returns GUID's
string[] results = AssetDatabase.FindAssets("Settings", new string[] { TAPJOY_SETTINGS_DIRECTORY, ASSETS_DIRECTORY });
TapjoySettings settings = null;
foreach (string guid in results)
{
string path = AssetDatabase.GUIDToAssetPath(guid);
//Check if asset is Tapjoy Settings.asset
settings = (AssetDatabase.LoadAssetAtPath(path, typeof(TapjoySettings)) as TapjoySettings);
if (settings != null)
{
Debug.Log("Using Tapjoy Settings: " + path);
break;
}
}
if (settings == null) {
settings = CreateEmptySettings();
}
return settings;
}
public static void Save(TapjoySettings settings) {
EditorUtility.SetDirty(settings);
AssetDatabase.SaveAssets();
settings.Dirty = false;
}
}
}