// Init
        //--------------------------------------------------------------
        public void Init(apEditor editor, object loadKey, apMeshGroup targetMeshGroup, FUNC_ADD_MODIFIER_RESULT funcResult)
        {
            _editor          = editor;
            _loadKey         = loadKey;
            _targetMeshGroup = targetMeshGroup;
            _funcResult      = funcResult;

            _modifiers.Clear();
            //int nMod = Enum.GetValues(typeof(apModifierBase.MODIFIER_TYPE)).Length;

            //어떤 Modifier를 추가할지 타입을 배열로 정리
            apVersion.I.RequestAddableModifierTypes(OnAddableModifierResult);

            _curSelectedMod = null;
        }
        // Show Window
        //--------------------------------------------------------------
        public static object ShowDialog(apEditor editor, apMeshGroup targetMeshGroup, FUNC_ADD_MODIFIER_RESULT funcResult)
        {
            CloseDialog();

            if (editor == null || editor._portrait == null || editor._portrait._controller == null)
            {
                return(null);
            }

            EditorWindow         curWindow = EditorWindow.GetWindow(typeof(apDialog_AddModifier), true, "Select Modifier", true);
            apDialog_AddModifier curTool   = curWindow as apDialog_AddModifier;

            object loadKey = new object();

            if (curTool != null && curTool != s_window)
            {
                int width  = 250;
                int height = 400;
                s_window          = curTool;
                s_window.position = new Rect((editor.position.xMin + editor.position.xMax) / 2 - (width / 2),
                                             (editor.position.yMin + editor.position.yMax) / 2 - (height / 2),
                                             width, height);
                s_window.Init(editor, loadKey, targetMeshGroup, funcResult);

                return(loadKey);
            }
            else
            {
                return(null);
            }
        }