Как выровнять плитки игровых объектов в сетке - PullRequest
0 голосов
/ 12 марта 2019

Как мне выровнять игровые объекты плитки по сетке тайлов карты? У меня есть следующие настройки:

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 Ответ

1 голос
/ 12 марта 2019

Просто взглянув на ваш код:

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

Вы использовали переменные цикла напрямую, но вам нужно вычислить место, где находится плитка.например (может быть не совсем правильно):

tile.transform.localPosition = new Vector3(x*32, y*32, 0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...