public void Initialize()
        {
            if (treeViewState == null)
            {
                treeViewState = new TreeViewState();
            }
            treeView        = new CustomAssetImporterEditorWindowTreeView(treeViewState);
            horizontalState = new SplitterState(new float[] { position.width * 0.15f, position.width * 0.85f },
                                                new int[] { 100, 250 }, new int[] { 200, 1000 });

            if (audioImporterSettings == null)
            {
                audioImporterSettings = FileHelper.GetAudioImporter();
            }
            if (textureImporterSettings == null)
            {
                textureImporterSettings = FileHelper.GetTextureImporter();
            }
            if (modelImporterSettings == null)
            {
                modelImporterSettings = FileHelper.GetModelImporter();
            }

            if (audioImporterEditorItem == null || audioImporterEditorItem.Data == null)
            {
                audioImporterEditorItem = new CustomAudioImporterSettingsEditorItem(audioImporterSettings);
            }
            if (textureImporterEditorItem == null || textureImporterEditorItem.Data == null)
            {
                textureImporterEditorItem = new CustomTextureImporterSettingsEditorItem(textureImporterSettings);
            }
            if (modelImporterEditorItem == null || modelImporterEditorItem.Data == null)
            {
                modelImporterEditorItem = new CustomModelImporterSettingsEditorItem(modelImporterSettings);
            }
            audioImporterEditorItem.Initialize();
            textureImporterEditorItem.Initialize();
            modelImporterEditorItem.Initialize();

            Repaint();

            IsInitialized = true;
            IsFirstGUI    = true;
        }
        public bool CheckCustomImporter(string assetPath)
        {
            var assetTargetPath = FileHelper.AssetPathToTargetPath(assetPath, Type);

            //UnityEngine.Debug.Log( Target + " " + assetTargetPath + "   " + assetPath );

            switch (Type)
            {
            case ImportTargetType.DirectoryPathRecursively:
                return(assetTargetPath.Contains(Target));

            case ImportTargetType.DirectoryPath:
            case ImportTargetType.DirectoryName:
            case ImportTargetType.FilePath:
            case ImportTargetType.FileName:
                return(assetTargetPath.Equals(Target));
            }

            return(false);
        }
예제 #3
0
        private void Draw(TreeViewItem <T> item, Rect rect)
        {
            var showSettingRect = rect;

            showSettingRect.xMin  += 5f;
            showSettingRect.xMax  -= 5f;
            showSettingRect.yMin  += 2f;
            showSettingRect.height = EditorGUIUtility.singleLineHeight;

            // directory Setting
            var directoryRect = showSettingRect;

            directoryRect.width = 100f;
            var type = ( ImportTargetType )EditorGUI.EnumPopup(directoryRect, item.data.Type);

            if (item.data.Type != type)
            {
                item.data.Target = FileHelper.TargetPathForType(item.data.Target, type);
                if (!FileHelper.IsTargetNameValid(item.data.Target, type))
                {
                    Debug.LogWarning("CustomAssetImporter: The importer target is invalid");
                }
                item.data.Type = type;
            }
            var targetRect = showSettingRect;

            targetRect.xMin += 103f;
            item.data.Target = EditorGUI.TextField(targetRect, item.data.Target);

            //// drag drop process... too ugly :(
            {
                var preType = Event.current.type;
                if (isPreDragUpdate)
                {
                    Event.current.type = EventType.DragUpdated;
                }
                if (isPreDragPerform)
                {
                    Event.current.type = EventType.DragPerform;
                }
                var draggedTarget = FileHelper.GetDraggedAssetPath(Event.current, rect);
                if (!string.IsNullOrEmpty(draggedTarget))
                {
                    item.data.Target = FileHelper.TargetPathForType(draggedTarget, item.data.Type);
                }
                Event.current.type = preType;
            }

            showSettingRect.y += GUIHelper.Rects.NextItemY;

            // show Log
            var showLogToggle = showSettingRect;

            showLogToggle.width = 16f;
            item.data.IsLogger  = EditorGUI.Toggle(showLogToggle, item.data.IsLogger);
            showLogToggle.width = 100f;
            showLogToggle.x    += 16f;
            EditorGUI.LabelField(showLogToggle, "Show Log");
            var logRect = showSettingRect;

            logRect.xMin += 103f;
            item.data.Log = EditorGUI.TextField(logRect, item.data.Log);
            EditorGUI.BeginChangeCheck();
            item.editorItem.OnGUI(ref showSettingRect);
            if (EditorGUI.EndChangeCheck())
            {
                changeHeightFlag = true;
            }
        }