我是Unity新手,并且找到了this,因此我可以通过单击鼠标来获取网格的位置。
我想破坏瓷砖并通过单击鼠标将播放器移动到网格位置。
我有2个我不知道如何解决的问题。
如果您听不懂,对不起,我的英语不好。
答案 0 :(得分:1)
- 获得网格的位置后,如何获得图块gameObject?
使用Tilemap.GetInstantiatedObject
:
Tilemap tilemap; // Given
Vector3Int pos; // Given
GameObject gameObjectAtPosition = tilemap.GetInstantiatedObject(pos);
- 当我将player.transform.position设置为网格的位置时,它看起来像PNG-A,但是我想要的是PNG-B,它位于图块x位置的中心。
将图块宽度(0.5 * GridLayout.cellSize.x
)的一半加到您当前位置的x处。您可以使用Vector3.Scale
执行此操作:
GameObject person; // Given
Vector3 tilePosition; // Given
person.transform.position = tilePosition + Vector3.Scale(new Vector3(0.5f,0f,0f), GridLayout.cellSize) ;