Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Рандомная генерация в Unity по чанкам работает криво, помогите, пожалуйста)

Егор Хамидулин Мастер (1481), открыт 1 неделю назад
Хотел я сделать рандомную генерацию заднего фона по чанкам в TopDown игре, но всё пошло как-то криво и косою. А вот собственно мой говно-код:
 using UnityEngine; 

public class GameGeneration : MonoBehaviour
{
[SerializeField] private GameObject[] summerObject = new GameObject[4];
private GameObject[] chunk = new GameObject[9];

private const int height = 99, weight = 99;
private const float sizeOfChunk = 3f;
private const int middleOfChunk = 4;

private int generateNumber;

private void Start()
{
GenerationMap();
}
private void GenerationMap()
{
for(float x = 0f; x < height; x += sizeOfChunk)
{
for(float y = 0f; y < weight; y += sizeOfChunk)
{
GenerationChunk(x, y);
}
}
}
private void GenerationChunk(float posX, float posY)
{
for(int i = 0; i < chunk.Length; i++)
{
generateNumber = Random.Range(0, summerObject.Length);
chunk[i] = summerObject[generateNumber];
}
SetChunk(posX, posY);
}
private void SetChunk(float posX, float posY)
{
Instantiate(chunk[0], new Vector2(posX--, posY++), Quaternion.identity); //размещение объекта в верхнем левом углу
Instantiate(chunk[1], new Vector2(posX, posY++), Quaternion.identity); //размещение объекта в верхнем центральном углу
Instantiate(chunk[2], new Vector2(posX++, posY++), Quaternion.identity); //размещение объекта в верхнем правом углу

Instantiate(chunk[3], new Vector2(posX--, posY), Quaternion.identity); //размещение объекта в центре слева
Instantiate(chunk[middleOfChunk], new Vector2(posX, posY), Quaternion.identity); //размещение центрального объекта по центру
Instantiate(chunk[5], new Vector2(posX++, posY), Quaternion.identity); //размещение объекта в центре справа

Instantiate(chunk[6], new Vector2(posX--, posY--), Quaternion.identity); //размещение объекта в нижним левом углу
Instantiate(chunk[7], new Vector2(posX, posY--), Quaternion.identity); //размещение объекта в нижнем центральном углу
Instantiate(chunk[8], new Vector2(posX++, posY--), Quaternion.identity); //размещение объекта в нижнем правос углу



}
}
Ну ещё меня настораживает постоянное использование Instantiate. Подскажите, как исправить?
0 ответов
Похожие вопросы