Exemple #1
0
    public void LoadModel()
    {
        if (Model != null)
        {
            DestroyImmediate(Model);
            Model = null;
        }

        GameObject asset = AssetDatabase.LoadAssetAtPath <GameObject>(ModelPath);

        Model  = Instantiate(asset);
        Gender = ModelPath.Contains("female") ? GenderEnum.Female : GenderEnum.Male;

        string           gender = Gender == GenderEnum.Female ? "f_" : "m_";
        BlendShapeLoader loader = BlendShapeLoader.GetComponent <BlendShapeLoader>();

        loader.SetBlendShapesModel(gender + "blendsShapes");

        if (Model != null)
        {
            SkinnedMeshRenderer renderer = Model.GetComponentInChildren <SkinnedMeshRenderer>();

            if (renderer != null)
            {
                renderer.material = m_defaultMaterial;
            }

            Model.transform.position = Vector3.zero;
            Model.transform.SetParent(transform);
            //added for visualisation.
            ViewSkeleton skelVisual = Model.AddComponent <ViewSkeleton>();

            skelVisual.rootNode = Model.transform;
        }
    }
    public override void OnInspectorGUI()
    {
        ViewSkeleton myTarget = (ViewSkeleton)target;

        EditorGUILayout.BeginHorizontal("Box");
        myTarget.rootNode = (Transform)EditorGUILayout.ObjectField(myTarget.rootNode, typeof(Transform));

        if (myTarget != null)
        {
            if (GUILayout.Button("PopulateChildren"))
            {
                myTarget.PopulateChildren();
            }
        }
        EditorGUILayout.EndHorizontal();
    }