插件特点,无需运行可进行编译。
(0)选项出现位置:编辑器上方菜单栏?。
(1)脚本放置的目录:Assets/Editor(该目录不会被打到包里)。
(2)创建如下方代码:需要命名空间UnityEditor;可自定义入口路径和自定义快捷键;菜单方法必须是static静态类方法(放在该脚本类的内部)。
(3)特点:无需放到场景里也无需运行,点击使用即可进行编译。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;//MenuItem类插件需要该命名空间
public class MenuItem_Test1 : MonoBehaviour
{
//快捷键类型(H是可自定义按键)
//_H:单一个自定义按键
//#H: Shift+自定义按键
//%H:Ctrl+自定义按键
//&H: Alt+自定义按键
[MenuItem("Menu/Test_ _H")]//Menu/Test1是自定义的菜单路径,H是自定义的快捷键,放在该MenuItem_Test1类的里面
public static void Test1()//定义MenuItem菜单操作:菜单必须是static静态方法
{
Debug.Log("Test_");
}
[MenuItem("Menu/Test# #H")]
public static void Test2()
{
Debug.Log("Test#");
}
[MenuItem("Menu/Test% %H")]
public static void Test3()
{
Debug.Log("Test%");
}
[MenuItem("Menu/Test& &H")]
public static void Test4()
{
Debug.Log("Test&");
}
}
(0)选项出现位置:节点上AddComponent增加组件时的可选组件列表里?。
(1)脚本放置的目录:一般在Assets/Script里(可自定义,会被打到包里的目录即可)。
(2)创建如下方代码:可自定义在添加组件时的菜单路径(放在该脚本类的前面)。
(3)特点:跟组件一样,需放到场景里也需运行,才可进行编译。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[AddComponentMenu("Menu/Test2")]//Menu/Test2是添加组件时的菜单路径,放在该Component_Test1类的前面
public class Component_Test1 : MonoBehaviour//定义Component操作
{
void Start()
{
Debug.Log("Component_Test");
}
void Update()
{
}
}
(0)选项出现位置:节点上的组件的右键菜单列表里?。
(1)脚本放置的目录:一般在Assets/Script里(可自定义,会被打到包里的目录即可)。
(2)创建如下方代码:可自定义在组件的右键菜单列表的菜单路径(放在该脚本类的内部)。
(3)特点:场景里需有所在的组件,但无需运行,点击使用即可进行编译。
using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
[AddComponentMenu("Menu/Test2")]
public class Component_Test1 : MonoBehaviour
{
void Start()
{
Debug.Log("Component_Test");
}
void Update()
{
}
[ContextMenu("Menu3")]//Menu3是组件右键菜单列表里的路径,放在该Component_Test1类的内部
public void Test()//定义ContextMenu菜单操作
{
Debug.Log("ContextMenu_Test");
}
}
(0)选项出现位置:无菜单,自动添加关联的必要组件。
(1)脚本放置的目录:一般在Assets/Script里(可自定义,会被打到包里的目录即可)。
(2)创建如下方代码:可自定义在添加组件时的菜单路径(放在该脚本类前面AddComponentMenu语句的前面)。
(3)特点:场景里需添加对应组件,无需运行,即可自动进行编译。
using System;
using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
[RequireComponent(typeof(Rigidbody))]//设置该脚本类Component_Test1的必要组件菜单-Rigidbody(自定义的必要组件):添加该脚本,会自动添加Rigidbody组件。不算严格意义的组件,主要是给该脚本类设置关联。Rigidbody是依附于该脚本类Component_Test1的,需先删除本脚本,才能删除Rigidbody组件
[AddComponentMenu("Menu/Test2")]
public class Component_Test1 : MonoBehaviour
{
void Start()
{
Debug.Log("Component_Test");
}
void Update()
{
}
}