动态创建的 Tilemap 瓦片在编辑器和 Android 构建中呈现,但不在 WebGL 构建中呈现

Dynamically created Tilemap tiles render in editor and Android build but not in WebGL build

我构建了一个测试项目以获得最小的可重现脚本,并且这样做了:

using UnityEngine;
using UnityEngine.Tilemaps;

public class TileTest : MonoBehaviour {
    public Tilemap tilemap;
    public Sprite floorSprite;

    void Start () {
        Tile tile = new Tile();

        tile.sprite = floorSprite;
        tilemap.SetTile(new Vector3Int(1, 1, 0), tile);

        tile = ScriptableObject.CreateInstance<Tile>();
        tile.sprite = floorSprite;
        tilemap.SetTile(new Vector3Int(-1, -1, 0), tile);
    }
}

sprite 只是一个小的 PNG,tilemap 是 Grid(正常)内部的 Tilemap 对象。此脚本附加到网格。这就是这个项目的全部内容。

在编辑器和 Android 构建中,两个实例化都有效。第一个生成警告,这是预期的(已弃用);我只是想直接尝试查看行为是否有所不同,但事实并非如此。

我在 Build Settings 或 PlayerSettings 中找不到任何似乎应该影响它的东西。精灵在网格上的脚本中被引用,为了确保,我将 Sprites 文件夹放在 Resources 文件夹中;没变化。 Firefox 和 Chrome/Chromium(我在 Windows 10 和 Debian 9 中对此进行了测试)都只显示空白 canvas,这是构建(以及更复杂的项目)的正确颜色它还显示我的非瓦片精灵和动画),但没有瓦片精灵渲染。

在实际项目中,我使用在所有平台上都能正常工作的动画动态实例化预制件。为什么它会在 WebGL 中失败?

这是 Unity 引擎的当前错误,将在未来的版本中修复。请密切关注以下内容,以及 Unity 未来的更新日志。

Unity Bug Tracker - Tilemap WebGL