Skin2D.RecalculateBoneWeights C# (CSharp) Method

RecalculateBoneWeights() public method

public RecalculateBoneWeights ( ) : void
return void
    public void RecalculateBoneWeights()
    {
        Skeleton[] skeletons = transform.root.gameObject.GetComponentsInChildren<Skeleton>(true);
        Skeleton skeleton = null;
        foreach (Skeleton s in skeletons) {
            if (transform.IsChildOf(s.transform))
            {
                skeleton = s;
            }
        }
        if (skeleton != null) {
            skeleton.CalculateWeights(true);
            // Debug.Log("Calculated weights for " + gameObject.name);
        }
    }

Usage Example

Beispiel #1
0
    public override void OnInspectorGUI()
    {
        Skin2D skin = (Skin2D)target;

        DrawDefaultInspector();

        EditorGUILayout.Separator();

        /* Moved to skeleton for multiple Skin2D
         * if (skin.selectedBones != null && skin.GetComponent<MeshFilter>().sharedMesh != null && GUILayout.Button("Calculate weights")) {
         * skin.CalculateBoneWeights();
         * }*/

        if (skin.GetComponent <SkinnedMeshRenderer>().sharedMesh != null && GUILayout.Button("Save as Prefab"))
        {
            skin.SaveAsPrefab();
        }

        if (skin.GetComponent <SkinnedMeshRenderer>().sharedMesh != null && GUILayout.Button("Recalculate Bone Weights"))
        {
            skin.RecalculateBoneWeights();
        }

        if (skin.GetComponent <SkinnedMeshRenderer>().sharedMesh != null && GUILayout.Button("Create Control Points"))
        {
            ControlPoint.CreateControlPoints(skin.GetComponent <SkinnedMeshRenderer>());
        }

        if (skin.GetComponent <SkinnedMeshRenderer>().sharedMesh != null && GUILayout.Button("Reset Control Points"))
        {
            skin.ResetControlPointPositions();
        }
    }
All Usage Examples Of Skin2D::RecalculateBoneWeights