「Unity3D」(12)EditorWindow使用ScriptableObject绘制界面

本文探讨如何借助ScriptableObject的Inspector在Unity3D的EditorWindow中自定义界面显示,通过两种方式实现ScriptableObject内容的绘制,并介绍了相关效果和扩展设想。
摘要由CSDN通过智能技术生成

通常绘制EditorWindow需要手动一个个手动绘制控件和布局,但是联想到Inspector可以根据SerializedObject对象自动绘制和布局,那么如果我们可以根据SerializedObject对象来控制EditorWindow的显示,然后在此之上再进行一些自定义工作,岂不是会方便快捷很多。

本文将会介绍,如何使用ScriptableObject对象的Inspector绘制,来填充EditorWindow的界面显示。关于Inspector绘制介绍见这篇文章:自定义属性面板Inspector详解

ScriptableObject对象的Inpsector绘制

ScriptableObject对象可以运行时存储临时数据,也可以生成.asse文件持久化数据,如果ScriptableObject持久化对象对应一个EditorWindow窗口,刚好可以当做窗口配置数据源来使用。当然,ScriptableObject的asset文件本身拥有Inpsector编辑显示能力,可以单独用来保存数据使用。比如,建立如下一个ScriptableObject子类:

using UnityEngine;
using System.Collections;

// 生成入口到Unity菜单Assets->Create下
[CreateAssetMenu(menuName = "Create ShowObject")]
public class ShowObject : ScriptableObject
{
   
    public Vector3 position;
    [Space(20)] // 注意,ShowObject需要单独一个文件,并且文件名与类名一致,[]属性才能有效。
    public string  label;
    [Range(0, 10)] // 注意,ShowObject需要单独一个文件,并且文件名与类名一致,[]属性才能有效。
    public int     intData;
    public bool    isCheck;
    public Options options;
    public Shader  defaultShader;

    public enum Options
    {
   
        Opt1
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值