(一)整体印象及概念
1、应用示意
[MenuItem("显示图片/ShowPic")]
public static void ShowSprite()
{
//找到隐藏图片的父物体
Transform spriteFarther = GameObject.Find("SpriteFarther").transform;
//进而找到隐藏图片,把该图片显示
spriteFarther.Find("New Sprite").gameObject.SetActive(true);
}
2、解释上面
[MenuItem]标签
它的作用是,在Unity引擎菜单栏生成一个新菜单(“显示图片”),新菜单下带一个按钮(“ShowPic”),点击会执行其修饰的静态方法。
(二)具体过程
1、工程结构
新建代码,
如果保持默认——:MonoBehaviour
,可放在层级视图,任意处于显示状态的物体上;
如果不想继承MonoBehaviour——去掉继承关系:MonoBehaviour
即可,这样后,就不需要往层级视图物体上拖了。
2、代码
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
public class TestAB : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
[MenuItem("显示图片/ShowPic")]
public static void ShowSprite()
{
Transform spriteFarther = GameObject.Find("SpriteFarther").transform;
spriteFarther.Find("New Sprite").gameObject.SetActive(true);
}
//[MenuItem("隐藏图片/HidePic")]
//public static void HideSprite()
//{
// Transform spriteFarther = GameObject.Find("SpriteFarther").transform;
// spriteFarther.Find("New Sprite").gameObject.SetActive(false);
//}
}
3、效果
(三)注意
1、必须放置静态方法
前(对普通方法无效)。
2、它紧跟的括号内必须是两层内容,第一层表示菜单,第二层是具体按钮(如果只写一层,会报错)。
3、需引入using UnityEditor
命名空间
(四)总结
Unity编辑器——点击[MenuItem]添加的菜单按钮,执行其修饰的静态方法