unity将组件值粘贴到派生组件中

在重构项目中,由于秉持着不更改框架的原则下,经常会遇到一个组件需要替换成派生的子类组件,比如将下面的组件进行替换,当两者的变量值一样时还好说,然而大多数情况时是不一样的

一种方法是进入调试面板,直接将脚本替换成派生类型

另一种方法是编写脚本

public static class ComponentTool
{
    private static SerializedObject source;
    [MenuItem("CONTEXT/Component/CopySerialized")]
    public static void Copy(MenuCommand command)
    {
        source = new SerializedObject(command.context);
    }
    [MenuItem("CONTEXT/Component/PasteSerialized")]
    public static void Paste(MenuCommand command)
    {
        SerializedObject component = new SerializedObject(command.context);
        SerializedProperty iterator = source.GetIterator();
        if (iterator.NextVisible(true))
        {
            while (iterator.NextVisible(true))
            {
                SerializedProperty property = component.FindProperty(iterator.name); 
                if (property != null && property.propertyType == iterator.propertyType) 
                {
                    component.CopyFromSerializedProperty(iterator); 
                }
            }
        }
        component.ApplyModifiedProperties();
    }
}

便可以在组件的右键菜单中快速复制粘贴

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值