示例#1
0
    private void OnEnable()
    {
        _morphAnimation = target as MorphAnimation;
        _transform      = _morphAnimation.transform;
        _boneSize       = 0.1f;
        ReSet();

        if (!_morphAnimation.IsApprove)
        {
            return;
        }

        if (_morphAnimation.IsDone)
        {
            return;
        }

        _skinnedMeshRenderer = _transform.GetComponent <SkinnedMeshRenderer>();
        _mesh                    = _skinnedMeshRenderer.sharedMesh;
        _meshCollider            = _transform.GetComponent <MeshCollider>();
        _currentCheckedBone      = null;
        _currentCheckedMorphBone = null;
        _currentCheckedVertex    = null;
        _MAEditType              = MAEditType.Bone;
        _MATool                  = MATool.Move;
        _vertexHandleType        = HandleType.Wire;
        _vertexIconSize          = 0.01f;
        _reNameBone              = false;
        _newNameBone             = "";

        _showMorphSetting  = true;
        _showRenderSetting = true;
        _showMaterials     = false;

        SaveMorphMesh();
    }
示例#2
0
    /// <summary>
    /// 标题栏
    /// </summary>
    private void PreviewTitleGUI()
    {
        SetGUIEnabled(true);
        SetGUIColor(Color.white, Color.white);

        #region renderSetting
        EditorGUILayout.BeginVertical("HelpBox");
        EditorGUILayout.BeginHorizontal();
        if (GUILayout.Button("RenderSetting", "PreLabel"))
        {
            _showRenderSetting = !_showRenderSetting;
        }
        GUILayout.FlexibleSpace();
        EditorGUILayout.EndHorizontal();

        if (_showRenderSetting)
        {
            EditorGUILayout.BeginHorizontal();
            GUILayout.Label("Mesh");
            GUILayout.FlexibleSpace();
            _skinnedMeshRenderer.sharedMesh = EditorGUILayout.ObjectField(_skinnedMeshRenderer.sharedMesh, typeof(Mesh), false) as Mesh;
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            GUILayout.Space(10);
            _showMaterials = EditorGUILayout.Foldout(_showMaterials, "Materials");
            EditorGUILayout.EndHorizontal();

            if (_showMaterials)
            {
                for (int i = 0; i < _skinnedMeshRenderer.sharedMaterials.Length; i++)
                {
                    EditorGUILayout.BeginHorizontal();
                    GUILayout.Space(20);
                    GUILayout.Label("Element " + i);
                    _skinnedMeshRenderer.sharedMaterials[i] = EditorGUILayout.ObjectField(_skinnedMeshRenderer.sharedMaterials[i], typeof(Material), false) as Material;
                    EditorGUILayout.EndHorizontal();
                }
            }

            EditorGUILayout.BeginHorizontal();
            GUILayout.Label("Cast Shadows");
            GUILayout.FlexibleSpace();
            _skinnedMeshRenderer.shadowCastingMode = (ShadowCastingMode)EditorGUILayout.EnumPopup(_skinnedMeshRenderer.shadowCastingMode);
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            GUILayout.Label("Receive Shadows");
            GUILayout.FlexibleSpace();
            _skinnedMeshRenderer.receiveShadows = EditorGUILayout.Toggle(_skinnedMeshRenderer.receiveShadows);
            EditorGUILayout.EndHorizontal();
        }
        EditorGUILayout.EndVertical();
        #endregion

        #region morphSetting
        EditorGUILayout.BeginVertical("HelpBox");
        EditorGUILayout.BeginHorizontal();
        if (GUILayout.Button("MorphSetting", "PreLabel"))
        {
            _showMorphSetting = !_showMorphSetting;
        }
        GUILayout.FlexibleSpace();
        EditorGUILayout.EndHorizontal();

        if (_showMorphSetting)
        {
            EditorGUILayout.BeginHorizontal();
            GUILayout.Label("EditType");
            _MAEditType = (MAEditType)EditorGUILayout.EnumPopup(_MAEditType, GUILayout.Width(55));
            GUILayout.FlexibleSpace();
            if (GUILayout.Button("Apply", "Minibutton"))
            {
                SaveMorphMesh();
            }
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            GUILayout.Label("Vertex Size");
            _vertexIconSize = EditorGUILayout.Slider(_vertexIconSize, 0.01f, 0.1f);
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            GUILayout.Label("Bone Size");
            _boneSize = EditorGUILayout.Slider(_boneSize, 0.1f, 1f);
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            if (GUILayout.Button("Done & Open In Editor Window"))
            {
                if (EditorUtility.DisplayDialog("警告", "确认之后将无法再次更改骨骼及蒙皮信息!", "确定", "取消"))
                {
                    Done();
                }
            }
            EditorGUILayout.EndHorizontal();
        }
        EditorGUILayout.EndVertical();
        #endregion
    }