如何在网格中对齐平铺游戏对象

时间:2019-03-12 11:54:50

标签: 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像素。就是我希望1个单位等于32个像素。

我该怎么做?非常感谢您的帮助!

我正在使用Unity 2017.3.1f1。

1 个答案:

答案 0 :(得分:1)

只需查看您的代码即可:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="nav nav-pills">
    <li><a data-toggle="tab" href="#contentone" class="active" onclick="toggleActive(this)">One</a></li>
    <li><a data-toggle="tab" href="#contenttwo" onclick="toggleActive(this)">Two</a></li>
</ul>

您直接使用了循环的变量, 但您需要计算瓷砖的放置位置。 例如(可能不完全正确):

tile.transform.localPosition = new Vector3(x, y, 0);