繁体   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