Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Unity中动态切换公共变量和私有变量_C#_Unity3d - Fatal编程技术网

C# 如何在Unity中动态切换公共变量和私有变量

C# 如何在Unity中动态切换公共变量和私有变量,c#,unity3d,C#,Unity3d,我用Unity C#编写了以下脚本 测试.cs using System.Collections; using System.Collections.Generic; using UnityEngine; public class Test : MonoBehaviour { public bool showParams = true; public int test1 = 100; public string test = "";

我用Unity C#编写了以下脚本

测试.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{

    public bool showParams = true;
    public int test1 = 100;
    public string test = "";
    
    // Use this for initialization
    void Start()
    {
    }

    // Update is called once per frame
    void Update()
    {

    }
}
我想通过打开/关闭showParams变量来切换是否在Inspector中显示其他参数

如下图所示,当showParams处于启用状态时,所有变量都是公共变量。

如下图所示,我希望在showParams关闭时阻止显示所有变量

我想通过打开/关闭showParams变量来切换是否在Inspector中显示其他参数

如下图所示,当showParams处于启用状态时,所有变量都是公共变量

如下图所示,我希望在showParams关闭时阻止显示所有变量


使用Unity C#这可能吗?

您需要为您的类编写一个自定义编辑器才能做到这一点。在代码编译后,您不能更改类成员的访问修饰符(public和private),这需要它们出现在检查器中


请参阅。

您需要为您的类编写自定义编辑器才能执行此操作。在代码编译后,您不能更改类成员的访问修饰符(public和private),这需要它们出现在检查器中


参见。

,正如其他人指出的那样,此选项不是内置于Unity中的。您必须编写自己的自定义检查器或属性抽屉

幸运的是,在您之前,有许多人面临着同样的问题,因此在internet上有多个Unity editor扩展可以做到这一点。您可以在Google或Github中搜索“unity conditional hide”来找到它们。
我个人认为有用的一个是

,正如其他人指出的那样,这个选项不是内置于统一中的。您必须编写自己的自定义检查器或属性抽屉

幸运的是,在您之前,有许多人面临着同样的问题,因此在internet上有多个Unity editor扩展可以做到这一点。您可以在Google或Github中搜索“unity conditional hide”来找到它们。
我个人认为有用的是

我绝对推荐Odin!我绝对推荐奥丁!