mirror of
https://github.com/vrm-c/UniVRM.git
synced 2026-05-14 22:50:08 -05:00
Merge pull request #2476 from ousttrue/fix/springboneruntime_default
[1.0][SpringboneRuntime] SpringboneRuntime が null だと NullReference Exception
This commit is contained in:
commit
e16c286bb6
|
|
@ -119,27 +119,26 @@ namespace UniVRM10
|
|||
{
|
||||
if (m_springBoneRuntime == null)
|
||||
{
|
||||
// シーン配置モデルが play された
|
||||
// springbone が無い => シーン配置モデルが play されたと見做す
|
||||
var provider = GetComponent<IVrm10SpringBoneRuntimeProvider>();
|
||||
if (provider != null)
|
||||
{
|
||||
// 明示的カスタマイズ
|
||||
m_springBoneRuntime = provider.CreateSpringBoneRuntime();
|
||||
}
|
||||
else
|
||||
|
||||
if (m_springBoneRuntime == null)
|
||||
{
|
||||
// deafult に fallback
|
||||
if (Application.isEditor)
|
||||
{
|
||||
m_springBoneRuntime = new Vrm10FastSpringboneRuntimeStandalone();
|
||||
}
|
||||
else
|
||||
{
|
||||
m_springBoneRuntime = new Vrm10FastSpringboneRuntime();
|
||||
}
|
||||
// シーン配置 play のデフォルトは singletone ではない方
|
||||
m_springBoneRuntime = new Vrm10FastSpringboneRuntimeStandalone();
|
||||
}
|
||||
|
||||
m_springBoneRuntime.InitializeAsync(this, new ImmediateCaller());
|
||||
}
|
||||
else
|
||||
{
|
||||
// importer 内で InitializeAsync が呼び出し済み
|
||||
}
|
||||
return new Vrm10Runtime(this, useControlRig, m_springBoneRuntime);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -54,24 +54,27 @@ namespace UniVRM10
|
|||
m_externalMap = new Dictionary<SubAssetKey, UnityEngine.Object>();
|
||||
}
|
||||
|
||||
m_springboneRuntime = MakeDefaultRuntime(springboneRuntime, isAssetImport);
|
||||
}
|
||||
|
||||
static IVrm10SpringBoneRuntime MakeDefaultRuntime(IVrm10SpringBoneRuntime runtime, bool isAssetImport)
|
||||
{
|
||||
if (runtime != null)
|
||||
if (springboneRuntime == null)
|
||||
{
|
||||
return runtime;
|
||||
if (isAssetImport)
|
||||
{
|
||||
// 何もしない dummy
|
||||
springboneRuntime = new Vrm10NopSpringboneRuntime();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!Application.isPlaying)
|
||||
{
|
||||
// play中でない。test 対策
|
||||
springboneRuntime = new Vrm10FastSpringboneRuntimeStandalone();
|
||||
}
|
||||
else
|
||||
{
|
||||
springboneRuntime = new Vrm10FastSpringboneRuntime();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (isAssetImport)
|
||||
{
|
||||
// 何もしない dummy
|
||||
return new Vrm10NopSpringboneRuntime();
|
||||
}
|
||||
|
||||
// Vrm10Instance.MakeRuntime に移譲
|
||||
return null;
|
||||
m_springboneRuntime = springboneRuntime;
|
||||
}
|
||||
|
||||
static void AssignHumanoid(List<VrmLib.Node> nodes, UniGLTF.Extensions.VRMC_vrm.HumanBone humanBone, VrmLib.HumanoidBones key)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user