首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新折点时,Mesh.bounds和Renderer.bounds不会更改

更新折点时,Mesh.bounds和Renderer.bounds不会更改
EN

Stack Overflow用户
提问于 2019-02-28 18:54:36
回答 1查看 436关注 0票数 0

我通过在每个帧上添加每个顶点的法线来增加3D模型的大小。模型的大小在视觉上明显增加,但当注销边界时,它们不会改变。

代码语言:javascript
复制
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);
    }
}

注销值的结果

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-28 19:00:47

因为在更改顶点时必须重新计算边界,所以在打印边界之前添加以下行:

代码语言:javascript
复制
 mesh.RecalculateBounds();

然后你就会看到它会改变。您可以查看this了解更多信息。祝你的实验好运:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54924038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档