Unity3D编辑器扩展(二)之对Inspetor面板的扩展

Unity3D对编辑器的扩展提高了开发的效率,今天就和大家讨论一下对Inspector面板的扩展,这也是我们最经常使用的工具。那就以一个例子来开始学习吧!

在项目的开发过程中经常会用到修改某个脚本的大量数据,我们可以用一个按钮一键来实现这么多的数据修改,不用每个参数都进行修改啦,是不是很方便呢,那么今天的东西就可以派上用场啦!

用到的例子是修改Camera上的nearClipPlane、farClipPlane和fieldOfView参数。
下图是在Inspector面板上Camera没有进行扩展的布局。

这里写图片描述

**注意事项:
(1)、引用UnityEditor;
(2)、添加扩展脚本的类型,如[CustomEditor(typeof(Camera))]
(3)、脚本继承Editor ;
(4)、将脚本放到Editor文件下,如果没有那就创建一个Editor文件夹;**

附上代码片段

using UnityEngine;
using System.Collections;
using UnityEditor;

//需要扩展的脚本
[CustomEditor(typeof(Camera))]

public class SetLightParameters : Editor {

    private Camera camera;

    //重写OnInspectorGUI()方法
    public override void OnInspectorGUI()
    {
        //调用父类的方法
        base.OnInspectorGUI();
        //设置跟踪的对象为Camera
        camera = (Camera)target;

        //添加按钮
        if (GUILayout.Button("SetLightParameters"))
        {
            //改变摄像机的近剪切面
            camera.nearClipPlane = 1f;
            //改变摄像机的远剪切面
            camera.farClipPlane = 500f;
            //改变摄像机的视野
            camera.fieldOfView = 40;
            //保存该跟踪对象的数据
            EditorUtility.SetDirty(target);
        }
    }
}

下面就是在Inspector面板上Camera的改变,可以发现多了一个“SetLightParameters”的按钮。也可以看到一开始的三个参数设置。

这里写图片描述

当点击“SetLightParameters”按钮时,就会使上面的三个参数发生变化,数值都是在脚本中设置的数值,如下图所示:

这里写图片描述

是不是很方便呀,大家也来快点试试吧。如有问题,欢迎来讨论。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值