Unity MenuItem优先级以及同名情况的测试

时间:2024-03-16 22:38:07
MenuItem菜单的先后排序:

[MenuItem(itemName, isValidateFunction, priority)]

priority优先级越大,在菜单列表中越靠下;

优先级产生的其他效果:
[MenuItem("GameObject/test-1", false, -1)]
private static void test_1() { }
[MenuItem("GameObject/test0", false, 0)]
private static void test0() { }
[MenuItem("GameObject/test10", false, 10)]
private static void test10() { }
[MenuItem("GameObject/test11", false, 11)]
private static void test11() { }
[MenuItem("GameObject/test20", false, 20)]
private static void test20() { }
[MenuItem("GameObject/test30", false, 30)]
private static void test30() { }
[MenuItem("GameObject/test41", false, 41)]
private static void test41() { }
[MenuItem("GameObject/test41", false, 49)]
private static void test49() { }
[MenuItem("GameObject/test50", false, 50)]
private static void test50() { }
Unity MenuItem优先级以及同名情况的测试
如图,当同一列表相邻两条目优先级差距大于10会自动产生一条横线
Unity MenuItem优先级以及同名情况的测试
Unity MenuItem优先级以及同名情况的测试
GameObject/下的菜单项目中优先级小于50的会显示在Hierarchy面板对象的右键菜单中

MenuItem同名情况:
Unity MenuItem优先级以及同名情况的测试
Unity MenuItem优先级以及同名情况的测试
Unity MenuItem优先级以及同名情况的测试
如图,同名情况下,菜单中只会显示一条项目,后声明的会覆盖先声明的项目,点击时会调用后声明的方法
Unity MenuItem优先级以及同名情况的测试
Unity MenuItem优先级以及同名情况的测试
Unity MenuItem优先级以及同名情况的测试
系统预置菜单项一样可以被覆盖