Mesh.bounds и Renderer.bounds не меняются при обновлении вершин - PullRequest
0 голосов
/ 28 февраля 2019

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

using UnityEngine;

public class VertexExperiment : MonoBehaviour
{
    private Mesh mesh;
    private Renderer renderer;

    void Start()
    {
        mesh = gameObject.GetComponent<MeshFilter>().mesh;
        renderer = gameObject.GetComponent<Renderer>();
    }

    void Update()
    {
        Vector3[] vertices = mesh.vertices;
        for (int i = 0; i < vertices.Length; i++)
        {

            Vector3 normal = vertices[i].normalized;
            vertices[i] = vertices[i] + normal;
        }
        mesh.vertices = vertices;

        print(renderer.bounds.size);
        print(mesh.bounds.size);
    }
}

Результат выхода из значений

Result of logging

1 Ответ

0 голосов
/ 28 февраля 2019

Поскольку вы должны пересчитать границы при изменении вершин, добавьте эту строку перед печатью границ:

 mesh.RecalculateBounds();

Тогда вы увидите, что она изменится.Вы можете проверить это для получения дополнительной информации.Удачи в вашем эксперименте:)

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