试图访问2d数组Unity c#中的实例化对象。无法访问或更改元素?

时间:2015-11-22 05:30:14

标签: c# multidimensional-array unity3d

这里第一次提问。 我试图建立一个像你下棋的游戏板。我制作了两个脚本,一个产生电路板并将每个实例化的磁贴存储在一个二维数组中。另一个设置行和列位置的脚本和data["Name1"]将该位置打印到控制台。但是,这始终是打印onMouseOverRow = 0

我得出的结论是,2d数组只是在内存中设置了一个克隆,因此我通过调用函数Col = 0设置的存储值没有被发现作为实例化的对象了Unity场景不共享内存位置。

任何人都知道如何解决这个问题?

setRC();

1 个答案:

答案 0 :(得分:2)

没有a complete code example(我知道但仍然......提供Unity3d项目很困难甚至不切实际),很难确定问题是什么。然而...


虽然Start()方法通常以类似于构造函数的方式使用,但重要的是要理解它实际上不是一个。当您的代码在新对象上调用setRC()方法时,我认为它还没有被调用。

这意味着执行流程是您首先根据需要设置行和列值,然后Unity3d框架调用BoardPiece.Start()方法,将行和列值设置回{{ 1}}。

由于创建对象时默认情况下0rowPlace字段已设置为colPlace,因此我认为最好的解决方法是从{{{{}}中删除这两行1}}方法。它们不是必需的,我相信它们对你遇到的问题负有责任。