【发布时间】:2021-02-19 08:55:39
【问题描述】:
我正在尝试以编程方式将图块和对象添加到 2D 场景。我有一个层数较低的瓷砖地图和一个包含对象的层数较高的空游戏对象。
问题:
- 我的 Tilemap 总是在对象之上绘制。
- 我的对象按照我创建它们的顺序绘制(毫不奇怪)。但是,我希望将远离相机的物体绘制在靠近相机的物体后面。
网格中一个单元格的示例:
// Set tile for the tilegrid
Vector3Int tilePos = new Vector3Int(i, j, 0);
groundMap.SetTile(tilePos, groundTile);
// Place object as if it were standing on that tile cell
Vector3 objPos = new Vector3();
objPos.x = 1.0f*tilePos.x + 0.5f;
objPos.y = 1.0f*tilePos.y + 0.5f*objectHeight;
GameObject obj = GameObject.Instantiate(objectPrefab, objPos, Quaternion.identity) as GameObject;
obj.layer = objectParent.layer;
obj.transform.SetParent(objectParent.transform);
解决方案?
- 我真的不知道这个。我认为这些图层应该处理绘制顺序。当我运行项目时,对象的层数更高,但它们隐藏在网格后面。
- 我可以轻松地以相反的顺序绘制我的图块,但我不知道是否有其他方法可以做到这一点。我的播放器精灵要么完全绘制在对象之上或之下,我一直遇到同样的问题。但是,我希望当玩家在它后面时对象位于顶部,而玩家在它前面时它位于顶部。欢迎提出任何建议。
免责声明: 我是一名程序员,但对 Unity 还是很陌生。我倾向于在脚本中做尽可能多的事情,但我非常愿意了解更多关于 Unity 的原生工具。
【问题讨论】:
标签: unity3d