Unity-如何检查在x,y,z位置是否有特定Tilemap的Tile

时间:2018-08-22 11:47:56

标签: c# unity3d

我在同一个网格中制作了4个TileMaps
https://i.imgur.com/Zlr3Tlb.png

Lvl1 =级别块/标题,
Lvl1 Dec =水平的装饰,
负数部分=玩家无法跳跃的部分,
正部分= [红色部分]玩家停止跳跃动画的部分

https://i.imgur.com/dx8YZrz.png

我要检查的是该Tilemap的特定位置是否存在正片,但我的代码只是检查碰撞体

if (TileChanger == Grass)
{
    Vector3 pos = Cam.ScreenToWorldPoint(Input.mousePosition);
    RaycastHit2D hitdown = Physics2D.Raycast(vecdown, Vector2.zero);
    if (hitdown != false && hitdown.collider != null)
    {
        PositiveParts.SetTile(vecInt, Positive);
        PositiveParts.SetTile(vecIntdown, null);
    }
    else
    {
        PositiveParts.SetTile(vecInt, Positive);
    }
}

那么有什么代码可以从特定的Tilemap中获取特定的Tile?

1 个答案:

答案 0 :(得分:1)

您不能只使用对撞机的gameObject属性来获取图块吗?

hitdown.collider.gameObject

然后使用您自己的验证来检查这是否是正片。

编辑:

如果只希望在特定坐标处放置一个图块,则可以使用Tilemap.GetTile方法。文档可以在这里找到: Tilemap.GetTile