Unity 给inspector的右键菜单添加一个新选项使之以和原本添加组件一样的功能添加一个自定义组件:TextEx如果没有选中物体则在inspector里创建一个带有TextEx的物体。如果是在编辑预制体则新创建的这个TextEx是创建在预制体里的而不是场景里总之是要实现和原生的挂Text一样的效果
要实现给Unity的Inspector添加一个右键菜单选项来创建自定义组件TextEx,可以使用Editor脚本来实现。下面是一个示例代码:
using UnityEngine;
using UnityEditor;
public class AddTextExMenu : MonoBehaviour
{
[MenuItem("GameObject/Create TextEx", false, 0)]
static void CreateTextEx(MenuCommand menuCommand)
{
GameObject selectedGameObject = Selection.activeGameObject;
if (selectedGameObject == null)
{
selectedGameObject = new GameObject("TextEx");
}
else if (PrefabUtility.GetPrefabAssetType(selectedGameObject) == PrefabAssetType.Regular)
{
GameObject prefab = (GameObject)PrefabUtility.GetPrefabParent(selectedGameObject);
selectedGameObject = new GameObject("TextEx");
selectedGameObject.transform.SetParent(prefab.transform, false);
}
else
{
selectedGameObject.AddComponent<TextEx>();
}
Selection.activeGameObject = selectedGameObject;
}
}
将上述代码保存为一个名为AddTextExMenu.cs的脚本,并将其放置在Unity项目的Editor文件夹中。
这段代码首先检查当前选中的游戏对象。如果没有选中任何游戏对象,则在Inspector中创建一个名为TextEx的新游戏对象。如果选中的是一个预制体,则在预制体中创建一个TextEx游戏对象。如果选中的是场景中的游戏对象,则在选中的游戏对象上添加TextEx组件。
最后,将[MenuItem("GameObject/Create TextEx", false, 0)]放置在脚本中的任意位置,它将为Inspector中的GameObject菜单添加一个"Create TextEx"选项。该选项的优先级为0,可以根据需要调整。
完成上述步骤后,当右键单击Inspector中的GameObject菜单时,将显示一个新的"Create TextEx"选项。选中该选项将执行CreateTextEx方法,并根据上述逻辑在场景或预制体中创建一个TextEx游戏对象
原文地址: https://www.cveoy.top/t/topic/hyaZ 著作权归作者所有。请勿转载和采集!