我正在尝试在运行时将我的一个可编写脚本的图块添加到我的 Unity Tilemap 中。我可以在编辑器中绘制磁贴,一切看起来都很好,但我想在运行时添加它。
我尝试实例化 ScriptableObject 资产本身,但它没有生成的磁贴资产在编辑器中所需的正确精灵。此外,我不认为我应该为每个图块实例化 ScriptableObject 资产,因为一个资产旨在为地图上的所有相同图块共享。
Tilemap API 提供了一种添加磁贴的方法,但没有说明或示例说明如何创建磁贴。
小智 0
这有点超出我的想象,但我昨天正在搞类似的事情,在点击时实例化一个图块。
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);
Run Code Online (Sandbox Code Playgroud)
我不是 100% 认为这是最好的方法,但它对我有用。如果这不起作用,请告诉我,我会仔细检查实际文件。
| 归档时间: |
|
| 查看次数: |
3519 次 |
| 最近记录: |