这里第一次提问。
我试图建立一个像你下棋的游戏板。我制作了两个脚本,一个产生电路板并将每个实例化的磁贴存储在一个二维数组中。另一个设置行和列位置的脚本和data["Name1"]
将该位置打印到控制台。但是,这始终是打印onMouseOver
和Row = 0
。
我得出的结论是,2d数组只是在内存中设置了一个克隆,因此我通过调用函数Col = 0
设置的存储值没有被发现作为实例化的对象了Unity场景不共享内存位置。
任何人都知道如何解决这个问题?
setRC();
答案 0 :(得分:2)
没有a complete code example(我知道但仍然......提供Unity3d项目很困难甚至不切实际),很难确定问题是什么。然而...
虽然Start()
方法通常以类似于构造函数的方式使用,但重要的是要理解它实际上不是一个。当您的代码在新对象上调用setRC()
方法时,我认为它还没有被调用。
这意味着执行流程是您首先根据需要设置行和列值,然后Unity3d框架调用BoardPiece.Start()
方法,将行和列值设置回{{ 1}}。
由于创建对象时默认情况下0
和rowPlace
字段已设置为colPlace
,因此我认为最好的解决方法是从{{{{}}中删除这两行1}}方法。它们不是必需的,我相信它们对你遇到的问题负有责任。