簡體   English   中英

如何在 Unity c# 中聲明二維浮點數組?

[英]How to declare 2D float array in Unity c#?

我目前正在做一個游戲項目。 我使用浮點值作為維度,因為我必須在網格的單個單元格中存儲多個 pawn。

在某些時候,我必須聲明一個用於選擇和移動目的的數組位置點,因此我使用此代碼來聲明

  public PlayerScript[,] Pawns {get; set;}

但默認情況下, [,] 的值被視為 int 並且每次我必須將它們類型轉換為 int 以檢查 if 條件。 並且賦值語句不起作用。 編寫相同的東西以將值聲明為浮點數是否有任何替代風格?

C# 中的數組只能按整數類型索引,不能按浮點類型索引 這是大多數編程語言的規范,否則尚不清楚語義是什么。

我建議重新考慮您使用的數據結構。 您已經說明要使用浮動的原因是因為您希望網格的每個單元格中有多個對象。 如果這是您使用浮點數的唯一原因,那么您可以為每個單元格使用List<PlayerScript> ,並且每個列表可以包含任意數量的PlayerScript

public List<PlayerScript>[,] Pawns { get; set; }

在使用之前,您需要用空列表對象填充每個單元格。

Pawns = new List<PlayerScript>[8,8];
for (int r = 0; r < 8; r++)
{
    for (int c = 0; c < 8; c++)
    {
        Pawns[r,c] = new List<PlayerScript();
    }
}

暫無
暫無

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

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