Skin2D.CalculateVertexColors C# (CSharp) Method

CalculateVertexColors() private method

private CalculateVertexColors ( ) : void
return void
    private void CalculateVertexColors()
    {
        GameObject go = Selection.activeGameObject;

        if (go == lastSelected || meshFilter.sharedMesh == null) {
            return;
        }

        lastSelected = go;

        Mesh m = skinnedMeshRenderer.sharedMesh;

        Color[] colors = new Color[m.vertexCount];

        for (int i = 0; i < colors.Length; i++) {
            colors[i] = Color.black;
        }

        if (go != null) {
            Bone bone = go.GetComponent<Bone>();

            if (bone != null) {
                if (skinnedMeshRenderer.bones.Any(b => b.gameObject.GetInstanceID() == bone.gameObject.GetInstanceID())) {
                    for (int i = 0; i < colors.Length; i++) {
                        float value = 0;

                        BoneWeight bw = m.boneWeights[i];
                        if (bw.boneIndex0 == bone.index)
                            value = bw.weight0;
                        else if (bw.boneIndex1 == bone.index)
                            value = bw.weight1;
                        else if (bw.boneIndex2 == bone.index)
                            value = bw.weight2;
                        else if (bw.boneIndex3 == bone.index)
                            value = bw.weight3;

                        colors[i] = Util.HSBColor.ToColor(new Util.HSBColor(0.7f - value, 1.0f, 0.5f));
                    }
                }
            }
        }

        meshFilter.sharedMesh.colors = colors;
    }