前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在Inspector面板中显示变量和类(Unity3D)

在Inspector面板中显示变量和类(Unity3D)

作者头像
恬静的小魔龙
发布2022-08-07 09:25:08
2.9K0
发布2022-08-07 09:25:08
举报
文章被收录于专栏:Unity3DUnity3D

一、前言

Unity有一个强大的特性,它可以帮助我们在没有任何编程的情况下修改Inspector面板中的值。本文介绍了我们需要知道的所有信息,以便在Unity Inspector面板中显示我们的变量和自定义类。

二、显示变量

变量 让我们创建一个名为“Test.cs”的C#脚本,其中包含一个int变量:

代码语言:javascript
复制
using UnityEngine;
using System.Collections;

public class Test : MonoBehaviour {
    int something = 0;

    // Use this for initialization
    void Start () {
        
    }
        
    // Update is called once per frame
    void Update () {
        
    }
}

现在我们通过顶部菜单创建一个新的GameObject(游戏对象->创建空)并将Test.cs脚本添加到GameObject。Inspector面板现在看上去是这样的:

在这里插入图片描述
在这里插入图片描述

我们可以看到它上面有Test.cs脚本,但是我们没有看到某物一点变数都没有。

公共变量 让我们通过添加另一个变量来修改我们的脚本,但是这次用public前缀。在编程语言中,public意味着其他类也可以看到这个值。在Unity public中,也意味着变量显示在Inspector面板中。

修改后的Test.cs脚本:

代码语言:javascript
复制
using UnityEngine;
using System.Collections;

public class Test : MonoBehaviour {
    int something = 0;
    public int i_am_public = 0;

    // Use this for initialization
    void Start () {
        
    }
        
    // Update is called once per frame
    void Update () {
        
    }
}

保存了它之后,下面是Inspector面板现在的样子:

在这里插入图片描述
在这里插入图片描述

现在,我们可以轻松地修改变量,而无需再次打开脚本,也无需进行任何编程。

三、显示类

公共类+变量

我们的测试脚本现在应该有一个Address变量。假设我们也可以在其他脚本中使用一个Address,我们就可以为它创建一个完整的类。让我们开始吧:

代码语言:javascript
复制
using UnityEngine;
using System.Collections;

public class Test : MonoBehaviour {
    int something = 0;
    public int i_am_public = 0;
    
    public Address address;

    // Use this for initialization
    void Start () {
        
    }
        
    // Update is called once per frame
    void Update () {
        
    }
}

public class Address {
    public string country = "";
    public string city = "";
    public string street = "";
    public int number = 0;
}

现在,如果我们再次保存并查看Inspector面板,下面是我们所看到的:

在这里插入图片描述
在这里插入图片描述

即使我们设置了Address公众变量在我们的考试课上,我们仍然看不到它。原因是它不是像“public class Test:MonoBehaviour”那样的Unity类(每个组件都需要:MonoBehaviour,但一个简单的类没有理由是:MonoBehaviour).

大多数人在这里停下来,认为不可能在Inspector面板显示我们的Address,但实际上是这样。

类显示在Inspector面板中 诀窍是:如果一个类应该显示在Inspector面板中,我们只需通过编写[System.erialable]在类声明之上

下面是我们修改的脚本:

代码语言:javascript
复制
using UnityEngine;
using System.Collections;

public class Test : MonoBehaviour {
    int something = 0;
    public int i_am_public = 0;
    
    public Address address;

    // Use this for initialization
    void Start () {
        
    }
        
    // Update is called once per frame
    void Update () {
        
    }
}

[System.Serializable]
public class Address {
    public string country = "";
    public string city = "";
    public string street = "";
    public int number = 0;
}

现在,如果我们保存它并再次查看Inspector面板,这就是我们得到的:

在这里插入图片描述
在这里插入图片描述

就这么简单!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-08-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、显示变量
  • 三、显示类
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档