unity 扩展编辑器一(修改编辑器名称)

Unity隐藏属性与自定义编辑器
本文介绍如何在Unity中使用[HideInInspector]和[SerializeField]来隐藏并持久保存GameObject的数据,同时通过创建自定义编辑器实现更友好的编辑界面。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour {

    [HideInInspector][SerializeField] Rect pRectValue;

    public Rect mRectValue
    {
        get
        {
            return pRectValue;
        }
        set
        {
            pRectValue = value;
        }
    }

    [HideInInspector][SerializeField] Texture pTexture;
    public Texture texture
    {
        get
        {
            return pTexture;
        }
        set
        {
            pTexture = value;
        }
    }
}

[HideInInspector][SerializeField] 隐藏数据在面板,并且序列化。它可以帮我们永久保存数据,如果不加的话数值就会重置。就好比我先添加了一个贴图,一运行游戏刚刚添加的贴图就变成null了。


新建一个Editor文件夹,将MyEditor放到这个文件夹中,不需要挂在到gameobject上。

using UnityEditor;
using UnityEngine;
 
//自定义Tset脚本
[CustomEditor(typeof(Test))] 
//在编辑模式下执行脚本,这里用处不大可以删除。
[ExecuteInEditMode]
//请继承Editor
public class MyEditor : Editor 
{
    //在这里方法中就可以绘制面板。
    public override void OnInspectorGUI() 
    {
        //得到Test对象
        Test test = (Test) target;
        //绘制一个窗口
        test.mRectValue = EditorGUILayout.RectField("窗口坐标",
                test.mRectValue);
        //绘制一个贴图槽
        test.texture =  EditorGUILayout.ObjectField("增加一个贴图",test.texture,typeof(Texture),true) as Texture;
 
    }
}

前后对比

548583-20170617084930259-371813831.png

548583-20170617084948853-578174058.png

转载于:https://www.cnblogs.com/yufenghou/p/7039293.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值