簡體   English   中英

Unity 檢查器無法編輯公共數組的值

[英]Unity inspector can't edit public array's values

我想要一個具有公共數組的腳本,以便我可以修改檢查器中的值。 這是一個示例腳本:

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()
    {
        
    }
}

當我將腳本添加到游戲 object 時,我可以在檢查器中看到空列表(如預期的那樣)。

在此處輸入圖像描述

但是當我向數組添加元素時,數組區域只是空白,所以我無法設置每個元素的值(或查看元素值是什么)。

在此處輸入圖像描述

這只是一個錯誤,還是我做錯了什么?

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

升級到新版本的 Unity 后,我遇到了同樣的問題,我發現如果我將編輯器 window 移到另一個屏幕,它就可以工作。 也許是因為我的主屏幕是寬屏? 我不知道,我無法解釋。 如果我將編輯器移回主屏幕,它們會再次消失。 所以現在,我只是調整較小的側屏幕上的值,然后在完成后返回。 如果您沒有一個以上的屏幕,也許可以嘗試更改分辨率或其他內容。

可能不是最好的解決方案,但定義您自己的可序列化 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()
    {
        
    }
}

Unity Apple Silicon 的 2021.2.7f1 和 2021.2.6f 也有同樣的問題。 例如,如果我為 animation 精靈創建一個數組,並希望將精靈拖到檢查器中。 它們不會顯示在下拉列表中。 就像上面的屏幕截圖一樣,它只是空白。

奇怪的是,我打開了另一個舊項目,將其轉換為更新的統一版本,該版本與我為練習而重建的同一項目重復,並且 arrays 正在按應有的方式顯示。

編輯:哇,所以列表顯示在我的 M1 Macbook 上,但不在我的外部顯示器上。

如果我找到解決方案,我會告訴你的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM