mirror of
https://github.com/MirrorNetworking/Mirror.git
synced 2024-11-18 02:50:32 +00:00
feat(MoveToAssetsFolder): Editor Script Moves ScriptTemplates to Assets (#3805)
- Ensures ScriptTemplates folder is in Assets root - Allows ScriptTemplates folder to be included in Asset Store package under Mirror folder - Only runs once when Unity first loads project via SessionState flag
This commit is contained in:
parent
d259094fec
commit
90fc00a446
8
Assets/ScriptTemplates/Editor.meta
Normal file
8
Assets/ScriptTemplates/Editor.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 96993aced46357f4d9dbda89e40eabad
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
42
Assets/ScriptTemplates/Editor/MoveToAssetsFolder.cs
Normal file
42
Assets/ScriptTemplates/Editor/MoveToAssetsFolder.cs
Normal file
@ -0,0 +1,42 @@
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
[InitializeOnLoad]
|
||||
public class MoveToAssetsFolder
|
||||
{
|
||||
const string FirstTimeKey = "MOVE_SCRIPT_TEMPLATES_HAS_RUN";
|
||||
const string targetFolder = "ScriptTemplates";
|
||||
const string targetPath = "Assets/ScriptTemplates";
|
||||
|
||||
static MoveToAssetsFolder()
|
||||
{
|
||||
if (!SessionState.GetBool(FirstTimeKey, false))
|
||||
{
|
||||
FindAndMoveScriptTemplatesFolder();
|
||||
SessionState.SetBool(FirstTimeKey, true);
|
||||
}
|
||||
}
|
||||
|
||||
static void FindAndMoveScriptTemplatesFolder()
|
||||
{
|
||||
string[] guids = AssetDatabase.FindAssets(targetFolder, null);
|
||||
foreach (string guid in guids)
|
||||
{
|
||||
string path = AssetDatabase.GUIDToAssetPath(guid);
|
||||
|
||||
// Check if it's a folder and not some random asset
|
||||
if (AssetDatabase.IsValidFolder(path))
|
||||
{
|
||||
// Ensure exact match of the name and that it's not in the Assets folder already
|
||||
string folderName = System.IO.Path.GetFileName(path);
|
||||
if (folderName == targetFolder && !path.StartsWith(targetPath))
|
||||
{
|
||||
AssetDatabase.MoveAsset(path, targetPath);
|
||||
Debug.LogFormat(LogType.Log, LogOption.NoStacktrace, null, $"Moved {targetFolder} to Assets folder.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
AssetDatabase.Refresh();
|
||||
}
|
||||
}
|
11
Assets/ScriptTemplates/Editor/MoveToAssetsFolder.cs.meta
Normal file
11
Assets/ScriptTemplates/Editor/MoveToAssetsFolder.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e383132f744a8c1448807b71fa31f7ef
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Loading…
Reference in New Issue
Block a user