Ejemplo n.º 1
0
        // <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);
        }
Ejemplo n.º 2
0
        // <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);
        }