unity给子物体动态添加boxcollider(碰撞盒)
在工作中遇到过给物体拍照截图的功能,由于物体是动态加载并且大小不一,但是要求拍的照片正好被物体填充,因此需要动态计算物体大小,从而进行调整,这种方法也可以进行相机检测物体是否在视野内。使用方法非常简单,只需要将要计算的物体放到空物体的子物体下即可
文章来源地址https://www.toymoban.com/news/detail-514493.html
using UnityEngine;
public class TestBounds : MonoBehaviour
{
private void Start()
{
var bounds = CalculateBounds(gameObject);
var boxCollider = gameObject.GetComponent<BoxCollider>();
if (boxCollider == null)
{
boxCollider = gameObject.AddComponent<BoxCollider>();
}
if (boxCollider)
{
boxCollider.center = bounds.center - transform.position;
boxCollider.size = bounds.size;
}
}
private Bounds CalculateBounds(GameObject pObj)
{
Renderer[] renderers = pObj.GetComponentsInChildren<Renderer>();
if (renderers.Length > 0)
{
Bounds bounds = renderers[0].bounds;
for (int i = 1; i < renderers.Length; i++)
{
bounds.Encapsulate(renderers[i].bounds);
}
return bounds;
}
else
{
return new Bounds();
}
}
}
文章来源:https://www.toymoban.com/news/detail-514493.html
到了这里,关于unity给子物体动态添加boxcollider(碰撞盒)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!