gpt4 book ai didi

unity3d - 如何在运行时向 Unity Tilemap 添加可编写脚本的磁贴?

转载 作者:行者123 更新时间:2023-12-03 14:57:49 30 4
gpt4 key购买 nike

我正在尝试在运行时将我的一个可编写脚本的图块添加到我的 Unity Tilemap 中。我可以在编辑器中绘制磁贴,一切看起来都很好,但我想在运行时添加它。

我尝试实例化 ScriptableObject Assets 本身,但它没有生成的磁贴 Assets 在编辑器中所需的正确 Sprite 。此外,我不认为我应该为每个图块实例化 ScriptableObject Assets ,因为一个 Assets 旨在为 map 上的所有相同图块共享。

Tilemap API 提供了添加磁贴的方法,但没有说明或示例说明如何创建磁贴。

最佳答案

这有点离我的头顶,但我昨天在搞类似的事情,在点击时实例化一个磁贴。

Vector3Int tilePos = map.WorldToCell(mousePos);

YourTileClass tileInstance = ScriptableObject.CreateInstance<YourTileClass>();

Texture2D tex = Resources.Load<Texture2D>("tileTexture") as Texture2D;

Sprite sprite = new Sprite();

sprite = Sprite.Create(tex, new Rect(0, 0, 400, 400), new Vector2(0.5f, 0.5f));

Tile tile = Resources.Load<Tile>("tileInstance") as Tile;

tileInstance .sprite = sprite;

yourTileMap.SetTile(tilePos , tile);

如果这是最好的方法,我不是 100%,但它对我有用。如果这不起作用,请告诉我,我会仔细检查实际文件。

关于unity3d - 如何在运行时向 Unity Tilemap 添加可编写脚本的磁贴?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47935983/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com