SetPropertyBlock() public method

public SetPropertyBlock ( MaterialPropertyBlock block ) : void
block UnityEngine.MaterialPropertyBlock
return void
Ejemplo n.º 1
0
        private void HandleRender(SkeletonRendererInstruction instruction)
        {
            int count = partsRenderers.Count;

            if (count <= 0)
            {
                return;
            }
            if (copyPropertyBlock)
            {
                mainMeshRenderer.GetPropertyBlock(copiedBlock);
            }
            MeshGenerator.Settings settings = default(MeshGenerator.Settings);
            settings.addNormals         = skeletonRenderer.addNormals;
            settings.calculateTangents  = skeletonRenderer.calculateTangents;
            settings.immutableTriangles = false;
            settings.pmaVertexColors    = skeletonRenderer.pmaVertexColors;
            settings.tintBlack          = skeletonRenderer.tintBlack;
            settings.useClipping        = true;
            settings.zSpacing           = skeletonRenderer.zSpacing;
            MeshGenerator.Settings           settings2           = settings;
            ExposedList <SubmeshInstruction> submeshInstructions = instruction.submeshInstructions;

            SubmeshInstruction[] items = submeshInstructions.Items;
            int num = submeshInstructions.Count - 1;
            int i   = 0;
            SkeletonPartsRenderer skeletonPartsRenderer = partsRenderers[i];
            int j            = 0;
            int startSubmesh = 0;

            for (; j <= num; j++)
            {
                if (items[j].forceSeparate || j == num)
                {
                    MeshGenerator meshGenerator = skeletonPartsRenderer.MeshGenerator;
                    meshGenerator.settings = settings2;
                    if (copyPropertyBlock)
                    {
                        skeletonPartsRenderer.SetPropertyBlock(copiedBlock);
                    }
                    skeletonPartsRenderer.RenderParts(instruction.submeshInstructions, startSubmesh, j + 1);
                    startSubmesh = j + 1;
                    i++;
                    if (i >= count)
                    {
                        break;
                    }
                    skeletonPartsRenderer = partsRenderers[i];
                }
            }
            for (; i < count; i++)
            {
                partsRenderers[i].ClearMesh();
            }
        }
Ejemplo n.º 2
0
        private void HandleRender(SkeletonRenderer.SmartMesh.Instruction instruction)
        {
            int count = this.partsRenderers.Count;

            if (count <= 0)
            {
                return;
            }
            int i = 0;

            if (this.copyPropertyBlock)
            {
                this.mainMeshRenderer.GetPropertyBlock(this.copiedBlock);
            }
            ExposedList <SubmeshInstruction> submeshInstructions = instruction.submeshInstructions;

            SubmeshInstruction[] items = submeshInstructions.Items;
            int num = submeshInstructions.Count - 1;
            SkeletonPartsRenderer skeletonPartsRenderer = this.partsRenderers[i];
            bool calculateNormals  = this.skeletonRenderer.calculateNormals;
            bool calculateTangents = this.skeletonRenderer.calculateTangents;
            bool pmaVertexColors   = this.skeletonRenderer.pmaVertexColors;
            int  j            = 0;
            int  startSubmesh = 0;

            while (j <= num)
            {
                if (items[j].forceSeparate || j == num)
                {
                    ISubmeshSetMeshGenerator meshGenerator = skeletonPartsRenderer.MeshGenerator;
                    meshGenerator.AddNormals              = calculateNormals;
                    meshGenerator.AddTangents             = calculateTangents;
                    meshGenerator.PremultiplyVertexColors = pmaVertexColors;
                    if (this.copyPropertyBlock)
                    {
                        skeletonPartsRenderer.SetPropertyBlock(this.copiedBlock);
                    }
                    skeletonPartsRenderer.RenderParts(instruction.submeshInstructions, startSubmesh, j + 1);
                    startSubmesh = j + 1;
                    i++;
                    if (i >= count)
                    {
                        break;
                    }
                    skeletonPartsRenderer = this.partsRenderers[i];
                }
                j++;
            }
            while (i < count)
            {
                this.partsRenderers[i].ClearMesh();
                i++;
            }
        }
Ejemplo n.º 3
0
        private void HandleRender(SkeletonRendererInstruction instruction)
        {
            int count = this.partsRenderers.Count;

            if (count > 0)
            {
                if (this.copyPropertyBlock)
                {
                    this.mainMeshRenderer.GetPropertyBlock(this.copiedBlock);
                }
                MeshGenerator.Settings settings = new MeshGenerator.Settings {
                    addNormals         = this.skeletonRenderer.addNormals,
                    calculateTangents  = this.skeletonRenderer.calculateTangents,
                    immutableTriangles = false,
                    pmaVertexColors    = this.skeletonRenderer.pmaVertexColors,
                    tintBlack          = this.skeletonRenderer.tintBlack,
                    useClipping        = true,
                    zSpacing           = this.skeletonRenderer.zSpacing
                };
                ExposedList <SubmeshInstruction> submeshInstructions = instruction.submeshInstructions;
                SubmeshInstruction[]             items = submeshInstructions.Items;
                int num2 = submeshInstructions.Count - 1;
                int num3 = 0;
                SkeletonPartsRenderer renderer = this.partsRenderers[num3];
                int index        = 0;
                int startSubmesh = 0;
                while (index <= num2)
                {
                    if (items[index].forceSeparate || (index == num2))
                    {
                        renderer.MeshGenerator.settings = settings;
                        if (this.copyPropertyBlock)
                        {
                            renderer.SetPropertyBlock(this.copiedBlock);
                        }
                        renderer.RenderParts(instruction.submeshInstructions, startSubmesh, index + 1);
                        startSubmesh = index + 1;
                        num3++;
                        if (num3 >= count)
                        {
                            break;
                        }
                        renderer = this.partsRenderers[num3];
                    }
                    index++;
                }
                while (num3 < count)
                {
                    this.partsRenderers[num3].ClearMesh();
                    num3++;
                }
            }
        }