【发布时间】:2020-01-15 13:29:38
【问题描述】:
我在游戏开发中使用 Unity3d。 对于每个项目,我都可以扩展编辑器。 如何扩展 Unity3d 编辑器(适用于所有项目,而不适用于自定义项目)?
【问题讨论】:
-
你不能。这只是 Unity 中令人讨厌的事情之一。每次只需将文件放入 Unity。如果你真的想要,就像 Bart 很好地解释的那样,把它做成一个包。没有其他办法。
标签: unity3d
我在游戏开发中使用 Unity3d。 对于每个项目,我都可以扩展编辑器。 如何扩展 Unity3d 编辑器(适用于所有项目,而不适用于自定义项目)?
【问题讨论】:
标签: unity3d
没有真正的方法可以进行永久扩展(即每个新项目都有一个扩展)。但是,您可以 export your extension as a Unity package 并在创建新项目时导入它。根据链接页面上的文档:
- 在项目视图中,选择您要导出的所有资产文件。
- 从菜单栏中选择 Assets->Export Package...。
- 为包命名并将其保存在您喜欢的任何位置。
- 打开您想要将资产引入的项目。
- 从菜单栏中选择 Assets->Import Package...。
- 选择您在步骤 3 中保存的包文件。
这应该是将自定义扩展轻松导入每个项目的最简单方法。
【讨论】:
适用于打算在许多项目中使用但在该项目中未更改的插件。有些人选择将插件构建成dll,然后将dll放在项目中而不是源代码中。
【讨论】:
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);
}
}
【讨论】:
根据您的需要,您还可以使用 Unity 4 中引入的属性抽屉,它允许您覆盖属性的默认检查器,而无需编写全新的检查器。它适用于现有类型或您创建的自定义类型。
您甚至可以在属性中设置变量来自定义编辑每次出现的方式。
更多信息在这里:https://docs.unity3d.com/Manual/editor-PropertyDrawers.html
【讨论】: