////////////////////////////////////////////////////////////////////// ///////////////////// VertexVertex /////////////////////// ////////////////////////////////////////////////////////////////////// //패스의 평균치를 구해서 버텍스 할당 뷰어 #region 패스 평균이 구해서 버텍스 할당 하는기능 void Viewer_VertexPos(MotionPath.PathInfoData GetPathInfo) { GUIStyle VertCountFont = new GUIStyle(); VertCountFont.normal.textColor = Color.green; VertCountFont.fontStyle = FontStyle.Bold; VertCountFont.alignment = TextAnchor.UpperCenter; VertCountFont.fontSize = 18; GUI.backgroundColor = new Color(0.75f, 0.75f, 0.75f, 1); GUILayout.BeginVertical("GroupBox"); EditorGUILayout.LabelField("Count : " + GetPathInfo.VertexPos.Length.ToString(), VertCountFont, GUILayout.MinHeight(18)); GUILayout.EndVertical(); GUI.backgroundColor = GUI.color; //값 변경시 업데이트 EditorGUI.BeginChangeCheck(); GetPathInfo.Vertex_AutoUpdate = EditorGUILayout.Toggle("Vertex_AutoUpdate", GetPathInfo.Vertex_AutoUpdate); GetPathInfo.Vertex_Detail = EditorGUILayout.IntSlider("Vertex_Detail(Average)", GetPathInfo.Vertex_Detail, 1, 100); GetPathInfo.Vertex_Distance = EditorGUILayout.Slider("Vertex_Distance", GetPathInfo.Vertex_Distance, 0.01f, 1); if (EditorGUI.EndChangeCheck()) { if (GetPathInfo.Vertex_AutoUpdate) { CountVertexPos(GetPathInfo); } } //버텍스 수정모드 #region EditorGUI.BeginChangeCheck(); GetPathInfo.EditMode = EditorGUILayout.Toggle("Vertex EditMode", GetPathInfo.EditMode); if (GetPathInfo.EditMode) { GUILayout.BeginVertical("GroupBox"); //폰트 스타일 GUIStyle InputFrontStyle = new GUIStyle(); InputFrontStyle.fontStyle = FontStyle.Bold; InputFrontStyle.normal.textColor = Color.green; InputFrontStyle.alignment = TextAnchor.MiddleCenter; EditorGUILayout.LabelField("버텍스 수정모드는 상단의 값들 수정 시 버텍스가 초기화 됩니다.", InputFrontStyle); GUILayout.EndHorizontal(); } if (EditorGUI.EndChangeCheck()) { SceneView.RepaintAll(); //에딧모드 수정 시 } #endregion if (!GetPathInfo.Vertex_AutoUpdate) { if (GUILayout.Button("라인의 평균 버텍스 거리값 계산")) { CountVertexPos(GetPathInfo); } } }
//평균 거리값 계산 void CountVertexPos(MotionPath.PathInfoData GetPathInfo) { GetPathInfo.VertexPos = GetVertexPos(GetPathInfo.PathPos, GetPathInfo.Vertex_Detail, GetPathInfo.Vertex_Distance); SceneView.RepaintAll(); }