diff options
Diffstat (limited to 'VRCSDK3Worlds/Packages/com.vrchat.vrcsdk3')
8 files changed, 145 insertions, 0 deletions
diff --git a/VRCSDK3Worlds/Packages/com.vrchat.vrcsdk3/Editor.meta b/VRCSDK3Worlds/Packages/com.vrchat.vrcsdk3/Editor.meta new file mode 100644 index 00000000..50b2ccc9 --- /dev/null +++ b/VRCSDK3Worlds/Packages/com.vrchat.vrcsdk3/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 31289015c6005c047bd2b8ec073e10ed +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Packages/com.vrchat.vrcsdk3/Editor/UPMImporter.meta b/VRCSDK3Worlds/Packages/com.vrchat.vrcsdk3/Editor/UPMImporter.meta new file mode 100644 index 00000000..9324579e --- /dev/null +++ b/VRCSDK3Worlds/Packages/com.vrchat.vrcsdk3/Editor/UPMImporter.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fdb8a5d9760f61e4595c99b4e75b7acf +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Packages/com.vrchat.vrcsdk3/Editor/UPMImporter/UPMImporter.cs b/VRCSDK3Worlds/Packages/com.vrchat.vrcsdk3/Editor/UPMImporter/UPMImporter.cs new file mode 100644 index 00000000..61aa68fa --- /dev/null +++ b/VRCSDK3Worlds/Packages/com.vrchat.vrcsdk3/Editor/UPMImporter/UPMImporter.cs @@ -0,0 +1,81 @@ +using System.IO; +using System.Linq; +using UnityEditor; +using UnityEditor.PackageManager; +using UnityEditor.PackageManager.Requests; +using UnityEngine; + +namespace VRC.Udon.Editor { + [InitializeOnLoad] + public class UPMImporter + { + // Add packages here to auto-import + public static string[] requiredPackages = + { + #if UNITY_2019_3_OR_NEWER + "com.unity.cinemachine@2.8.0", + "com.unity.postprocessing@3.1.1", + "com.unity.textmeshpro@2.1.6", + "com.unity.modules.androidjni@1.0.0", + "com.unity.timeline@1.2.18", + "com.unity.ugui@1.0.0", + "com.unity.test-framework@1.1.27", + "com.unity.package-manager-ui@2.2.0", + #else + "com.unity.cinemachine@2.6.1", + "com.unity.postprocessing@3.0.3", + "com.unity.textmeshpro@1.5.1", + #endif + }; + + private static ListRequest list; + + static UPMImporter() + { + list = Client.List(); + EditorApplication.update += Update; + } + + public static void Update() + { + // Exit early if we're still gathering the list + if (!list.IsCompleted) return; + + // Unsubscribe from Update once the list is ready + EditorApplication.update -= Update; + + var localPackages = list.Result; + bool importedNewPackage = false; + foreach (string packageName in requiredPackages) + { + if(localPackages.All(p => $"{p.name}@{p.version}" != packageName)) + { + Install(packageName); + importedNewPackage = true; + } + } + + // if Unity tried to import SDK3 before required packages, it will have old errors showing. + //if(importedNewPackage) ClearLog(); + } + + public static bool Install(string id) + { + var request = Client.Add(id); + while (!request.IsCompleted) {}; + if(request.Error != null)Debug.LogError(request.Error.message); + return request.Error == null; + } + + public static void ClearLog() + { + System.Reflection.Assembly assembly = System.Reflection.Assembly.GetAssembly(typeof(SceneView)); + + System.Type type = assembly.GetType("UnityEditor.LogEntries"); + System.Reflection.MethodInfo method = type.GetMethod("Clear"); + method.Invoke(new object(), null); + } + + } + +} diff --git a/VRCSDK3Worlds/Packages/com.vrchat.vrcsdk3/Editor/UPMImporter/UPMImporter.cs.meta b/VRCSDK3Worlds/Packages/com.vrchat.vrcsdk3/Editor/UPMImporter/UPMImporter.cs.meta new file mode 100644 index 00000000..f5ad3123 --- /dev/null +++ b/VRCSDK3Worlds/Packages/com.vrchat.vrcsdk3/Editor/UPMImporter/UPMImporter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1056c67d11ce3ce41b80a979e05732c4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Packages/com.vrchat.vrcsdk3/Editor/UPMImporter/VRC.Udon.Editor.UPMImporter.asmdef b/VRCSDK3Worlds/Packages/com.vrchat.vrcsdk3/Editor/UPMImporter/VRC.Udon.Editor.UPMImporter.asmdef new file mode 100644 index 00000000..f13f0c7b --- /dev/null +++ b/VRCSDK3Worlds/Packages/com.vrchat.vrcsdk3/Editor/UPMImporter/VRC.Udon.Editor.UPMImporter.asmdef @@ -0,0 +1,16 @@ +{ + "name": "VRC.Udon.Editor.UPMImporter", + "references": [ + "VRC.Udon.Editor" + ], + "optionalUnityReferences": [], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [] +}
\ No newline at end of file diff --git a/VRCSDK3Worlds/Packages/com.vrchat.vrcsdk3/Editor/UPMImporter/VRC.Udon.Editor.UPMImporter.asmdef.meta b/VRCSDK3Worlds/Packages/com.vrchat.vrcsdk3/Editor/UPMImporter/VRC.Udon.Editor.UPMImporter.asmdef.meta new file mode 100644 index 00000000..027abae1 --- /dev/null +++ b/VRCSDK3Worlds/Packages/com.vrchat.vrcsdk3/Editor/UPMImporter/VRC.Udon.Editor.UPMImporter.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4704b64fff8057d49a97d061be599eea +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VRCSDK3Worlds/Packages/com.vrchat.vrcsdk3/package.json b/VRCSDK3Worlds/Packages/com.vrchat.vrcsdk3/package.json new file mode 100644 index 00000000..95b54316 --- /dev/null +++ b/VRCSDK3Worlds/Packages/com.vrchat.vrcsdk3/package.json @@ -0,0 +1,7 @@ +{ + "name" : "com.vrchat.vrcsdk3", + "displayName" : "VRChat SDK3 - Worlds", + "version" : "2020.3.2", + "unity" : "2018.4", + "description" : "SDK 3 with Udon, our in-house node-based scripting language for awesome interactivity!" +}
\ No newline at end of file diff --git a/VRCSDK3Worlds/Packages/com.vrchat.vrcsdk3/package.json.meta b/VRCSDK3Worlds/Packages/com.vrchat.vrcsdk3/package.json.meta new file mode 100644 index 00000000..668595ab --- /dev/null +++ b/VRCSDK3Worlds/Packages/com.vrchat.vrcsdk3/package.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6d4603f5cd56d5f4289993be967b5ef2 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: |