unity给子物体动态添加boxcollider(碰撞盒)

这篇具有很好参考价值的文章主要介绍了unity给子物体动态添加boxcollider(碰撞盒)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

unity给子物体动态添加boxcollider(碰撞盒)

在工作中遇到过给物体拍照截图的功能,由于物体是动态加载并且大小不一,但是要求拍的照片正好被物体填充,因此需要动态计算物体大小,从而进行调整,这种方法也可以进行相机检测物体是否在视野内。使用方法非常简单,只需要将要计算的物体放到空物体的子物体下即可
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();
        }
    }
}

到了这里,关于unity给子物体动态添加boxcollider(碰撞盒)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity3d 物体不动,碰撞触发不了的情况

    问题: 有一种情况,主角带刚体,主角站着不动。玩家站在陷阱上,陷阱的碰撞体 Toggle 之后, OnCollisionEnter 触发不了。 解决:盲猜玩家组件上才有刚体,而碰撞检测是刚体运动的时候,才进行检测的。

    2024年02月06日
    浏览(39)
  • unity3D中用Mesh Collider创建的碰撞体与物体模型位置有偏差的解决方法

    1.相信很多小伙伴在使用Mesh Collider时都遇到过下面这个情况: 1.解决方法:在这个对象Alpaca下面新建一个空对象Collider,我们把Mesh Collider添加到这个空对象上面就可以调整碰撞体的位置了  3.完成效果:

    2024年02月13日
    浏览(33)
  • 【Unity开发】给LineRenderer添加碰撞体(使用MeshCollider)

    在这里选择使用MeshCollider组件给Line添加碰撞体。 首先创建Line的Mesh 通过查阅Unity官方文档我们可以得知,使用BakeMesh函数可以获取到Line的Mesh。 创建MeshCollider组件并添加Mesh信息

    2024年02月15日
    浏览(29)
  • Unity | 渡鸦避难所-2 | 搭建场景并添加碰撞器

    上期中在导入一系列的商店资源包后,Assets 目录已经变的混乱不堪 开发过程中,随着资源不断更新,遵循一定的项目结构和设计规范是非常必要的。这可以增加项目的可读性、维护性、扩展性以及提高团队协作效率 这里先做下简单的目录结构调整:资源包放入 ArtRes 目录,

    2024年02月04日
    浏览(27)
  • Unity 物体添加重力

    给物体添加 Rigidbody 组件  重力选项,当不选择时,可以发生碰撞时可以模拟太空的情景  is Kinematic选项,取消勾选时,则代表不受重力的影响,当拿一个其他受影响的物体去碰撞时,是碰不动的,认为它是固定的 碰撞检测 ①离散的:节省性能,不会连续检测,如果有高速物

    2024年02月08日
    浏览(27)
  • Unity --- 给物体添加重力

    1.一个物体如果要受到重力的影响的话,需要挂载Rigid Body 刚体组件 从上往下分别是:质量,阻力,角阻力,使用重力,确定刚体是否接受动力学模拟 ,插值,碰撞检测,约束(冻结),信息 1.这里面的阻力指的是物体运动的时候受到的阻力(包括空气阻力和摩擦力) 2.角阻

    2023年04月08日
    浏览(34)
  • 【Unity VR开发】结合VRTK4.0:添加碰撞忽略器

               最远的旅行,是从自己的身体到自己的心,是从一个人的心到另一个人的心。坚强不是面对悲伤不流一滴泪,而是擦干眼泪后微笑面对以后的生活。           模块化提供了一种允许两个或者多个对象忽略彼此碰撞的方法: Mutators.ColliisonIgnorer 。         步骤一

    2023年04月25日
    浏览(33)
  • unity添加刚体后,穿过物体坠落

    至于原因,好像是两个实体的东西才能碰撞,如果只给球设置一个刚体(rigidbody),别的没设置,就好像是除了球之外都是虚拟的,自然就被球给忽视了。再把地面也设置一个刚体,这样它俩都是实体了,自然就会产生碰撞,相互阻拦。 给穿透的物体添加一个碰撞就好了,比

    2024年02月11日
    浏览(29)
  • Unity 给物体添加多个标签(有源码)

    为了弥补Unity Tag只能添加一个标签的缺陷,特地写了一个组件Tag,和一个库TagManager用于控制与管理组件Tag。组件与库在同一个仓库内,仓库的下载地址会放在下面,可以自行下载并添加到项目中。就当作普通的脚本使用即可。 这个库简单易用,哪怕你是新手也可以轻松驾驭

    2023年04月27日
    浏览(33)
  • 【Unity3D】使用 FBX 格式的外部模型 ( 向 Unity 中添加 FBX 模型 | 向 Scene 场景中添加 FBX 模型 | 3D 物体渲染 | 3D 物体材质设置 )

    Unity 中使用的 3D 模型格式为 FBX , 使用如下建模软件 可制作该类型模型 : 3Dmax Maya ZBrush Cinema4D Blender 建模完成后 , 将 3D 模型导出为 FBX ( .fbx ) 格式 即可在 Unity 中使用 ; 在 Project 文件窗口 中的 Asstes 目录 下 , 创建一个模型目录 Models , 将 模型文件直接从文件系统中拖到该目录中

    2023年04月15日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包