From 9c933390f13f76b21ab6baaaee0bb672a9f13390 Mon Sep 17 00:00:00 2001 From: ousttrue Date: Fri, 25 Oct 2024 17:58:46 +0900 Subject: [PATCH] =?UTF-8?q?default=20=E3=81=AE=20SpringboneRuntime=20?= =?UTF-8?q?=E3=81=AE=E6=9D=A1=E4=BB=B6=E8=A6=8B=E7=9B=B4=E3=81=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Vrm10Instance/Vrm10Instance.cs | 39 +++++-------------- Assets/VRM10/Runtime/IO/Vrm10Importer.cs | 11 +++++- 2 files changed, 19 insertions(+), 31 deletions(-) diff --git a/Assets/VRM10/Runtime/Components/Vrm10Instance/Vrm10Instance.cs b/Assets/VRM10/Runtime/Components/Vrm10Instance/Vrm10Instance.cs index 2134ec5cbd..005719eefc 100644 --- a/Assets/VRM10/Runtime/Components/Vrm10Instance/Vrm10Instance.cs +++ b/Assets/VRM10/Runtime/Components/Vrm10Instance/Vrm10Instance.cs @@ -115,43 +115,24 @@ public UniHumanoid.Humanoid Humanoid } } - /// - /// SpringboneRuntime が無かった時にデフォルトの runtime を作成する - /// - /// - Importer に SpringboneRuntime 引数が無かった時 - /// - Scene 配置 model のスタートアップ - /// - /// - /// - /// - internal static IVrm10SpringBoneRuntime MakeSpringboneRuntime(GameObject root) + internal Vrm10Runtime MakeRuntime(bool useControlRig) { - if (root != null) + if (m_springBoneRuntime == null) { - var provider = root.GetComponent(); + // springbone が無い => シーン配置モデルが play されたと見做す + var provider = GetComponent(); if (provider != null) { // 明示的カスタマイズ - return provider.CreateSpringBoneRuntime(); + m_springBoneRuntime = provider.CreateSpringBoneRuntime(); } - } - - if (Application.isEditor) - { - // note: test, timeline などで Singleton(DontDestroyOnLoad) が都合が悪い - return new Vrm10FastSpringboneRuntimeStandalone(); - } - // default - return new Vrm10FastSpringboneRuntime(); - } + if (m_springBoneRuntime == null) + { + // シーン配置 play のデフォルトは singletone ではない方 + m_springBoneRuntime = new Vrm10FastSpringboneRuntimeStandalone(); + } - internal Vrm10Runtime MakeRuntime(bool useControlRig) - { - if (m_springBoneRuntime == null) - { - // springbone が無い => シーン配置モデルが play されたと見做す - m_springBoneRuntime = MakeSpringboneRuntime(gameObject); m_springBoneRuntime.InitializeAsync(this, new ImmediateCaller()); } else diff --git a/Assets/VRM10/Runtime/IO/Vrm10Importer.cs b/Assets/VRM10/Runtime/IO/Vrm10Importer.cs index 9e56a7366c..3e920d2bd5 100644 --- a/Assets/VRM10/Runtime/IO/Vrm10Importer.cs +++ b/Assets/VRM10/Runtime/IO/Vrm10Importer.cs @@ -63,8 +63,15 @@ public Vrm10Importer( } else { - // default の SpringboneRuntime を作成する - springboneRuntime = Vrm10Instance.MakeSpringboneRuntime(null); + if (!Application.isPlaying) + { + // play中でない。test 対策 + springboneRuntime = new Vrm10FastSpringboneRuntimeStandalone(); + } + else + { + springboneRuntime = new Vrm10FastSpringboneRuntime(); + } } } m_springboneRuntime = springboneRuntime;