C# 如何通过位置获得游戏对象的平铺?
我是Unity的新手,所以我可以通过鼠标点击获得网格的位置 我想销毁一个磁贴并通过鼠标点击将玩家移动到网格的位置 我有两个问题我不知道如何解决C# 如何通过位置获得游戏对象的平铺?,c#,unity3d,C#,Unity3d,我是Unity的新手,所以我可以通过鼠标点击获得网格的位置 我想销毁一个磁贴并通过鼠标点击将玩家移动到网格的位置 我有两个问题我不知道如何解决 在我得到网格的位置后,我如何才能得到游戏对象的平铺 当我将player.transform.position设置为网格的位置时, 看起来像,但我想要的是, 位于磁贴x位置的中心 如果你不明白,我很抱歉,我的英语不好 在我得到网格的位置后,我如何才能得到游戏对象的平铺 使用Tilemap.getInstancedObject: Tilemap Tilema
Tilemap.getInstancedObject
:
Tilemap Tilemap;//鉴于
向量3int位置;//鉴于
GameObject gameObjectAtPosition=tilemap.GetInstancedObject(pos);
0.5*GridLayout.cellSize.x
)添加到当前位置的x。可以使用Vector3.Scale
执行此操作:
gameobjectperson;//鉴于
Vector3 tilePosition;//鉴于
person.transform.position=tilePosition+Vector3.Scale(新的Vector3(0.5f、0f、0f)、GridLayout.cellSize);
而我更改了1。打印(GetComponent().getInstancedObject(pos).name)?但是我得到一个错误对象引用没有设置为对象的实例
?你知道是什么导致了这个错误吗?@raxabizze这是在哪一行发生的?这意味着
左侧的某些内容是null
这也是一条建议,您应该尽可能避免在Update
方法或Update
中使用的方法中调用GetComponent
。谢谢,非常有用。