This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
#if UNITY_EDITOR
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace ShrinkModFramework.Editor
|
||||
{
|
||||
public static class ShrinkModFrameworkSettingsMenu
|
||||
{
|
||||
private const string SettingsDirectory =
|
||||
"Assets/Resources/GameAssets/Runtime/Data/ShrinkSDK";
|
||||
private const string SettingsAssetPath =
|
||||
SettingsDirectory + "/ShrinkModFrameworkSettings.asset";
|
||||
|
||||
[MenuItem("ShrinkSDK/模组/创建设置")]
|
||||
public static void CreateSettingsAsset()
|
||||
{
|
||||
EnsureFolder(SettingsDirectory);
|
||||
|
||||
var existing = AssetDatabase.LoadAssetAtPath<ShrinkModFrameworkSettings>(SettingsAssetPath);
|
||||
if (existing != null)
|
||||
{
|
||||
Selection.activeObject = existing;
|
||||
EditorGUIUtility.PingObject(existing);
|
||||
return;
|
||||
}
|
||||
|
||||
var asset = ScriptableObject.CreateInstance<ShrinkModFrameworkSettings>();
|
||||
AssetDatabase.CreateAsset(asset, SettingsAssetPath);
|
||||
AssetDatabase.SaveAssets();
|
||||
Selection.activeObject = asset;
|
||||
EditorGUIUtility.PingObject(asset);
|
||||
Debug.Log("[ShrinkModFramework] 已创建 ShrinkModFrameworkSettings.asset");
|
||||
}
|
||||
|
||||
private static void EnsureFolder(string path)
|
||||
{
|
||||
var segments = path.Split('/');
|
||||
var current = segments[0];
|
||||
for (var i = 1; i < segments.Length; i++)
|
||||
{
|
||||
var next = current + "/" + segments[i];
|
||||
if (!AssetDatabase.IsValidFolder(next))
|
||||
AssetDatabase.CreateFolder(current, segments[i]);
|
||||
current = next;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 400ef5e3613144f9b9f248d259b84a22
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user