unity 获取物体模型中心点

在unity中 一个父级有若干个子级 ,想要找到这些模型物体的中心点,找到了一个简单的方法代码如下,推荐使用GetWorldCenter,使用Bounds结构体中的中心点即可

    public static Vector3 GetLocalCenter(GameObject target)
    {
        MeshFilter meshFilter = target.GetComponent<MeshFilter>();
        if (meshFilter != null && meshFilter.mesh != null)
        {
            Vector3 center = Vector3.zero;
            foreach (Vector3 vertex in meshFilter.mesh.vertices)
            {
                center += vertex;
            }
            center /= meshFilter.mesh.vertexCount;
            return center;
        }
        return Vector3.zero; // 如果找不到MeshFilter或Mesh为空,则返回零向量
    }
    //获取obj下共同中心点
    public static Bounds GetWorldCenter(GameObject target)
    {
        Renderer[] renderers = target.GetComponentsInChildren<Renderer>();
        Bounds bounds = new Bounds();
        if (renderers.Length > 0)
        {
             bounds = new Bounds(renderers[0].bounds.center, Vector3.zero);
            foreach (Renderer renderer in renderers)
            {
                bounds.Encapsulate(renderer.bounds);
            }
            return bounds;
        }
        return bounds; // 如果没有找到Renderer,则返回零向量
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值