【问题标题】:How extend Unity3d editor如何扩展 Unity3d 编辑器
【发布时间】:2020-01-15 13:29:38
【问题描述】:

我在游戏开发中使用 Unity3d。 对于每个项目,我都可以扩展编辑器。 如何扩展 Unity3d 编辑器(适用于所有项目,而不适用于自定义项目)?

【问题讨论】:

  • 不能。这只是 Unity 中令人讨厌的事情之一。每次只需将文件放入 Unity。如果你真的想要,就像 Bart 很好地解释的那样,把它做成一个包。没有其他办法。

标签: unity3d


【解决方案1】:

没有真正的方法可以进行永久扩展(即每个新项目都有一个扩展)。但是,您可以 export your extension as a Unity package 并在创建新项目时导入它。根据链接页面上的文档:

  1. 在项目视图中,选择您要导出的所有资产文件。
  2. 从菜单栏中选择 Assets->Export Package...。
  3. 为包命名并将其保存在您喜欢的任何位置。
  4. 打开您想要将资产引入的项目。
  5. 从菜单栏中选择 Assets->Import Package...。
  6. 选择您在步骤 3 中保存的包文件。

这应该是将自定义扩展轻松导入每个项目的最简单方法。

【讨论】:

  • 您也可以将 unityPackage 放入 Standard Assets 文件夹(在您的 unity 安装文件夹中),然后该包将列在 Asset / Import Package 列表中。 *注意:安装新版本的Unity时,会清除Unity安装文件夹中的所有文件,所以需要重新复制。。
  • 值得指出的是,在 90% 的情况下......您只需在所有项目中放入相同的源文件。 (考虑到它们会一直在变化。)不幸的是,特别是使用包并没有真正的优势。
【解决方案2】:

适用于打算在许多项目中使用但在该项目中未更改的插件。有些人选择将插件构建成dll,然后将dll放在项目中而不是源代码中。

http://docs.unity3d.com/Manual/UsingDLL.html

【讨论】:

    【解决方案3】:
        using UnityEngine;
    using System.Collections;
    using System.Collections.Generic;
    using UnityEditor;
    using System.IO;
    public class MenuSystem : Editor 
    {
    [MenuItem("Backup/Take Backup")]
        public static void ExportBackUp()
        {
                    string[] paths = new string[]
            {
                "Assets"
            };
            Debug.Log(paths);
            AssetDatabase.ExportPackage(paths, "Backup.unitypackage", ExportPackageOptions.Recurse);
        }
    }
    

    【讨论】:

      【解决方案4】:

      根据您的需要,您还可以使用 Unity 4 中引入的属性抽屉,它允许您覆盖属性的默认检查器,而无需编写全新的检查器。它适用于现有类型或您创建的自定义类型。

      您甚至可以在属性中设置变量来自定义编辑每次出现的方式。

      更多信息在这里:https://docs.unity3d.com/Manual/editor-PropertyDrawers.html

      【讨论】:

      • OP 只是询问“在许多项目中”如何做到这一点。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-15
      • 2019-11-15
      相关资源
      最近更新 更多