Смещение сборных плиток для создания изометрической карты - PullRequest
1 голос
/ 23 марта 2019

Я пытаюсь создать изометрическую карту, используя 2d спрайты в качестве префабов для создания сетки базового слоя. На более поздних итерациях положение тайла позволит пользователю пройти персонаж и т. Д. (Игра в шахматном стиле)

Однако я не совсем понимаю математику правильного смещения строк для достижения результатов бесшовной изометрической карты;

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class IsometricMap : MonoBehaviour
{
    public int mapSize = 10;
    public GameObject tilePrefab;

    public int TileID = 1;

    void Start()
    {
        GenerateMap();
    }

    void GenerateMap()
    {
        for (int x = 0; x < mapSize; x++)
        {
            for (int y = 0; y < mapSize; y++)
            {
                if ((x < mapSize / 2 || x < mapSize / 2 || y < -x + mapSize * 3 / 2) && ((y < mapSize / 2 || y < x + mapSize / 2) && (x < mapSize / 2 || x < y + mapSize / 2)) && (y > mapSize / 2 || y > -x + mapSize / 2))
                {
                    tilePrefab.transform.name = "Tile: " + TileID++ + " [" + x + "," + y + "]";
                    Instantiate(tilePrefab, new Vector3(x, y, 0f), Quaternion.identity, this.transform);
                }
            }
        }
    }
}

enter image description here

Сама плитка размером 64x64, и, как вы можете видеть, только половина плитки занята художественными работами. Кто-нибудь может посоветовать, что я делаю не так?

Более того, и я знаю, что, возможно, мне следует задать отдельный вопрос, но я знаю, что в конечном итоге эта форма карты сформирует ромб, но есть ли способ, которым я могу вместо этого сделать карту из квадрата?

Спасибо всем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...