// <summary> // 頭部を取り除いたモデルを複製する // </summary> // <parameter>renderer: 元になるSkinnedMeshRenderer</parameter> // <parameter>eraseBones: 削除対象になるボーンのindex</parameter> private async static Task <SkinnedMeshRenderer> CreateHeadlessMeshAsync(SkinnedMeshRenderer renderer, int[] eraseBones, IAwaitCaller awaitCaller) { var mesh = await BoneMeshEraser.CreateErasedMeshAsync(renderer.sharedMesh, eraseBones, awaitCaller); var go = new GameObject("_headless_" + renderer.name); var erased = go.AddComponent <SkinnedMeshRenderer>(); erased.enabled = false; // hide erased.sharedMesh = mesh; erased.sharedMaterials = renderer.sharedMaterials; erased.bones = renderer.bones; erased.rootBone = renderer.rootBone; return(erased); }
// <summary> // 頭部を取り除いたモデルを複製する // </summary> // <parameter>renderer: 元になるSkinnedMeshRenderer</parameter> // <parameter>eraseBones: 削除対象になるボーンのindex</parameter> private static SkinnedMeshRenderer CreateHeadlessMesh(SkinnedMeshRenderer renderer, int[] eraseBones) { var mesh = BoneMeshEraser.CreateErasedMesh(renderer.sharedMesh, eraseBones); var go = new GameObject("_headless_" + renderer.name); var erased = go.AddComponent <SkinnedMeshRenderer>(); erased.sharedMesh = mesh; erased.sharedMaterials = renderer.sharedMaterials; erased.bones = renderer.bones; erased.rootBone = renderer.rootBone; erased.updateWhenOffscreen = true; return(erased); }