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(); }
/// <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 }