为了实现,批量为一些特定的prefab或者子对象添加统一的脚本,实现过程中发现,在继承自ScriptableWizard的类中,定义一个MonoBehaviour类型的变量,我们并不能把继承自他的子类拖过去。如图:
[Tooltip("添加的脚本内容")]
[Header("添加的脚本")]
public MonoBehaviour addMono;
窗口中虽然正确识别类型,但是我们不能很方便的把脚本拖过来:
在定义的时候,改用
public MonoScript addMono;
在为对象添加的时候,需要用到 GetClass() 方法类获取添加脚本的Type。
完整代码如下(支持拖放目录或者预设):
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using System;
public class ModelAddComWizard : ScriptableWizard
{
[Tooltip("目录直接拖过来会自动识别完整路径")]
[Header("目录-->设置目录(推荐)或路径")]
public UnityEngine.Object floder;
[Tooltip("自动识别目录路径")]
public string autoGeneratePath = "";
[Tooltip("检测预设名称是否包含此字符串")]
[Header("目标对象名称【包含】")]
public string targetName;
[Tooltip("检测预设名称不能包含此字符串")]
[Header("目标对象名称【不包含】")]
public string targetNoName = null;
[T