async void LoadModelAsync(string path) { var ext = Path.GetExtension(path).ToLower(); switch (ext) { case ".gltf": case ".glb": case ".zip": { var instance = await GltfUtility.LoadAsync(path, GetIAwaitCaller(m_useAsync.isOn), GetGltfMaterialGenerator(m_useUrpMaterial.isOn)); break; } case ".vrm": { VrmUtility.MaterialGeneratorCallback materialCallback = (VRM.glTF_VRM_extensions vrm) => GetVrmMaterialGenerator(m_useUrpMaterial.isOn, vrm); VrmUtility.MetaCallback metaCallback = m_texts.UpdateMeta; var instance = await VrmUtility.LoadAsync(path, GetIAwaitCaller(m_useAsync.isOn), materialCallback, metaCallback, loadAnimation : m_loadAnimation.isOn); SetModel(instance); break; } case ".bvh": LoadMotion(path, File.ReadAllText(path)); break; } }
async void Load() { #if UNITY_STANDALONE_WIN var path = FileDialogForWindows.FileDialog("open VRM", ".vrm"); #elif UNITY_EDITOR var path = UnityEditor.EditorUtility.OpenFilePanel("Open VRM", "", "vrm"); #else var path = Application.dataPath + "/default.vrm"; #endif if (string.IsNullOrEmpty(path)) { return; } var loaded = await VrmUtility.LoadAsync(path); loaded.ShowMeshes(); loaded.EnableUpdateWhenOffscreen(); if (m_model != null) { GameObject.Destroy(m_model.gameObject); } m_model = loaded.gameObject; }
async void LoadVRMClicked() { #if UNITY_STANDALONE_WIN var path = FileDialogForWindows.FileDialog("open VRM", ".vrm"); #elif UNITY_EDITOR var path = UnityEditor.EditorUtility.OpenFilePanel("Open VRM", "", "vrm"); #else var path = Application.dataPath + "/default.vrm"; #endif if (string.IsNullOrEmpty(path)) { return; } // GLB形式でJSONを取得しParseします // VRM extension を parse します var loaded = await VrmUtility.LoadAsync(path); OnLoaded(loaded); }