Unity编辑器扩展:基于ScriptableWizard批量为预设添加继承于MonoBehaviour的脚本

本文介绍如何使用Unity的ScriptableWizard扩展功能,实现批量为预设及子对象添加继承自MonoBehaviour的自定义脚本。在ScriptableWizard中定义变量时遇到类型限制,通过GetClass()方法获取脚本类型,从而实现便捷的批量操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为了实现,批量为一些特定的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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值