2016-12-18 17 views
1

Из-за того, что я сделал свой дом из редактора единства, я не могу удалить эти границы сетки. Я попробовал MeshCombiner, но он просто соединяет все сетки в одной границе сетки. Я знаю, что я могу сделать это от Блендера или что-то в этом роде, но есть ли кто-нибудь, чтобы удалить из единства?Как объединить игровые объекты?

Screen Shot: http://imgur.com/a/1XALE

+0

Похоже, вам необходимо перестроить текстуру в новую сетку (новые ульвы). –

+0

Вы хотите удалить внутренние грани, где пересекаются сетки? Если это так, я бы попытался использовать библиотеку CSG из хранилища активов. Операция CSG boolean Add удаляет внутренние грани. Что-то вроде [SabreCSG] (https://www.assetstore.unity3d.com/ru/#!/content/47418) может быть именно тем, что вам нужно: –

ответ

1

Может быть, вы ищете CombineMeshes. Примером может служить

using UnityEngine; 
using System.Collections; 

[RequireComponent(typeof(MeshFilter))] 
[RequireComponent(typeof(MeshRenderer))] 
public class ExampleClass : MonoBehaviour { 
    void Start() { 
     MeshFilter[] meshFilters = GetComponentsInChildren<MeshFilter>(); 
     CombineInstance[] combine = new CombineInstance[meshFilters.Length]; 
     int i = 0; 
     while (i < meshFilters.Length) { 
      combine[i].mesh = meshFilters[i].sharedMesh; 
      combine[i].transform = meshFilters[i].transform.localToWorldMatrix; 
      meshFilters[i].gameObject.active = false; 
      i++; 
     } 
     transform.GetComponent<MeshFilter>().mesh = new Mesh(); 
     transform.GetComponent<MeshFilter>().mesh.CombineMeshes(combine); 
     transform.gameObject.active = true; 
    } 
}