diff options
Diffstat (limited to 'VRCSDK3AvatarsLegacy/Assets/VRCSDK/SDK3A/Editor/SDK3AImportFix.cs')
-rw-r--r-- | VRCSDK3AvatarsLegacy/Assets/VRCSDK/SDK3A/Editor/SDK3AImportFix.cs | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/VRCSDK3AvatarsLegacy/Assets/VRCSDK/SDK3A/Editor/SDK3AImportFix.cs b/VRCSDK3AvatarsLegacy/Assets/VRCSDK/SDK3A/Editor/SDK3AImportFix.cs new file mode 100644 index 00000000..ba98c5f7 --- /dev/null +++ b/VRCSDK3AvatarsLegacy/Assets/VRCSDK/SDK3A/Editor/SDK3AImportFix.cs @@ -0,0 +1,45 @@ +using System.IO; +using UnityEditor; +using UnityEngine; + +namespace VRCSDK.SDK3.Editor +{ + [InitializeOnLoad] + public class SDK3AImportFix + { + private const string packageRuntimePluginsFolder = "Packages/com.vrchat.avatars/Runtime/VRCSDK/Plugins"; + private const string legacyRuntimePluginsFolder = "Assets/VRCSDK/Plugins/"; + private const string SDK3_IMPORTS_FIXED = "SDK3AImportsFixed"; + + static SDK3AImportFix() + { + // Only run once per project + string key = Path.Combine(Application.dataPath, SDK3_IMPORTS_FIXED); + + if (EditorPrefs.HasKey(key)) + return; + + EditorPrefs.SetBool(key, true); + Run(); + } + + public static void Run(){ + if (Directory.Exists(packageRuntimePluginsFolder)) + { + AssetDatabase.ImportAsset($"{packageRuntimePluginsFolder}/VRCSDK3A.dll", + ImportAssetOptions.ForceSynchronousImport); + AssetDatabase.ImportAsset($"{packageRuntimePluginsFolder}/VRCSDK3A-Editor.dll", + ImportAssetOptions.ForceSynchronousImport); + AssetDatabase.ImportPackage($"Packages/com.vrchat.avatars/Samples~/AV3 Demo Assets/SDK3A.unitypackage", + false); + } + else if (Directory.Exists(legacyRuntimePluginsFolder)) + { + AssetDatabase.ImportAsset($"{legacyRuntimePluginsFolder}/VRCSDK3A.dll", + ImportAssetOptions.ForceSynchronousImport); + AssetDatabase.ImportAsset($"{legacyRuntimePluginsFolder}/VRCSDK3A-Editor.dll", + ImportAssetOptions.ForceSynchronousImport); + } + } + } +}
\ No newline at end of file |