Mesh Combiner в единстве - PullRequest
       7

Mesh Combiner в единстве

0 голосов
/ 18 декабря 2018

Здравствуйте, я использую скрипт этого парня https://www.youtube.com/watch?v=wYAlky1aZn4 для объединения мешей, потому что игра "отстает" или как там ее называют, когда она не работает гладко.У меня есть кубы 34 * 124 с двумя разными сетками, и все отлично работает, если я помещаю скрипт в объект с 34 * 20 детьми (те же кубы, которые я упоминал ранее), но если я помещаю его в объект, у которого есть 32 * 124 дочерних элементовон превращает их во что-то похожее на 34 * 20 кубов.

По сути, если я ставлю скрипт на что-то более детское, он превращается в нечто меньшее.

Этокод из видео:

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

public class CombineMeshes : MonoBehaviour {
    public void Combine(){
        Quaternion oldRot = transform.rotation;
        Vector3 oldPos = transform.position;

        transform.rotation = Quaternion.identity;
        transform.position = Vector3.zero;

        MeshFilter[] filters = GetComponentsInChildren<MeshFilter> ();

        Mesh finalMesh = new Mesh ();

        CombineInstance[] combiners = new CombineInstance[filters.Length];

        for (int a = 0; a < filters.Length; a++) {
            if (filters [a].transform == transform) {
                continue;
            }

            combiners [a].subMeshIndex = 0;
            combiners [a].mesh = filters [a].sharedMesh;
            combiners [a].transform = filters [a].transform.localToWorldMatrix;
        }

        finalMesh.CombineMeshes (combiners);

        GetComponent<MeshFilter> ().sharedMesh = finalMesh;

        transform.rotation = oldRot;
        transform.position = oldPos;
        for (int a= 0; a < transform.childCount; a++) {
            transform.GetChild (a).gameObject.SetActive (false);
        }
    }
}

1 Ответ

0 голосов
/ 18 декабря 2018

Это именно та проблема с ограничением вершин, которая у вас есть.С вашей настройкой 1 сетка может иметь только 34*20*96 = 65.280 вершин.После этого вам нужна еще одна сетка.124*34*96 составляет 404,736 и превышает лимит.Поэтому вам необходимо изменить формат вашей сетки на UInt32.Если отставание продолжится, я могу попытаться помочь дальше.Удачи!

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