【问题标题】:Unity inspector can't edit public array's valuesUnity 检查员无法编辑公共数组的值
【发布时间】:2022-01-17 02:15:39
【问题描述】:

我想要一个具有公共数组的脚本,以便我可以修改检查器中的值。这是一个示例脚本:

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

public class Foo : MonoBehaviour
{
    public int[] bars;

    // Start is called before the first frame update
    void Start()
    {
        
    }

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

当我将脚本添加到游戏对象时,我可以在检查器中看到空列表(如预期的那样)。

但是当我向数组添加元素时,数组区域只是空白,所以我无法设置每个元素的值(或查看元素值是什么)。

这只是一个错误,还是我做错了什么?

我在 macOS Monterey 12.0.1 上运行 Unity 2021.2.5f1。

【问题讨论】:

  • 我会尝试编译项目。另外我会尝试在代码public int[] bars = new int[1]; 中初始化数组,尽管我相信它应该可以在没有初始化的情况下工作
  • @rustyBucketBay 我将public int[] bars; 更改为public int[] bars = new int[1];,重新编译,删除脚本并将其重新添加到游戏对象中,但我仍然遇到同样的问题(尽管现在检查员显示正如预期的那样,该数组只有一个值)。
  • 如果我在 Unity 2020.3.11f1(64 位)版本中检查了它的任何帮助,并且您的脚本可以正常工作而无需初始化数组。可以在inspector中添加值,出现整数字段并且可以设置它们的值...
  • 是的,正如@rustyBucketBay 所说,它也可以在我的 Windows 10 PC 上使用 2020.3.22f1,这可能与 Unity 2021.2.5f1 有关
  • 是的,这绝对是一个错误。可能与this one(?) .. 它肯定在 Windows 和其他 Unity 版本中按预期工作..

标签: c# unity3d


【解决方案1】:

升级到新版本的 Unity 后,我遇到了同样的问题,我发现如果我将编辑器窗口移到不同的屏幕,它也可以工作。也许是因为我的主屏幕是宽屏的?我不知道,我无法解释。如果我将编辑器移回主屏幕,它们会再次消失。所以现在,我只是在较小的侧屏上调整值,然后在完成后移回。如果您的屏幕不超过一个,也许可以尝试更改分辨率或其他方式。

【讨论】:

    【解决方案2】:

    可能不是最好的解决方案,但定义您自己的可序列化 int 结构可能有效。

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    [Serializable]
    public struct MyInt
    {
        public int Int;
    }
    
    public class Foo : MonoBehaviour
    {
         public MyInt[] bars;
    
        // Start is called before the first frame update
        void Start()
        {
            
        }
    
        // Update is called once per frame
        void Update()
        {
            
        }
    }
    

    【讨论】:

    • 这并没有解决我的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 2017-11-23
    • 1970-01-01
    • 2016-04-08
    • 1970-01-01
    相关资源
    最近更新 更多