unity3d - 如何在网格中对齐平铺游戏对象
问题描述
如何将平铺游戏对象与我的平铺地图网格对齐?我有以下设置:
tileSprite:
pixels per unit: 32
Grid (created tilemap gameobject):
Grid component:
cell size: 32, 32, 0
GridController script component:
tileSprite
在 GridController 脚本中:
public class GridController : MonoBehaviour {
public Sprite tileSprite;
// Use this for initialization
void Start () {
for (int x=0; x<5; x++) {
for (int y=0; y<5; y++) {
GameObject tile = new GameObject();
tile.transform.localPosition = new Vector3(x, y, 0);
tile.transform.localScale += new Vector3(32, 32, 1);
SpriteRenderer tile_sr = tile.AddComponent<SpriteRenderer>();
tile_sr.sprite = tileSprite;
}
}
}
}
我希望它并排放置,但似乎它们仅相隔 1 个像素。IE。我希望 1 个单位等于 32 像素。
我该怎么做呢?非常感谢你的帮助!
我正在使用 Unity 2017.3.1f1。
解决方案
只需查看您的代码:
tile.transform.localPosition = new Vector3(x, y, 0);
您直接使用了循环的变量,但您需要计算放置瓷砖的位置。例如(可能不完全正确):
tile.transform.localPosition = new Vector3(x*32, y*32, 0);
推荐阅读
- go - golang 频道中的函数调用
- php - 使用PHP的ldap缺少departmentNumber
- selenium - 如何在不使用 python 的情况下使用 selenium、机器人框架将元素中的选定文本添加到 CSV 文件中
- javascript - 循环数据并根据单元格值设置 IndexMatch 公式 - 由于 .getValue() 而太慢
- angular - 角反应形式禁用输入字段
- angular - 使用 Angular 6 的补丁表单自动完成材料
- php - 当根目录下有多个目录时,.htacces 中的 RewriteBase
- sql - 根据 Status 和 CreatedDate 查询最近的记录
- java - 线程“主”方法调用 Java 中的异常
- python - 定义一个接受项目列表并返回以逗号分隔的项目名称列表的函数