c# - 在脚本中使用 MenuItem 时,为什么在更改菜单项的优先级顺序时它永远不会改变?
问题描述
Generate Guid 菜单项一直在中间,从不改变它的位置。我希望它在复制之前或底部的相机下方。
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
public class GenerateAutomaticGuid : Editor
{
public static string guid;
private static Guid uniqueID;
[MenuItem("GameObject/Generate Guid", false, -1)]
private static void GenerateGuid()
{
}
}
解决方案
根据 Scriptable API 文档,我认为您使用MenuItemAttribute
错误的方式。
将菜单项添加到“GameObject/”菜单以创建自定义游戏对象时,请务必调用 GameObjectUtility.SetParentAndAlign 以确保在上下文单击的情况下正确地重新设置新的 GameObject(参见下面的示例)。您的函数还应调用 Undo.RegisterCreatedObjectUndo 以使创建可撤消并将 Selection.activeObject 设置为新创建的对象。另请注意,为了将“GameObject/”中的菜单项传播到层次结构创建下拉菜单和层次结构上下文菜单,它必须与其他游戏对象创建菜单项组合在一起。这可以通过将其优先级设置为 10 来实现(参见下面的示例)。请注意,出于遗留目的,“GameObject/Create Other”中的 MenuItems
[MenuItem("GameObject/MyCategory/Custom Game Object", false, 10)]
推荐阅读
- batch-file - 批处理 - 检查目录是否不存在不起作用
- ruby-on-rails - 将数据从视图发送到控制器 AJAX
- typo3 - TYPO3 流体中的 f:link 和 f:uri ViewHelpers 有什么区别
- c# - switch 语句是如何执行的?
- android - 剪辑标签不适用于drawable中的角
- java - 如何获得对`Class的引用
` 具有特定类型参数的泛型类的对象? - sql-server - 如何根据sql server中的特定coulmn从查询中删除重复项
- mysql - 获取层次结构数据nodejs - sequelizejs - mysql
- docker - Docker - 无法在卷内的容器之间共享数据(docker-compose 3)
- javascript - 语义 ui 弹出窗口以显示未正确显示的 div 内容。还需要显示表格行数据