繁体   English   中英

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

[英]Unity - How to check if there is a Tile of an specific Tilemap in the position x,y,z

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

Lvl1 = 关卡块/瓷砖,
Lvl1 Dec = 关卡装饰,
负部分 = 玩家不能跳跃的部分,
Positive Parts = [红色部分]玩家停止跳跃动画的部分

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

所以问题是我想检查在该 Tilemap 的特定位置是否有一个 Positive Tile,但我的代码只检查对撞机

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?

不能直接使用collider的gameObject属性来获取tile吗?

hitdown.collider.gameObject

然后使用您自己的验证检查这是否是一个正面图块。

编辑:

如果你只想要一个特定坐标的图块,你可以使用 Tilemap.GetTile 方法。 文档可以在这里找到: Tilemap.GetTile

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM