fix: clap sample can't be uploaded on SDK 3.1.13 (#273)

* chore: update VPM dependencies

* fix: set sample audio clip to load in background
This commit is contained in:
bd_ 2023-04-10 21:27:10 +09:00 committed by GitHub
parent deb6bbfe5e
commit 82d58e52fa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 86 additions and 72 deletions

View File

@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Reflection; using System.Reflection;
using System.Text;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using UnityEditor; using UnityEditor;
using UnityEditor.UIElements; using UnityEditor.UIElements;
@ -18,7 +19,7 @@ namespace VRC.PackageManagement.PackageMaker
{ {
// VisualElements // VisualElements
private VisualElement _rootView; private VisualElement _rootView;
private TextField _targetAssetFolderField; private TextField _targetAssetFolderField;
private TextField _packageIDField; private TextField _packageIDField;
private Button _actionButton; private Button _actionButton;
private EnumField _targetVRCPackageField; private EnumField _targetVRCPackageField;
@ -31,6 +32,7 @@ namespace VRC.PackageManagement.PackageMaker
{ {
_targetAssetFolderField.SetValueWithoutNotify(_windowData.targetAssetFolder); _targetAssetFolderField.SetValueWithoutNotify(_windowData.targetAssetFolder);
} }
_packageIDField.SetValueWithoutNotify(_windowData.packageID); _packageIDField.SetValueWithoutNotify(_windowData.packageID);
_targetVRCPackageField.SetValueWithoutNotify(_windowData.relatedPackage); _targetVRCPackageField.SetValueWithoutNotify(_windowData.relatedPackage);
@ -51,29 +53,33 @@ namespace VRC.PackageManagement.PackageMaker
} }
[MenuItem("Assets/Export VPM as UnityPackage")] [MenuItem("Assets/Export VPM as UnityPackage")]
private static void ExportAsUnityPackage () private static void ExportAsUnityPackage()
{ {
if (Selection.assetGUIDs.Length != 1) var foldersToExport = new List<string>();
StringBuilder exportFilename = new StringBuilder("exported");
foreach (string guid in Selection.assetGUIDs)
{ {
Debug.LogWarning($"Cannot export selection, must be a single Folder."); string selectedFolder = AssetDatabase.GUIDToAssetPath(guid);
return; var manifestPath = Path.Combine(selectedFolder, VRCPackageManifest.Filename);
} var manifest = VRCPackageManifest.GetManifestAtPath(manifestPath);
if (manifest == null)
string selectedFolder = AssetDatabase.GUIDToAssetPath(Selection.assetGUIDs[0]); {
var manifestPath = Path.Combine(selectedFolder, VRCPackageManifest.Filename); Debug.LogWarning(
var manifest = VRCPackageManifest.GetManifestAtPath(manifestPath); $"Could not read valid Package Manifest at {manifestPath}. You need to create this first to export a VPM Package.");
if (manifest == null) continue;
{ }
Debug.LogWarning($"Could not read valid Package Manifest at {manifestPath}. You need to create this first.");
return; exportFilename.Append($"-{manifest.Id}-{manifest.Version}");
foldersToExport.Add(selectedFolder);
} }
exportFilename.Append(".unitypackage");
var exportDir = Path.Combine(Directory.GetCurrentDirectory(), "Exports"); var exportDir = Path.Combine(Directory.GetCurrentDirectory(), "Exports");
Directory.CreateDirectory(exportDir); Directory.CreateDirectory(exportDir);
AssetDatabase.ExportPackage AssetDatabase.ExportPackage
( (
selectedFolder, foldersToExport.ToArray(),
Path.Combine(exportDir, $"{manifest.Id}-{manifest.Version}.unitypackage"), Path.Combine(exportDir, exportFilename.ToString()),
ExportPackageOptions.Recurse | ExportPackageOptions.Interactive ExportPackageOptions.Recurse | ExportPackageOptions.Interactive
); );
} }
@ -144,7 +150,7 @@ namespace VRC.PackageManagement.PackageMaker
private void OnTargetVRCPackageChanged(ChangeEvent<Enum> evt) private void OnTargetVRCPackageChanged(ChangeEvent<Enum> evt)
{ {
_windowData.relatedPackage = (VRCPackageEnum)evt.newValue; _windowData.relatedPackage = (VRCPackageEnum) evt.newValue;
_windowData.Save(); _windowData.Save();
} }
@ -173,11 +179,12 @@ namespace VRC.PackageManagement.PackageMaker
} }
} }
public static void ForceRefresh () public static void ForceRefresh()
{ {
MethodInfo method = typeof( UnityEditor.PackageManager.Client ).GetMethod( "Resolve", BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.DeclaredOnly ); MethodInfo method = typeof(UnityEditor.PackageManager.Client).GetMethod("Resolve",
if( method != null ) BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.DeclaredOnly);
method.Invoke( null, null ); if (method != null)
method.Invoke(null, null);
AssetDatabase.Refresh(); AssetDatabase.Refresh();
} }
@ -195,14 +202,16 @@ namespace VRC.PackageManagement.PackageMaker
box.Add(new Label("Lowercase letters, numbers and dots only.") box.Add(new Label("Lowercase letters, numbers and dots only.")
{ {
name="description", name = "description",
tooltip = "Standard practice is reverse domain notation like com.vrchat.packagename. Needs to be unique across VRChat, so if you don't own a domain you can try your username.", tooltip =
"Standard practice is reverse domain notation like com.vrchat.packagename. Needs to be unique across VRChat, so if you don't own a domain you can try your username.",
}); });
return box; return box;
} }
private Regex packageIdRegex = new Regex("[^a-z0-9.]"); private Regex packageIdRegex = new Regex("[^a-z0-9.]");
private void OnPackageIDChanged(ChangeEvent<string> evt) private void OnPackageIDChanged(ChangeEvent<string> evt)
{ {
if (evt.newValue != null) if (evt.newValue != null)
@ -212,6 +221,7 @@ namespace VRC.PackageManagement.PackageMaker
_windowData.packageID = newId; _windowData.packageID = newId;
_windowData.Save(); _windowData.Save();
} }
RefreshActionButtonState(); RefreshActionButtonState();
} }
@ -223,15 +233,20 @@ namespace VRC.PackageManagement.PackageMaker
}; };
_targetAssetFolderField = new TextField("Target Folder"); _targetAssetFolderField = new TextField("Target Folder");
_targetAssetFolderField.RegisterCallback<DragEnterEvent>(OnTargetAssetFolderDragEnter, TrickleDown.TrickleDown); _targetAssetFolderField.RegisterCallback<DragEnterEvent>(OnTargetAssetFolderDragEnter,
_targetAssetFolderField.RegisterCallback<DragLeaveEvent>(OnTargetAssetFolderDragLeave, TrickleDown.TrickleDown); TrickleDown.TrickleDown);
_targetAssetFolderField.RegisterCallback<DragUpdatedEvent>(OnTargetAssetFolderDragUpdated, TrickleDown.TrickleDown); _targetAssetFolderField.RegisterCallback<DragLeaveEvent>(OnTargetAssetFolderDragLeave,
_targetAssetFolderField.RegisterCallback<DragPerformEvent>(OnTargetAssetFolderDragPerform, TrickleDown.TrickleDown); TrickleDown.TrickleDown);
_targetAssetFolderField.RegisterCallback<DragExitedEvent>(OnTargetAssetFolderDragExited, TrickleDown.TrickleDown); _targetAssetFolderField.RegisterCallback<DragUpdatedEvent>(OnTargetAssetFolderDragUpdated,
TrickleDown.TrickleDown);
_targetAssetFolderField.RegisterCallback<DragPerformEvent>(OnTargetAssetFolderDragPerform,
TrickleDown.TrickleDown);
_targetAssetFolderField.RegisterCallback<DragExitedEvent>(OnTargetAssetFolderDragExited,
TrickleDown.TrickleDown);
_targetAssetFolderField.RegisterValueChangedCallback(OnTargetAssetFolderValueChanged); _targetAssetFolderField.RegisterValueChangedCallback(OnTargetAssetFolderValueChanged);
targetFolderBox.Add(_targetAssetFolderField); targetFolderBox.Add(_targetAssetFolderField);
targetFolderBox.Add(new Label("Drag and Drop an Assets Folder to Convert Above"){name="description"}); targetFolderBox.Add(new Label("Drag and Drop an Assets Folder to Convert Above") {name = "description"});
return targetFolderBox; return targetFolderBox;
} }
@ -309,7 +324,6 @@ namespace VRC.PackageManagement.PackageMaker
private void DoMigration(string corePath, string targetDir) private void DoMigration(string corePath, string targetDir)
{ {
EditorUtility.DisplayProgressBar("Migrating Package", "Creating Starter Package", 0.1f); EditorUtility.DisplayProgressBar("Migrating Package", "Creating Starter Package", 0.1f);
// Convert PackageType enum to VRC Package ID string // Convert PackageType enum to VRC Package ID string
@ -337,7 +351,6 @@ namespace VRC.PackageManagement.PackageMaker
// Clear target asset folder since it should no longer exist // Clear target asset folder since it should no longer exist
_windowData.targetAssetFolder = ""; _windowData.targetAssetFolder = "";
} }
private static IEnumerable<string> GetAllFiles(string path) private static IEnumerable<string> GetAllFiles(string path)
@ -408,5 +421,4 @@ namespace VRC.PackageManagement.PackageMaker
#endregion #endregion
} }
} }

View File

@ -11,16 +11,17 @@ using UnityEngine;
using VRC.PackageManagement.Core; using VRC.PackageManagement.Core;
using VRC.PackageManagement.Core.Types; using VRC.PackageManagement.Core.Types;
using VRC.PackageManagement.Core.Types.Packages; using VRC.PackageManagement.Core.Types.Packages;
using Version = VRC.PackageManagement.Core.Types.VPMVersion.Version;
namespace VRC.PackageManagement.Resolver namespace VRC.PackageManagement.Resolver
{ {
[InitializeOnLoad] [InitializeOnLoad]
public class Resolver public class Resolver
{ {
private const string _projectLoadedKey = "PROJECT_LOADED"; private const string _projectLoadedKey = "PROJECT_LOADED";
private static string _projectDir; private static string _projectDir;
public static string ProjectDir public static string ProjectDir
{ {
get get
@ -76,7 +77,6 @@ namespace VRC.PackageManagement.Resolver
try try
{ {
if (string.IsNullOrWhiteSpace(ProjectDir)) if (string.IsNullOrWhiteSpace(ProjectDir))
{ {
return; return;
@ -186,14 +186,14 @@ namespace VRC.PackageManagement.Resolver
return null; return null;
} }
public static void ForceRefresh () public static void ForceRefresh()
{ {
MethodInfo method = typeof( UnityEditor.PackageManager.Client ).GetMethod( "Resolve", BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.DeclaredOnly ); MethodInfo method = typeof(UnityEditor.PackageManager.Client).GetMethod("Resolve",
if( method != null ) BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.DeclaredOnly);
method.Invoke( null, null ); if (method != null)
method.Invoke(null, null);
AssetDatabase.Refresh(); AssetDatabase.Refresh();
} }
} }
} }

View File

@ -1,7 +1,7 @@
{ {
"name": "com.vrchat.core.vpm-resolver", "name": "com.vrchat.core.vpm-resolver",
"displayName": "VRChat Package Resolver Tool", "displayName": "VRChat Package Resolver Tool",
"version": "0.1.17", "version": "0.1.18",
"unity": "2019.4", "unity": "2019.4",
"description": "Tool to Download VPM Packages", "description": "Tool to Download VPM Packages",
"vrchatVersion": "2022.1.1", "vrchatVersion": "2022.1.1",

View File

@ -14,7 +14,7 @@ AudioImporter:
forceToMono: 1 forceToMono: 1
normalize: 1 normalize: 1
preloadAudioData: 1 preloadAudioData: 1
loadInBackground: 0 loadInBackground: 1
ambisonic: 0 ambisonic: 0
3D: 1 3D: 1
userData: userData:

View File

@ -9,16 +9,18 @@
}, },
"locked": { "locked": {
"com.vrchat.avatars": { "com.vrchat.avatars": {
"version": "3.1.10", "version": "3.1.13",
"dependencies": { "dependencies": {
"com.vrchat.base": "3.1.x" "com.vrchat.base": "3.1.13"
} }
}, },
"com.vrchat.base": { "com.vrchat.base": {
"version": "3.1.10" "version": "3.1.13",
"dependencies": {}
}, },
"com.vrchat.core.vpm-resolver": { "com.vrchat.core.vpm-resolver": {
"version": "0.1.17" "version": "0.1.18",
"dependencies": {}
} }
} }
} }