// Init
        //--------------------------------------------------------------------
        public void Init(apEditor editor,
                         object loadKey,
                         apMeshGroup srcMeshGroup,
                         apTransform_Mesh srcMeshTransform,
                         FUNC_SELECT_MESH_TF_COPY funcResult)
        {
            _editor     = editor;
            _loadKey    = loadKey;
            _meshGroup  = srcMeshGroup;
            _funcResult = funcResult;

            _srcMeshTransform = srcMeshTransform;

            //타겟을 검색하자
            _meshTransforms.Clear();



            _img_Mesh     = _editor.ImageSet.Get(apImageSet.PRESET.Hierarchy_Mesh);
            _img_FoldDown = _editor.ImageSet.Get(apImageSet.PRESET.Hierarchy_FoldDown);

            //대상이 되는 데이터를 가져온다.
            for (int i = 0; i < _meshGroup._renderUnits_All.Count; i++)
            {
                apRenderUnit renderUnit = _meshGroup._renderUnits_All[i];
                if (renderUnit._meshTransform == null || renderUnit._meshTransform == _srcMeshTransform)
                {
                    continue;
                }

                if (!_meshTransforms.Contains(renderUnit._meshTransform))
                {
                    _meshTransforms.Add(renderUnit._meshTransform);
                }
            }

            _meshTransforms.Reverse();


            if (_copiedProperties == null)
            {
                _copiedProperties = new Dictionary <COPIED_PROPERTIES, bool>();
            }

            _copiedProperties.Clear();

            _copiedProperties.Add(COPIED_PROPERTIES.DefaultColor, false);
            _copiedProperties.Add(COPIED_PROPERTIES.ShaderType, false);
            _copiedProperties.Add(COPIED_PROPERTIES.CustomShader, false);
            _copiedProperties.Add(COPIED_PROPERTIES.RenderTextureSize, false);
            _copiedProperties.Add(COPIED_PROPERTIES.TwoSides, false);
            _copiedProperties.Add(COPIED_PROPERTIES.ShadowSettings, false);
            _copiedProperties.Add(COPIED_PROPERTIES.MaterialSet, false);
            _copiedProperties.Add(COPIED_PROPERTIES.MaterialProperties, false);
        }
        // Show Window
        //--------------------------------------------------------------
        public static object ShowDialog(apEditor editor,
                                        apMeshGroup srcMeshGroup,
                                        apTransform_Mesh srcMeshTransform,
                                        FUNC_SELECT_MESH_TF_COPY funcResult)
        {
            CloseDialog();

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



            EditorWindow curWindow = EditorWindow.GetWindow(typeof(apDialog_SelectMeshTransformsToCopy), true, "Select Child Meshes", true);
            apDialog_SelectMeshTransformsToCopy curTool = curWindow as apDialog_SelectMeshTransformsToCopy;

            object loadKey = new object();

            if (curTool != null && curTool != s_window)
            {
                int width  = 500;
                int height = 600;
                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, srcMeshGroup, srcMeshTransform, funcResult);

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