Объединение сеток в одном начале координат в UnityC#

Место общения программистов C#
Ответить
Anonymous
 Объединение сеток в одном начале координат в Unity

Сообщение Anonymous »

Введите описание изображения здесь
Я объединил две сетки в одну, как показано на изображении. Тем не менее, я хочу, чтобы созданная сетка имела единую точку происхождения. Как я могу создать комбинированную сетку с вершинами, сосредоточенными вокруг одной точки происхождения? На изображении есть две точки.using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Splines;

public class MeshCalculations : SingletonMonoBehaviour
{
public GameObject Zone01;
public GameObject Zone02;
public Mesh createdMesh;
private void Update()
{
if (Input.GetKeyDown(KeyCode.V))
{
MergeMeshes();
}
}

public void MergeMeshes()
{
// Get MeshFilters from the two GameObjects
MeshFilter meshFilter1 = Zone01.GetComponent();
MeshFilter meshFilter2 = Zone02.GetComponent();

if (meshFilter1 == null || meshFilter2 == null)
{
Debug.LogError("One of the objects does not have a MeshFilter!");
return;
}

// CombineInstance array to hold the meshes
CombineInstance[] combine = new CombineInstance[2];

// Add the first mesh
combine[0].mesh = meshFilter1.sharedMesh;
combine[0].transform = meshFilter1.transform.localToWorldMatrix;

// Add the second mesh
combine[1].mesh = meshFilter2.sharedMesh;
combine[1].transform = meshFilter2.transform.localToWorldMatrix;

// Create a new mesh
Mesh combinedMesh = new Mesh();
combinedMesh.CombineMeshes(combine);

// Create a new GameObject to hold the combined mesh
GameObject combinedObject = new GameObject("CombinedMesh");
combinedObject.transform.position = Vector3.zero;
combinedObject.transform.rotation = Quaternion.identity;

// Add a MeshFilter and MeshRenderer to the new GameObject
MeshFilter combinedMeshFilter = combinedObject.AddComponent();
combinedMeshFilter.mesh = combinedMesh;

MeshRenderer combinedMeshRenderer = combinedObject.AddComponent();
combinedMeshRenderer.sharedMaterial = Zone01.GetComponent().sharedMaterial;
createdMesh = combinedMesh;
}

}



Подробнее здесь: https://stackoverflow.com/questions/793 ... n-in-unity
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»