diff --git a/Assets/XR.meta b/Assets/XR.meta new file mode 100644 index 0000000..c9e1d79 --- /dev/null +++ b/Assets/XR.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0b517e93e31ed8b408c883d79db2058d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/XR/Loaders.meta b/Assets/XR/Loaders.meta new file mode 100644 index 0000000..9329f16 --- /dev/null +++ b/Assets/XR/Loaders.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9b00f9dca600ec042a9f605e48a5d65d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/XR/Loaders/OculusLoader.asset b/Assets/XR/Loaders/OculusLoader.asset new file mode 100644 index 0000000..9ff33a5 --- /dev/null +++ b/Assets/XR/Loaders/OculusLoader.asset @@ -0,0 +1,14 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 03bc68f14d65e7747a59d5ff74bd199b, type: 3} + m_Name: OculusLoader + m_EditorClassIdentifier: diff --git a/Assets/XR/Loaders/OculusLoader.asset.meta b/Assets/XR/Loaders/OculusLoader.asset.meta new file mode 100644 index 0000000..d305205 --- /dev/null +++ b/Assets/XR/Loaders/OculusLoader.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6f4bc6bbac5dbaf45acfab97ec6cf8aa +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/XR/Settings.meta b/Assets/XR/Settings.meta new file mode 100644 index 0000000..8123bcc --- /dev/null +++ b/Assets/XR/Settings.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: de80ac770c053a644b153a2701f754f6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/XR/Settings/OculusSettings.asset b/Assets/XR/Settings/OculusSettings.asset new file mode 100644 index 0000000..f80f625 --- /dev/null +++ b/Assets/XR/Settings/OculusSettings.asset @@ -0,0 +1,32 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c353a8f1e58cf884584123914fe63cd5, type: 3} + m_Name: OculusSettings + m_EditorClassIdentifier: + m_StereoRenderingModeDesktop: 1 + m_StereoRenderingModeAndroid: 2 + SharedDepthBuffer: 1 + DepthSubmission: 0 + DashSupport: 1 + LowOverheadMode: 0 + OptimizeBufferDiscards: 1 + PhaseSync: 0 + SymmetricProjection: 1 + SubsampledLayout: 0 + FoveatedRenderingMethod: 0 + LateLatching: 0 + LateLatchingDebug: 0 + EnableTrackingOriginStageMode: 0 + SpaceWarp: 0 + TargetQuest2: 1 + TargetQuestPro: 0 + SystemSplashScreen: {fileID: 0} diff --git a/Assets/XR/Settings/OculusSettings.asset.meta b/Assets/XR/Settings/OculusSettings.asset.meta new file mode 100644 index 0000000..c217922 --- /dev/null +++ b/Assets/XR/Settings/OculusSettings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 76ad2a99bea3e6d4fb94e4e88010f225 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/XR/XRGeneralSettings.asset b/Assets/XR/XRGeneralSettings.asset new file mode 100644 index 0000000..21a913b --- /dev/null +++ b/Assets/XR/XRGeneralSettings.asset @@ -0,0 +1,78 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-7012520608237198431 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d236b7d11115f2143951f1e14045df39, type: 3} + m_Name: Android Settings + m_EditorClassIdentifier: + m_LoaderManagerInstance: {fileID: 0} + m_InitManagerOnStart: 0 +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d2dc886499c26824283350fa532d087d, type: 3} + m_Name: XRGeneralSettings + m_EditorClassIdentifier: + Keys: 010000000700000004000000 + Values: + - {fileID: 3410140295571951628} + - {fileID: -7012520608237198431} + - {fileID: 3577145650821638139} +--- !u!114 &3410140295571951628 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d236b7d11115f2143951f1e14045df39, type: 3} + m_Name: Standalone Settings + m_EditorClassIdentifier: + m_LoaderManagerInstance: {fileID: 3954984812971645292} + m_InitManagerOnStart: 0 +--- !u!114 &3577145650821638139 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d236b7d11115f2143951f1e14045df39, type: 3} + m_Name: iPhone Settings + m_EditorClassIdentifier: + m_LoaderManagerInstance: {fileID: 0} + m_InitManagerOnStart: 0 +--- !u!114 &3954984812971645292 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4c3631f5e58749a59194e0cf6baf6d5, type: 3} + m_Name: Standalone Providers + m_EditorClassIdentifier: + m_RequiresSettingsUpdate: 0 + m_AutomaticLoading: 0 + m_AutomaticRunning: 0 + m_Loaders: + - {fileID: 11400000, guid: 6f4bc6bbac5dbaf45acfab97ec6cf8aa, type: 2} diff --git a/Assets/XR/XRGeneralSettings.asset.meta b/Assets/XR/XRGeneralSettings.asset.meta new file mode 100644 index 0000000..cd2f3e7 --- /dev/null +++ b/Assets/XR/XRGeneralSettings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 70cbfcd9cb19f42489da13cddbd7b3ac +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.vrchat.core.vpm-resolver/Editor/Dependencies/vpm-core-lib.dll b/Packages/com.vrchat.core.vpm-resolver/Editor/Dependencies/vpm-core-lib.dll index 434d34f..b99c091 100644 Binary files a/Packages/com.vrchat.core.vpm-resolver/Editor/Dependencies/vpm-core-lib.dll and b/Packages/com.vrchat.core.vpm-resolver/Editor/Dependencies/vpm-core-lib.dll differ diff --git a/Packages/com.vrchat.core.vpm-resolver/Editor/PackageMaker/PackageMakerWindow.cs b/Packages/com.vrchat.core.vpm-resolver/Editor/PackageMaker/PackageMakerWindow.cs index b61d994..5e726f5 100644 --- a/Packages/com.vrchat.core.vpm-resolver/Editor/PackageMaker/PackageMakerWindow.cs +++ b/Packages/com.vrchat.core.vpm-resolver/Editor/PackageMaker/PackageMakerWindow.cs @@ -7,11 +7,9 @@ using System.Text.RegularExpressions; using UnityEditor; using UnityEditor.UIElements; -using UnityEditor.VersionControl; using UnityEngine; using UnityEngine.UIElements; using VRC.PackageManagement.Core.Types.Packages; -using YamlDotNet.Serialization.NodeTypeResolvers; namespace VRC.PackageManagement.PackageMaker { @@ -23,6 +21,9 @@ public class PackageMakerWindow : EditorWindow private TextField _packageIDField; private Button _actionButton; private EnumField _targetVRCPackageField; + private TextField _authorNameField; + private TextField _authorEmailField; + private TextField _authorUrlField; private static string _projectDir; private PackageMakerWindowData _windowData; @@ -34,6 +35,9 @@ private void LoadDataFromSave() } _packageIDField.SetValueWithoutNotify(_windowData.packageID); _targetVRCPackageField.SetValueWithoutNotify(_windowData.relatedPackage); + _authorEmailField.SetValueWithoutNotify(_windowData.authorEmail); + _authorNameField.SetValueWithoutNotify(_windowData.authorName); + _authorUrlField.SetValueWithoutNotify(_windowData.authorUrl); RefreshActionButtonState(); } @@ -101,7 +105,9 @@ private void RefreshActionButtonState() { _actionButton.SetEnabled( StringIsValidAssetFolder(_windowData.targetAssetFolder) && - !string.IsNullOrWhiteSpace(_windowData.packageID) + !string.IsNullOrWhiteSpace(_windowData.packageID) && + _authorNameField.value != null && + IsValidEmail(_authorEmailField.value) ); } @@ -122,6 +128,7 @@ private void CreateGUI() // Create Target Asset folder and register for drag and drop events _rootView.Add(CreateTargetFolderElement()); _rootView.Add(CreatePackageIDElement()); + _rootView.Add(CreateAuthorElement()); _rootView.Add(CreateTargetVRCPackageElement()); _rootView.Add(CreateActionButton()); @@ -133,8 +140,7 @@ public enum VRCPackageEnum None = 0, Worlds = 1, Avatars = 2, - Base = 3, - UdonSharp = 4, + Base = 3 } private VisualElement CreateTargetVRCPackageElement() @@ -206,6 +212,59 @@ private VisualElement CreatePackageIDElement() return box; } + private VisualElement CreateAuthorElement() + { + // Construct author fields + _authorNameField = new TextField("Author Name"); + _authorEmailField = new TextField("Author Email"); + _authorUrlField = new TextField("Author URL (optional)"); + + // Save name to window data and toggle the Action Button if its status changed + _authorNameField.RegisterValueChangedCallback((evt) => + { + _windowData.authorName = evt.newValue; + Debug.Log($"Window author name is {evt.newValue}"); + RefreshActionButtonState(); + }); + + // Save email to window data if valid and toggle the Action Button if its status changed + _authorEmailField.RegisterValueChangedCallback((evt) => + { + // Only save email if it appears valid + if (IsValidEmail(evt.newValue)) + { + _windowData.authorEmail = evt.newValue; + } + RefreshActionButtonState(); + }); + + // Save url to window data, doesn't affect action button state + _authorUrlField.RegisterValueChangedCallback((evt) => + { + _windowData.authorUrl = evt.newValue; + }); + + // Add new fields to layout + var box = new Box(); + box.Add(_authorNameField); + box.Add(_authorEmailField); + box.Add(_authorUrlField); + return box; + } + + private bool IsValidEmail(string evtNewValue) + { + try + { + var addr = new System.Net.Mail.MailAddress(evtNewValue); + return addr.Address == evtNewValue; + } + catch + { + return false; + } + } + private Regex packageIdRegex = new Regex("[^a-z0-9.]"); private void OnPackageIDChanged(ChangeEvent evt) { @@ -327,21 +386,31 @@ private void DoMigration(string corePath, string targetDir) packageType = "com.vrchat.base"; break; case VRCPackageEnum.Worlds: - packageType = "com.vrchat.clientsim"; // we want ClientSim too, need to specify that for now - break; - case VRCPackageEnum.UdonSharp: - packageType = "com.vrchat.udonsharp"; + packageType = "com.vrchat.worlds"; break; } string parentDir = new DirectoryInfo(targetDir)?.Parent.FullName; - Core.Utilities.CreateStarterPackage(_windowData.packageID, parentDir, packageType); + var packageDir = Core.Utilities.CreateStarterPackage(_windowData.packageID, parentDir, packageType); + + // Modify manifest to add author + // Todo: add support for passing author into CreateStarterPackage + var manifest = + VRCPackageManifest.GetManifestAtPath(Path.Combine(packageDir, VRCPackageManifest.Filename)) as + VRCPackageManifest; + manifest.author = new Author() + { + email = _windowData.authorEmail, + name = _windowData.authorName, + url = _windowData.authorUrl + }; + manifest.Save(); + var allFiles = GetAllFiles(corePath).ToList(); MoveFilesToPackageDir(allFiles, corePath, targetDir); // Clear target asset folder since it should no longer exist _windowData.targetAssetFolder = ""; - } private static IEnumerable GetAllFiles(string path) diff --git a/Packages/com.vrchat.core.vpm-resolver/Editor/PackageMaker/PackageMakerWindowData.cs b/Packages/com.vrchat.core.vpm-resolver/Editor/PackageMaker/PackageMakerWindowData.cs index ee580b7..df8eef6 100644 --- a/Packages/com.vrchat.core.vpm-resolver/Editor/PackageMaker/PackageMakerWindowData.cs +++ b/Packages/com.vrchat.core.vpm-resolver/Editor/PackageMaker/PackageMakerWindowData.cs @@ -8,6 +8,10 @@ public class PackageMakerWindowData : ScriptableObject public static string defaultAssetPath = Path.Combine("Assets", "PackageMakerWindowData.asset"); public string targetAssetFolder; public string packageID; + + public string authorName; + public string authorEmail; + public string authorUrl; public PackageMakerWindow.VRCPackageEnum relatedPackage; public static PackageMakerWindowData GetOrCreate() diff --git a/Packages/com.vrchat.core.vpm-resolver/Editor/Resolver/Resolver.cs b/Packages/com.vrchat.core.vpm-resolver/Editor/Resolver/Resolver.cs index 805549d..addd3b6 100644 --- a/Packages/com.vrchat.core.vpm-resolver/Editor/Resolver/Resolver.cs +++ b/Packages/com.vrchat.core.vpm-resolver/Editor/Resolver/Resolver.cs @@ -189,10 +189,7 @@ public static List GetAffectedPackageList(IVRCPackage package) public static void ForceRefresh () { - MethodInfo method = typeof( UnityEditor.PackageManager.Client ).GetMethod( "Resolve", BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.DeclaredOnly ); - if( method != null ) - method.Invoke( null, null ); - + UnityEditor.PackageManager.Client.Resolve(); AssetDatabase.Refresh(); } diff --git a/Packages/com.vrchat.core.vpm-resolver/Editor/Resolver/ResolverWindow.cs b/Packages/com.vrchat.core.vpm-resolver/Editor/Resolver/ResolverWindow.cs index fad3f54..8477fbc 100644 --- a/Packages/com.vrchat.core.vpm-resolver/Editor/Resolver/ResolverWindow.cs +++ b/Packages/com.vrchat.core.vpm-resolver/Editor/Resolver/ResolverWindow.cs @@ -1,4 +1,6 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; +using System.Linq; using System.Text; using System.Threading.Tasks; using UnityEditor; @@ -21,9 +23,25 @@ public class ResolverWindow : EditorWindow private static Button _resolveButton; private static Box _manifestInfo; private static Label _manifestLabel; + private static Label _manifestInfoText; + private static VisualElement _manifestPackageList; private static bool _isUpdating; private static Color _colorPositive = Color.green; private static Color _colorNegative = new Color(1, 0.3f, 0.3f); + + const string HAS_REFRESHED_KEY = "VRC.PackageManagement.Resolver.Refreshed"; + + private static bool IsUpdating + { + get => _isUpdating; + set + { + _isUpdating = value; + _refreshButton.SetEnabled(!value); + _refreshButton.text = value ? "Refreshing..." : "Refresh"; + _manifestLabel.text = value ? "Refreshing packages ..." : "Required Packages"; + } + } [MenuItem("VRChat SDK/Utilities/Package Resolver")] @@ -33,48 +51,66 @@ public static void ShowWindow() wnd.titleContent = new GUIContent("Package Resolver"); } - public static void Refresh() + public static async Task Refresh() { if (_rootView == null || string.IsNullOrWhiteSpace(Resolver.ProjectDir)) return; - _manifestInfo.SetEnabled(!_isUpdating); - _refreshButton.SetEnabled(!_isUpdating); - _manifestLabel.text = (_isUpdating ? "Working ..." : "Required Packages"); - _manifestInfo.Clear(); - _manifestInfo.Add(_manifestLabel); - - bool needsResolve = VPMProjectManifest.ResolveIsNeeded(Resolver.ProjectDir); - string resolveStatus = needsResolve ? "Please press \"Resolve\" to Download them." : "All of them are in the project."; + IsUpdating = true; + _manifestPackageList.Clear(); // check for vpm dependencies if (!Resolver.VPMManifestExists()) { - TextElement noManifestText = new TextElement(); - noManifestText.text = "No VPM Manifest"; - noManifestText.style.color = _colorNegative; - _manifestInfo.Add(noManifestText); + _manifestInfoText.style.display = DisplayStyle.Flex; + _manifestInfoText.text = "No VPM Manifest"; + _manifestInfoText.style.color = _colorNegative; } else { - var manifest = VPMProjectManifest.Load(Resolver.ProjectDir); - var project = new UnityProject(Resolver.ProjectDir); - - // Here is where we detect if all dependencies are installed - var allDependencies = (manifest.locked != null && manifest.locked.Count > 0) - ? manifest.locked - : manifest.dependencies; + _manifestInfoText.style.display = DisplayStyle.None; + } + + var manifest = VPMProjectManifest.Load(Resolver.ProjectDir); + var project = await Task.Run(() => new UnityProject(Resolver.ProjectDir)); + + // Here is where we detect if all dependencies are installed + var allDependencies = manifest.locked != null && manifest.locked.Count > 0 + ? manifest.locked + : manifest.dependencies; + var depList = await Task.Run(() => + { + var results = new Dictionary<(string id, string version), (IVRCPackage package, List allVersions)>(); foreach (var pair in allDependencies) { var id = pair.Key; var version = pair.Value.version; - IVRCPackage package = project.VPMProvider.GetPackage(id, version); - _manifestInfo.Add(CreateDependencyRow(id, version, project, (package != null))); + var package = project.VPMProvider.GetPackage(id, version); + results.Add((id, version), (package, Resolver.GetAllVersionsOf(id))); } + var legacyPackages = project.VPMProvider.GetLegacyPackages(); + + results = results.Where(i => !legacyPackages.Contains(i.Key.id)).ToDictionary(i => i.Key, i => i.Value); + + return results; + }); + + foreach (var dep in depList) + { + + _manifestPackageList.Add( + CreateDependencyRow( + dep.Key.id, + dep.Key.version, + project, + dep.Value.package, + dep.Value.allVersions + ) + ); } - _resolveButton.SetEnabled(needsResolve); - Resolver.ForceRefresh(); + + IsUpdating = false; } /// @@ -119,36 +155,65 @@ private void CreateGUI() name = "manifest-info", }; _manifestLabel = (new Label("Required Packages") { name = "manifest-header" }); + _manifestInfo.Add(_manifestLabel); + _manifestInfoText = new Label(); + _manifestInfo.Add(_manifestInfoText); + _manifestPackageList = new VisualElement(); + _manifestPackageList.style.flexDirection = FlexDirection.Column; + _manifestPackageList.style.alignItems = Align.Stretch; + _manifestInfo.Add(_manifestPackageList); _rootView.Add(_manifestInfo); // Refresh Button var refreshBox = new Box(); - _refreshButton = new Button(Refresh) + _refreshButton = new Button(() => + { + // When manually refreshing - ensure package manager is also up to date + Resolver.ForceRefresh(); + Refresh(); + }) { text = "Refresh", name = "refresh-button-base" }; refreshBox.Add(_refreshButton); _rootView.Add(refreshBox); + + // Refresh on open + // Sometimes unity can get into a bad state where calling package manager refresh will endlessly reload assemblies + // That in turn means that a Full refresh will be called every single time assemblies are loaded + // Which locks up the editor in an endless loop + // This condition ensures that the UPM resolve only happens on first launch + // We also call it after installing packages or hitting Refresh manually + if (!SessionState.GetBool(HAS_REFRESHED_KEY, false)) + { + SessionState.SetBool(HAS_REFRESHED_KEY, true); + Resolver.ForceRefresh(); + } - Refresh(); + rootVisualElement.schedule.Execute(() => Refresh()).ExecuteLater(100); } - private static VisualElement CreateDependencyRow(string id, string version, UnityProject project, bool havePackage) + private static VisualElement CreateDependencyRow(string id, string version, UnityProject project, IVRCPackage package, List allVersions) { - // Table - - VisualElement row = new Box() { name = "package-box" }; - VisualElement column1 = new Box() { name = "package-box" }; - VisualElement column2 = new Box() { name = "package-box" }; - VisualElement column3 = new Box() { name = "package-box" }; - VisualElement column4 = new Box() { name = "package-box" }; + bool havePackage = package != null; + + // Table Row + VisualElement row = new Box { name = "package-row" }; + VisualElement column1 = new Box { name = "package-box" }; + VisualElement column2 = new Box { name = "package-box" }; + VisualElement column3 = new Box { name = "package-box" }; + VisualElement column4 = new Box { name = "package-box" }; column1.style.minWidth = 200; + column1.style.width = new StyleLength(new Length(40, LengthUnit.Percent)); column2.style.minWidth = 100; + column2.style.width = new StyleLength(new Length(20, LengthUnit.Percent)); column3.style.minWidth = 100; + column3.style.width = new StyleLength(new Length(20, LengthUnit.Percent)); column4.style.minWidth = 100; + column4.style.width = new StyleLength(new Length(20, LengthUnit.Percent)); row.Add(column1); row.Add(column2); @@ -156,7 +221,15 @@ private static VisualElement CreateDependencyRow(string id, string version, Unit row.Add(column4); // Package Name + Status - + column1.style.alignItems = Align.FlexStart; + if (havePackage) + { + column1.style.flexDirection = FlexDirection.Column; + var titleRow = new VisualElement(); + titleRow.style.unityFontStyleAndWeight = FontStyle.Bold; + titleRow.Add(new Label(package.Title)); + column1.Add(titleRow); + } TextElement text = new TextElement { text = $"{id} {version} " }; column1.Add(text); @@ -165,21 +238,15 @@ private static VisualElement CreateDependencyRow(string id, string version, Unit { TextElement missingText = new TextElement { text = "MISSING" }; missingText.style.color = _colorNegative; - missingText.style.display = (_isUpdating ? DisplayStyle.None : DisplayStyle.Flex); column2.Add(missingText); } // Version Popup - - var choices = new List(); - foreach (string n in Resolver.GetAllVersionsOf(id)) + var currVersion = Mathf.Max(0, havePackage ? allVersions.IndexOf(package.Version) : 0); + var popupField = new PopupField(allVersions, 0) { - choices.Add(n); - } - - var popupField = new PopupField(choices, 0); - popupField.value = choices[0]; - popupField.style.display = (_isUpdating ? DisplayStyle.None : DisplayStyle.Flex); + value = allVersions[currVersion] + }; column3.Add(popupField); @@ -187,7 +254,7 @@ private static VisualElement CreateDependencyRow(string id, string version, Unit Button updateButton = new Button() { text = "Update" }; if (havePackage) - RefreshUpdateButton(updateButton, version, choices[0]); + RefreshUpdateButton(updateButton, version, allVersions[0]); else RefreshMissingButton(updateButton); @@ -264,7 +331,6 @@ private static void RefreshMissingButton(Button button) { button.text = "Resolve"; SetButtonColor(button, Color.white); - button.style.display = (_isUpdating ? DisplayStyle.None : DisplayStyle.Flex); } private static void SetButtonColor(Button button, Color color) @@ -281,11 +347,12 @@ private static void SetButtonColor(Button button, Color color) private static async void OnUpdatePackageClicked(UnityProject project, IVRCPackage package) { _isUpdating = true; - Refresh(); + await Refresh(); await Task.Delay(500); - await Task.Run(() => project.UpdateVPMPackage(package)); + project.UpdateVPMPackage(package); _isUpdating = false; Refresh(); + Resolver.ForceRefresh(); } } diff --git a/Packages/com.vrchat.core.vpm-resolver/Editor/Resources/ResolverWindowStyle.uss b/Packages/com.vrchat.core.vpm-resolver/Editor/Resources/ResolverWindowStyle.uss index 443e2e9..e83f59f 100644 --- a/Packages/com.vrchat.core.vpm-resolver/Editor/Resources/ResolverWindowStyle.uss +++ b/Packages/com.vrchat.core.vpm-resolver/Editor/Resources/ResolverWindowStyle.uss @@ -6,19 +6,20 @@ #package-box { margin:2px; - padding:10px; - border-width:0px; + border-width: 0; flex-direction:row; - max-height:20px; - min-height:20px; - height:20px; - padding-top:0px; - padding-bottom:0px; - margin-top:0px; - margin-bottom:0px; + padding: 6px; + justify-content: center; align-items:center; } +#package-row { + padding: 0; + margin: 0; + flex-direction: row; + background-color: rgba(0,0,0,0); +} + #manifest-header { font-size: 20px; margin-bottom: 10px; diff --git a/Packages/com.vrchat.core.vpm-resolver/package.json b/Packages/com.vrchat.core.vpm-resolver/package.json index 998e4ab..304eef2 100644 --- a/Packages/com.vrchat.core.vpm-resolver/package.json +++ b/Packages/com.vrchat.core.vpm-resolver/package.json @@ -1,10 +1,10 @@ { "name" : "com.vrchat.core.vpm-resolver", "displayName" : "VRChat Package Resolver Tool", - "version" : "0.1.18", - "unity" : "2019.4", + "version" : "0.1.28", + "unity" : "2022.3", "description" : "Tool to Download VPM Packages", - "vrchatVersion" : "2022.1.1", + "vrchatVersion" : "2022.3.3", "author" : { "name" : "VRChat", "email" : "developer@vrchat.com", @@ -12,6 +12,6 @@ }, "url" : "", "dependencies" : { - "com.unity.nuget.newtonsoft-json" : "2.0.2" + "com.unity.nuget.newtonsoft-json" : "3.0.2" } } diff --git a/Packages/manifest.json b/Packages/manifest.json index 4be7a4c..0a45b7c 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -1,16 +1,15 @@ { "dependencies": { - "com.unity.ide.rider": "1.2.1", + "com.unity.ai.navigation": "1.1.4", + "com.unity.ide.rider": "3.0.24", "com.unity.ide.visualstudio": "2.0.22", - "com.unity.ide.vscode": "1.2.4", + "com.unity.ide.vscode": "1.2.5", "com.unity.mathematics": "1.2.6", - "com.unity.nuget.newtonsoft-json": "2.0.2", - "com.unity.test-framework": "1.1.29", - "com.unity.textmeshpro": "2.1.6", - "com.unity.timeline": "1.2.18", + "com.unity.nuget.newtonsoft-json": "3.2.1", + "com.unity.test-framework": "1.1.33", + "com.unity.textmeshpro": "3.0.6", + "com.unity.timeline": "1.7.5", "com.unity.ugui": "1.0.0", - "com.unity.xr.oculus.standalone": "2.38.4", - "com.unity.xr.openvr.standalone": "2.0.5", "com.unity.modules.ai": "1.0.0", "com.unity.modules.androidjni": "1.0.0", "com.unity.modules.animation": "1.0.0", diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index 508e058..74bfbc0 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -62,8 +62,17 @@ "source": "embedded", "dependencies": {} }, + "com.unity.ai.navigation": { + "version": "1.1.4", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.modules.ai": "1.0.0" + }, + "url": "https://packages.unity.com" + }, "com.unity.burst": { - "version": "1.4.11", + "version": "1.8.7", "depth": 1, "source": "registry", "dependencies": { @@ -71,6 +80,17 @@ }, "url": "https://packages.unity.com" }, + "com.unity.collections": { + "version": "2.1.4", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.burst": "1.8.4", + "com.unity.modules.unityanalytics": "1.0.0", + "com.unity.nuget.mono-cecil": "1.11.4" + }, + "url": "https://packages.unity.com" + }, "com.unity.ext.nunit": { "version": "1.0.6", "depth": 1, @@ -79,11 +99,11 @@ "url": "https://packages.unity.com" }, "com.unity.ide.rider": { - "version": "1.2.1", + "version": "3.0.24", "depth": 0, "source": "registry", "dependencies": { - "com.unity.test-framework": "1.1.1" + "com.unity.ext.nunit": "1.0.6" }, "url": "https://packages.unity.com" }, @@ -97,7 +117,7 @@ "url": "https://packages.unity.com" }, "com.unity.ide.vscode": { - "version": "1.2.4", + "version": "1.2.5", "depth": 0, "source": "registry", "dependencies": {}, @@ -110,15 +130,31 @@ "dependencies": {}, "url": "https://packages.unity.com" }, + "com.unity.nuget.mono-cecil": { + "version": "1.11.4", + "depth": 2, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, "com.unity.nuget.newtonsoft-json": { - "version": "3.0.2", - "depth": 1, + "version": "3.2.1", + "depth": 0, "source": "registry", "dependencies": {}, "url": "https://packages.unity.com" }, + "com.unity.postprocessing": { + "version": "3.2.2", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.modules.physics": "1.0.0" + }, + "url": "https://packages.unity.com" + }, "com.unity.test-framework": { - "version": "1.1.29", + "version": "1.1.33", "depth": 0, "source": "registry", "dependencies": { @@ -129,7 +165,7 @@ "url": "https://packages.unity.com" }, "com.unity.textmeshpro": { - "version": "2.1.6", + "version": "3.0.6", "depth": 0, "source": "registry", "dependencies": { @@ -138,7 +174,7 @@ "url": "https://packages.unity.com" }, "com.unity.timeline": { - "version": "1.2.18", + "version": "1.7.5", "depth": 0, "source": "registry", "dependencies": { @@ -158,18 +194,35 @@ "com.unity.modules.imgui": "1.0.0" } }, - "com.unity.xr.oculus.standalone": { - "version": "2.38.4", - "depth": 0, + "com.unity.xr.legacyinputhelpers": { + "version": "2.1.10", + "depth": 2, "source": "registry", - "dependencies": {}, + "dependencies": { + "com.unity.modules.vr": "1.0.0", + "com.unity.modules.xr": "1.0.0" + }, "url": "https://packages.unity.com" }, - "com.unity.xr.openvr.standalone": { - "version": "2.0.5", - "depth": 0, + "com.unity.xr.management": { + "version": "4.4.0", + "depth": 1, "source": "registry", - "dependencies": {}, + "dependencies": { + "com.unity.modules.subsystems": "1.0.0", + "com.unity.modules.vr": "1.0.0", + "com.unity.modules.xr": "1.0.0", + "com.unity.xr.legacyinputhelpers": "2.1.7" + }, + "url": "https://packages.unity.com" + }, + "com.unity.xr.oculus": { + "version": "4.0.0", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.xr.management": "4.2.0" + }, "url": "https://packages.unity.com" }, "com.vrchat.avatars": { @@ -183,9 +236,13 @@ "depth": 0, "source": "embedded", "dependencies": { - "com.unity.burst": "1.4.11", - "com.unity.mathematics": "1.2.5", - "com.unity.nuget.newtonsoft-json": "3.0.2" + "com.unity.burst": "1.8.7", + "com.unity.collections": "2.1.4", + "com.unity.mathematics": "1.2.6", + "com.unity.nuget.newtonsoft-json": "3.2.1", + "com.unity.xr.management": "4.3.3", + "com.unity.xr.oculus": "4.0.0", + "com.unity.postprocessing": "3.2.2" } }, "com.vrchat.core.vpm-resolver": { @@ -193,7 +250,7 @@ "depth": 0, "source": "embedded", "dependencies": { - "com.unity.nuget.newtonsoft-json": "2.0.2" + "com.unity.nuget.newtonsoft-json": "3.0.2" } }, "com.unity.modules.ai": { @@ -329,6 +386,7 @@ "depth": 0, "source": "builtin", "dependencies": { + "com.unity.modules.ui": "1.0.0", "com.unity.modules.imgui": "1.0.0", "com.unity.modules.jsonserialize": "1.0.0" } diff --git a/Packages/vpm-manifest.json b/Packages/vpm-manifest.json index 5e7d592..83d0d5f 100644 --- a/Packages/vpm-manifest.json +++ b/Packages/vpm-manifest.json @@ -1,29 +1,26 @@ { "dependencies": { "com.vrchat.core.vpm-resolver": { - "version": "0.1.18" - }, - "com.vrchat.base": { - "version": "3.4.2" + "version": "0.1.28" }, "com.vrchat.avatars": { - "version": "3.4.2" + "version": "3.5.1" } }, "locked": { "com.vrchat.core.vpm-resolver": { - "version": "0.1.18", - "dependencies": {} - }, - "com.vrchat.base": { - "version": "3.4.2", + "version": "0.1.28", "dependencies": {} }, "com.vrchat.avatars": { - "version": "3.4.2", + "version": "3.5.1", "dependencies": { - "com.vrchat.base": "3.4.2" + "com.vrchat.base": "3.5.1" } + }, + "com.vrchat.base": { + "version": "3.5.1", + "dependencies": {} } } } \ No newline at end of file diff --git a/ProjectSettings/EditorBuildSettings.asset b/ProjectSettings/EditorBuildSettings.asset index 0147887..09004c9 100644 --- a/ProjectSettings/EditorBuildSettings.asset +++ b/ProjectSettings/EditorBuildSettings.asset @@ -5,4 +5,6 @@ EditorBuildSettings: m_ObjectHideFlags: 0 serializedVersion: 2 m_Scenes: [] - m_configObjects: {} + m_configObjects: + com.unity.xr.management.loader_settings: {fileID: 11400000, guid: 70cbfcd9cb19f42489da13cddbd7b3ac, + type: 2} diff --git a/ProjectSettings/MemorySettings.asset b/ProjectSettings/MemorySettings.asset new file mode 100644 index 0000000..5b5face --- /dev/null +++ b/ProjectSettings/MemorySettings.asset @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!387306366 &1 +MemorySettings: + m_ObjectHideFlags: 0 + m_EditorMemorySettings: + m_MainAllocatorBlockSize: -1 + m_ThreadAllocatorBlockSize: -1 + m_MainGfxBlockSize: -1 + m_ThreadGfxBlockSize: -1 + m_CacheBlockSize: -1 + m_TypetreeBlockSize: -1 + m_ProfilerBlockSize: -1 + m_ProfilerEditorBlockSize: -1 + m_BucketAllocatorGranularity: -1 + m_BucketAllocatorBucketsCount: -1 + m_BucketAllocatorBlockSize: -1 + m_BucketAllocatorBlockCount: -1 + m_ProfilerBucketAllocatorGranularity: -1 + m_ProfilerBucketAllocatorBucketsCount: -1 + m_ProfilerBucketAllocatorBlockSize: -1 + m_ProfilerBucketAllocatorBlockCount: -1 + m_TempAllocatorSizeMain: -1 + m_JobTempAllocatorBlockSize: -1 + m_BackgroundJobTempAllocatorBlockSize: -1 + m_JobTempAllocatorReducedBlockSize: -1 + m_TempAllocatorSizeGIBakingWorker: -1 + m_TempAllocatorSizeNavMeshWorker: -1 + m_TempAllocatorSizeAudioWorker: -1 + m_TempAllocatorSizeCloudWorker: -1 + m_TempAllocatorSizeGfx: -1 + m_TempAllocatorSizeJobWorker: -1 + m_TempAllocatorSizeBackgroundWorker: -1 + m_TempAllocatorSizePreloadManager: -1 + m_PlatformMemorySettings: {} diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index 3bd1cec..133ec65 100644 --- a/ProjectSettings/ProjectSettings.asset +++ b/ProjectSettings/ProjectSettings.asset @@ -3,7 +3,7 @@ --- !u!129 &1 PlayerSettings: m_ObjectHideFlags: 0 - serializedVersion: 20 + serializedVersion: 26 productGUID: b3c5e0f91eedeff44a33fc4ff58cec69 AndroidProfiler: 0 AndroidFilterTouchesWhenObscured: 0 @@ -48,12 +48,15 @@ PlayerSettings: defaultScreenHeightWeb: 600 m_StereoRenderingPath: 1 m_ActiveColorSpace: 1 + m_SpriteBatchVertexThreshold: 300 m_MTRendering: 1 + mipStripping: 0 + numberOfMipsStripped: 0 + numberOfMipsStrippedPerMipmapLimitGroup: {} m_StackTraceTypes: 010000000100000001000000010000000100000001000000 iosShowActivityIndicatorOnLoading: -1 androidShowActivityIndicatorOnLoading: -1 iosUseCustomAppBackgroundBehavior: 0 - iosAllowHTTPDownload: 1 allowedAutorotateToPortrait: 1 allowedAutorotateToPortraitUpsideDown: 1 allowedAutorotateToLandscapeRight: 1 @@ -117,19 +120,19 @@ PlayerSettings: switchNVNShaderPoolsGranularity: 33554432 switchNVNDefaultPoolsGranularity: 16777216 switchNVNOtherPoolsGranularity: 16777216 + switchGpuScratchPoolGranularity: 2097152 + switchAllowGpuScratchShrinking: 0 switchNVNMaxPublicTextureIDCount: 0 switchNVNMaxPublicSamplerIDCount: 0 + switchNVNGraphicsFirmwareMemory: 32 stadiaPresentMode: 0 stadiaTargetFramerate: 0 vulkanNumSwapchainBuffers: 3 vulkanEnableSetSRGBWrite: 0 + vulkanEnablePreTransform: 0 vulkanEnableLateAcquireNextImage: 0 - m_SupportedAspectRatios: - 4:3: 1 - 5:4: 1 - 16:10: 1 - 16:9: 1 - Others: 1 + vulkanEnableCommandBufferRecycling: 1 + loadStoreDebugModeEnabled: 0 bundleVersion: 0.1 preloadedAssets: [] metroInputSource: 0 @@ -138,45 +141,27 @@ PlayerSettings: xboxOneDisableKinectGpuReservation: 1 xboxOneEnable7thCore: 1 vrSettings: - cardboard: - depthFormat: 0 - enableTransitionView: 0 - daydream: - depthFormat: 0 - useSustainedPerformanceMode: 0 - enableVideoLayer: 0 - useProtectedVideoMemory: 0 - minimumSupportedHeadTracking: 0 - maximumSupportedHeadTracking: 1 - hololens: - depthFormat: 1 - depthBufferSharingEnabled: 1 - lumin: - depthFormat: 0 - frameTiming: 2 - enableGLCache: 0 - glCacheMaxBlobSize: 524288 - glCacheMaxFileSize: 8388608 - oculus: - sharedDepthBuffer: 1 - dashSupport: 1 - lowOverheadMode: 0 - protectedContext: 0 - v2Signing: 1 enable360StereoCapture: 0 isWsaHolographicRemotingEnabled: 0 enableFrameTimingStats: 0 + enableOpenGLProfilerGPURecorders: 1 useHDRDisplay: 0 - D3DHDRBitDepth: 0 + hdrBitDepth: 0 m_ColorGamuts: 00000000 targetPixelDensity: 30 resolutionScalingMode: 0 + resetResolutionOnWindowResize: 0 androidSupportedAspectRatio: 1 androidMaxAspectRatio: 2.1 applicationIdentifier: {} - buildNumber: {} + buildNumber: + Standalone: 0 + VisionOS: 0 + iPhone: 0 + tvOS: 0 + overrideDefaultApplicationIdentifier: 0 AndroidBundleVersionCode: 1 - AndroidMinSdkVersion: 19 + AndroidMinSdkVersion: 22 AndroidTargetSdkVersion: 0 AndroidPreferredInstallLocation: 1 aotOptions: @@ -189,12 +174,15 @@ PlayerSettings: APKExpansionFiles: 0 keepLoadedShadersAlive: 0 StripUnusedMeshComponents: 1 + strictShaderVariantMatching: 0 VertexChannelCompressionMask: 4054 iPhoneSdkVersion: 988 - iOSTargetOSVersionString: 10.0 + iOSTargetOSVersionString: 12.0 tvOSSdkVersion: 0 tvOSRequireExtendedGameController: 0 - tvOSTargetOSVersionString: 10.0 + tvOSTargetOSVersionString: 12.0 + VisionOSSdkVersion: 0 + VisionOSTargetOSVersionString: 1.0 uIPrerenderedIcon: 0 uIRequiresPersistentWiFi: 0 uIRequiresFullScreen: 1 @@ -228,10 +216,11 @@ PlayerSettings: iOSLaunchScreeniPadFillPct: 100 iOSLaunchScreeniPadSize: 100 iOSLaunchScreeniPadCustomXibPath: - iOSUseLaunchScreenStoryboard: 0 iOSLaunchScreenCustomStoryboardPath: + iOSLaunchScreeniPadCustomStoryboardPath: iOSDeviceRequirements: [] iOSURLSchemes: [] + macOSURLSchemes: [] iOSBackgroundModes: 0 iOSMetalForceHardShadows: 0 metalEditorSupport: 1 @@ -241,21 +230,33 @@ PlayerSettings: appleDeveloperTeamID: iOSManualSigningProvisioningProfileID: tvOSManualSigningProvisioningProfileID: + VisionOSManualSigningProvisioningProfileID: iOSManualSigningProvisioningProfileType: 0 tvOSManualSigningProvisioningProfileType: 0 + VisionOSManualSigningProvisioningProfileType: 0 appleEnableAutomaticSigning: 0 iOSRequireARKit: 0 iOSAutomaticallyDetectAndAddCapabilities: 1 appleEnableProMotion: 0 + shaderPrecisionModel: 0 clonedFromGUID: c0afd0d1d80e3634a9dac47e8a0426ea templatePackageId: com.unity.template.3d@4.2.8 templateDefaultScene: Assets/Scenes/SampleScene.unity + useCustomMainManifest: 0 + useCustomLauncherManifest: 0 + useCustomMainGradleTemplate: 0 + useCustomLauncherGradleManifest: 0 + useCustomBaseGradleTemplate: 0 + useCustomGradlePropertiesTemplate: 0 + useCustomGradleSettingsTemplate: 0 + useCustomProguardFile: 0 AndroidTargetArchitectures: 1 AndroidTargetDevices: 0 AndroidSplashScreenScale: 0 androidSplashScreen: {fileID: 0} AndroidKeystoreName: AndroidKeyaliasName: + AndroidEnableArmv9SecurityFeatures: 0 AndroidBuildApkPerCpuArchitecture: 0 AndroidTVCompatibility: 0 AndroidIsGame: 1 @@ -269,10 +270,104 @@ PlayerSettings: banner: {fileID: 0} androidGamepadSupportLevel: 0 chromeosInputEmulation: 1 + AndroidMinifyRelease: 0 + AndroidMinifyDebug: 0 AndroidValidateAppBundleSize: 1 AndroidAppBundleSizeToValidate: 150 m_BuildTargetIcons: [] - m_BuildTargetPlatformIcons: [] + m_BuildTargetPlatformIcons: + - m_BuildTarget: Android + m_Icons: + - m_Textures: [] + m_Width: 432 + m_Height: 432 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 324 + m_Height: 324 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 216 + m_Height: 216 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 162 + m_Height: 162 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 108 + m_Height: 108 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 81 + m_Height: 81 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 192 + m_Height: 192 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 144 + m_Height: 144 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 96 + m_Height: 96 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 72 + m_Height: 72 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 48 + m_Height: 48 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 36 + m_Height: 36 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 192 + m_Height: 192 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 144 + m_Height: 144 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 96 + m_Height: 96 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 72 + m_Height: 72 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 48 + m_Height: 48 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 36 + m_Height: 36 + m_Kind: 0 + m_SubKind: m_BuildTargetBatching: - m_BuildTarget: Standalone m_StaticBatching: 1 @@ -289,6 +384,7 @@ PlayerSettings: - m_BuildTarget: WebGL m_StaticBatching: 0 m_DynamicBatching: 0 + m_BuildTargetShaderSettings: [] m_BuildTargetGraphicsJobs: - m_BuildTarget: MacStandaloneSupport m_GraphicsJobs: 0 @@ -307,7 +403,7 @@ PlayerSettings: - m_BuildTarget: iOSSupport m_GraphicsJobs: 0 - m_BuildTarget: WindowsStandaloneSupport - m_GraphicsJobs: 1 + m_GraphicsJobs: 0 - m_BuildTarget: XboxOnePlayer m_GraphicsJobs: 1 - m_BuildTarget: LuminSupport @@ -327,10 +423,10 @@ PlayerSettings: m_Automatic: 0 - m_BuildTarget: iOSSupport m_APIs: 10000000 - m_Automatic: 0 + m_Automatic: 1 - m_BuildTarget: AppleTVSupport m_APIs: 10000000 - m_Automatic: 0 + m_Automatic: 1 - m_BuildTarget: WebGLSupport m_APIs: 0b000000 m_Automatic: 1 @@ -347,6 +443,8 @@ PlayerSettings: - None - OpenVR - Oculus + m_DefaultShaderChunkSizeInMB: 16 + m_DefaultShaderChunkCount: 0 openGLRequireES31: 0 openGLRequireES31AEP: 0 openGLRequireES32: 0 @@ -356,7 +454,11 @@ PlayerSettings: iPhone: 1 tvOS: 1 m_BuildTargetGroupLightmapEncodingQuality: [] + m_BuildTargetGroupHDRCubemapEncodingQuality: [] m_BuildTargetGroupLightmapSettings: [] + m_BuildTargetGroupLoadStoreDebugModeSettings: [] + m_BuildTargetNormalMapEncoding: [] + m_BuildTargetDefaultTextureCompressionFormat: [] playModeTestRunnerEnabled: 0 runPlayModeTestAsEditModeTest: 0 actionOnDotNetUnhandledException: 1 @@ -366,14 +468,20 @@ PlayerSettings: cameraUsageDescription: locationUsageDescription: microphoneUsageDescription: + bluetoothUsageDescription: + macOSTargetOSVersion: 10.13.0 + switchNMETAOverride: switchNetLibKey: switchSocketMemoryPoolSize: 6144 switchSocketAllocatorPoolSize: 128 switchSocketConcurrencyLimit: 14 switchScreenResolutionBehavior: 2 switchUseCPUProfiler: 0 + switchUseGOLDLinker: 0 + switchLTOSetting: 0 switchApplicationID: 0x01004b9000490000 switchNSODependencies: + switchCompilerFlags: switchTitleNames_0: switchTitleNames_1: switchTitleNames_2: @@ -447,7 +555,6 @@ PlayerSettings: switchReleaseVersion: 0 switchDisplayVersion: 1.0.0 switchStartupUserAccount: 0 - switchTouchScreenUsage: 0 switchSupportedLanguagesMask: 0 switchLogoType: 0 switchApplicationErrorCodeCategory: @@ -489,6 +596,7 @@ PlayerSettings: switchNativeFsCacheSize: 32 switchIsHoldTypeHorizontal: 0 switchSupportedNpadCount: 8 + switchEnableTouchScreen: 1 switchSocketConfigEnabled: 0 switchTcpInitialSendBufferSize: 32 switchTcpInitialReceiveBufferSize: 64 @@ -500,8 +608,12 @@ PlayerSettings: switchSocketInitializeEnabled: 1 switchNetworkInterfaceManagerInitializeEnabled: 1 switchPlayerConnectionEnabled: 1 + switchUseNewStyleFilepaths: 1 + switchUseLegacyFmodPriorities: 0 switchUseMicroSleepForYield: 1 + switchEnableRamDiskSupport: 0 switchMicroSleepForYieldTime: 25 + switchRamDiskSpaceSize: 12 ps4NPAgeRating: 12 ps4NPTitleSecret: ps4NPTrophyPackPath: @@ -577,31 +689,6 @@ PlayerSettings: ps4attribEyeToEyeDistanceSettingVR: 0 ps4IncludedModules: [] ps4attribVROutputEnabled: 0 - ps5ParamFilePath: - ps5VideoOutPixelFormat: 0 - ps5VideoOutInitialWidth: 1920 - ps5VideoOutOutputMode: 1 - ps5BackgroundImagePath: - ps5StartupImagePath: - ps5Pic2Path: - ps5StartupImagesFolder: - ps5IconImagesFolder: - ps5SaveDataImagePath: - ps5SdkOverride: - ps5BGMPath: - ps5ShareOverlayImagePath: - ps5NPConfigZipPath: - ps5Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ - ps5UseResolutionFallback: 0 - ps5UseAudio3dBackend: 0 - ps5ScriptOptimizationLevel: 2 - ps5Audio3dVirtualSpeakerCount: 14 - ps5UpdateReferencePackage: - ps5disableAutoHideSplash: 0 - ps5OperatingSystemCanDisableSplashScreen: 0 - ps5IncludedModules: [] - ps5SharedBinaryContentLabels: [] - ps5SharedBinarySystemFolders: [] monoEnv: splashScreenBackgroundSourceLandscape: {fileID: 0} splashScreenBackgroundSourcePortrait: {fileID: 0} @@ -610,6 +697,7 @@ PlayerSettings: webGLMemorySize: 16 webGLExceptionSupport: 1 webGLNameFilesAsHashes: 0 + webGLShowDiagnostics: 0 webGLDataCaching: 1 webGLDebugSymbols: 0 webGLEmscriptenArgs: @@ -618,35 +706,61 @@ PlayerSettings: webGLAnalyzeBuildSize: 0 webGLUseEmbeddedResources: 0 webGLCompressionFormat: 1 + webGLWasmArithmeticExceptions: 0 webGLLinkerTarget: 1 webGLThreadsSupport: 0 - webGLWasmStreaming: 0 + webGLDecompressionFallback: 0 + webGLInitialMemorySize: 32 + webGLMaximumMemorySize: 2048 + webGLMemoryGrowthMode: 2 + webGLMemoryLinearGrowthStep: 16 + webGLMemoryGeometricGrowthStep: 0.2 + webGLMemoryGeometricGrowthCap: 96 + webGLPowerPreference: 2 scriptingDefineSymbols: - 1: POST_PROCESSING_STACK_V2;VRC_SDK_VRCSDK3 - 7: UNITY_POST_PROCESSING_STACK_V2 - 13: UNITY_POST_PROCESSING_STACK_V2 - 14: UNITY_POST_PROCESSING_STACK_V2 - 19: UNITY_POST_PROCESSING_STACK_V2 - 21: UNITY_POST_PROCESSING_STACK_V2 - 25: UNITY_POST_PROCESSING_STACK_V2 - 27: UNITY_POST_PROCESSING_STACK_V2 - 28: UNITY_POST_PROCESSING_STACK_V2 - 29: UNITY_POST_PROCESSING_STACK_V2 - 30: UNITY_POST_PROCESSING_STACK_V2 - 32: UNITY_POST_PROCESSING_STACK_V2 - 33: UNITY_POST_PROCESSING_STACK_V2 + Android: UNITY_POST_PROCESSING_STACK_V2 + EmbeddedLinux: UNITY_POST_PROCESSING_STACK_V2 + GameCoreXboxOne: UNITY_POST_PROCESSING_STACK_V2 + LinuxHeadlessSimulation: UNITY_POST_PROCESSING_STACK_V2 + Nintendo Switch: UNITY_POST_PROCESSING_STACK_V2 + PS4: UNITY_POST_PROCESSING_STACK_V2 + PS5: UNITY_POST_PROCESSING_STACK_V2 + QNX: UNITY_POST_PROCESSING_STACK_V2 + Stadia: UNITY_POST_PROCESSING_STACK_V2 + Standalone: POST_PROCESSING_STACK_V2;VRC_SDK_VRCSDK3;UNITY_POST_PROCESSING_STACK_V2 + VisionOS: UNITY_POST_PROCESSING_STACK_V2 + WebGL: UNITY_POST_PROCESSING_STACK_V2 + Windows Store Apps: UNITY_POST_PROCESSING_STACK_V2 + XboxOne: UNITY_POST_PROCESSING_STACK_V2 + tvOS: UNITY_POST_PROCESSING_STACK_V2 + additionalCompilerArguments: {} platformArchitecture: {} scriptingBackend: {} il2cppCompilerConfiguration: Standalone: 1 - managedStrippingLevel: {} + il2cppCodeGeneration: {} + managedStrippingLevel: + EmbeddedLinux: 1 + GameCoreScarlett: 1 + GameCoreXboxOne: 1 + Nintendo Switch: 1 + PS4: 1 + PS5: 1 + QNX: 1 + Stadia: 1 + VisionOS: 1 + WebGL: 1 + Windows Store Apps: 1 + XboxOne: 1 + iPhone: 1 + tvOS: 1 incrementalIl2cppBuild: {} suppressCommonWarnings: 1 allowUnsafeCode: 0 + useDeterministicCompilation: 1 additionalIl2CppArgs: --compiler-flags="" --linker-flags="" scriptingRuntimeVersion: 1 gcIncremental: 1 - assemblyVersionValidation: 1 gcWBarrierValidation: 0 apiCompatibilityLevelPerPlatform: Standalone: 3 @@ -679,6 +793,7 @@ PlayerSettings: metroFTAName: metroFTAFileTypes: [] metroProtocolName: + vcxProjDefaultLanguage: XboxOneProductId: XboxOneUpdateKey: XboxOneSandboxId: @@ -706,10 +821,7 @@ PlayerSettings: XboxOneXTitleMemory: 8 XboxOneOverrideIdentityName: XboxOneOverrideIdentityPublisher: - vrEditorSettings: - daydream: - daydreamIconForeground: {fileID: 0} - daydreamIconBackground: {fileID: 0} + vrEditorSettings: {} cloudServicesEnabled: UNet: 1 luminIcon: @@ -723,12 +835,22 @@ PlayerSettings: luminVersion: m_VersionCode: 1 m_VersionName: + hmiPlayerDataPath: + hmiForceSRGBBlit: 1 + embeddedLinuxEnableGamepadInput: 1 + hmiLogStartupTiming: 0 + hmiCpuConfiguration: apiCompatibilityLevel: 6 + activeInputHandler: 2 + windowsGamepadBackendHint: 0 cloudProjectId: framebufferDepthMemorylessMode: 0 + qualitySettingsNames: [] projectName: organizationId: cloudEnabled: 0 - enableNativePlatformBackendsForNewInputSystem: 1 - disableOldInputManagerSupport: 0 - legacyClampBlendShapeWeights: 0 + legacyClampBlendShapeWeights: 1 + hmiLoadingImage: {fileID: 0} + platformRequiresReadableAssets: 0 + virtualTexturingSupportEnabled: 0 + insecureHttpOption: 0 diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt index 5549a7f..105db72 100644 --- a/ProjectSettings/ProjectVersion.txt +++ b/ProjectSettings/ProjectVersion.txt @@ -1,2 +1,2 @@ -m_EditorVersion: 2019.4.31f1 -m_EditorVersionWithRevision: 2019.4.31f1 (bd5abf232a62) +m_EditorVersion: 2022.3.6f1 +m_EditorVersionWithRevision: 2022.3.6f1 (b9e6e7e9fa2d) diff --git a/ProjectSettings/VersionControlSettings.asset b/ProjectSettings/VersionControlSettings.asset new file mode 100644 index 0000000..dca2881 --- /dev/null +++ b/ProjectSettings/VersionControlSettings.asset @@ -0,0 +1,8 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!890905787 &1 +VersionControlSettings: + m_ObjectHideFlags: 0 + m_Mode: Visible Meta Files + m_CollabEditorSettings: + inProgressEnabled: 1 diff --git a/ProjectSettings/XRPackageSettings.asset b/ProjectSettings/XRPackageSettings.asset new file mode 100644 index 0000000..7e791e1 --- /dev/null +++ b/ProjectSettings/XRPackageSettings.asset @@ -0,0 +1,5 @@ +{ + "m_Settings": [ + "RemoveLegacyInputHelpersForReload" + ] +} \ No newline at end of file diff --git a/UserSettings/EditorUserSettings.asset b/UserSettings/EditorUserSettings.asset new file mode 100644 index 0000000..4681d1d --- /dev/null +++ b/UserSettings/EditorUserSettings.asset @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!162 &1 +EditorUserSettings: + m_ObjectHideFlags: 0 + serializedVersion: 4 + m_ConfigSettings: + vcSharedLogLevel: + value: 0d5e400f0650 + flags: 0 + m_VCAutomaticAdd: 1 + m_VCDebugCom: 0 + m_VCDebugCmd: 0 + m_VCDebugOut: 0 + m_SemanticMergeMode: 2 + m_VCShowFailedCheckout: 1 + m_VCOverwriteFailedCheckoutAssets: 1 + m_VCOverlayIcons: 1 + m_VCAllowAsyncUpdate: 0 diff --git a/UserSettings/Search.settings b/UserSettings/Search.settings new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/UserSettings/Search.settings @@ -0,0 +1 @@ +{} \ No newline at end of file