Тема: I.D.S. MONSTERS
Показать сообщение отдельно
Старый 24.02.2020, 21:41   #46
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Ответ: I.D.S. MONSTERS

Итак, по своему же принципу из блитца, научил движок
визуализировать координатную сетку мешем.
Сколько клеток, столько полигонов, один полигон
состоит из двух триангл.
В будущем на нужный полигон будем натягивать
необходимую в данный момент текстуру клетки.

Билд выкладывать смысла не вижу, вы там просто
очередную плоскость увидите.

Код создания сетки полигонами:


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

public class SetkaCreator : MonoBehaviour
{


    public int SetkaScaleZ = 10; //Размер сетки по оси "Z".
    public int SetkaScaleX = 10; //размер сетки по оси "X".
    public int SetcaPloshad; //Площадь сетки.

    //Статичные переменные для отсчёта в циклах создания клеток сетки.
    public int Z = 0;
    public int X = 0;
    public int U = 0;

    void Start()
    {

    //Расчёт площади сетки.
        SetcaPloshad = SetkaScaleZ * SetkaScaleX;

        //Создаём меш.

        Mesh Setka = new Mesh();

        //Подключаем меш фильтр.
        MeshFilter SetkaFilter = GetComponent<MeshFilter>();

        //Применяем мешфильтр к мешу.
        SetkaFilter.mesh = Setka;

        //Циклы создания сетки исходя из её размера по оси "z" и оси "x" а так же её площади.
        for (Z = 0; Z < SetkaScaleZ; SetkaScaleZ--)
        {

                for (X = 0; X < SetkaScaleX; SetkaScaleX--)
                {

                for (U = 0; U < SetcaPloshad; SetcaPloshad--)
                {


                    //Создаём вектор вершин с массивом из четырёх штук.
                    Vector3[] Vershini = new Vector3[4]
                    {
                    //Пишем в масси координаты вершин опираясь на размер сетки по её осям.
                    new Vector3(0,0,0), new Vector3(SetkaScaleX,0,0), new Vector3(0,SetkaScaleZ,0), new Vector3(SetkaScaleX,SetkaScaleZ,0)
                    };

                    //Создаём массив с трианглами.
                    int[] Bermubes = new int[6];
                    Bermubes[0] = 0;
                    Bermubes[1] = 2;
                    Bermubes[2] = 1;
                    Bermubes[3] = 2;
                    Bermubes[4] = 3;
                    Bermubes[5] = 1;

                    //Создаём массив с текстурнымикоординатами.
                    Vector2[] TextureCoordinates = new Vector2[4]
                    {

                    new Vector2(0,0) , new Vector2(1,0) , new Vector2(0,1) , new Vector2(1, 1)

                    };

                    //Задаём вершины мешу.
                    Setka.vertices = Vershini;
                    //Создаём трианглы меша.
                    Setka.triangles = Bermubes;
                    //Создаём uv развёртку.
                    Setka.uv = TextureCoordinates;

                } 
            }

        }





    }

    void Update()
    {
        
    }
}
__________________
Проект "Deathbring World - Rangers" и его финансовая поддержка:
https://boosty.to/deathbringrangers

Я на - TWITCH
Канал на YouTube
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Crystal за это полезное сообщение:
Arton (25.02.2020), St_AnGer (24.02.2020)