【问题标题】:automatically refit boxcollider2D upon sprite change精灵改变时自动改装 boxcollider2D
【发布时间】:2014-10-24 19:04:27
【问题描述】:

我有一个带有 sprite 渲染器和 boxcollider2D 的预制件,用于制作游戏中的子弹。

我为每种类型的子弹使用的 sprite 具有不同的大小,因此,当我实例化具有与我的预制中的通用子弹不同的 sprite 大小的子弹时,boxcollider 并不总是与 sprite 大小匹配。

我注意到在我的游戏对象中添加一个 boxcollider 时,它会自动适应精灵。有什么方法可以从脚本中调用这个 autofit 吗?或者唯一的方法是在运行时添加碰撞器?

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    您可以像这样将碰撞器自动调整到精灵的大小:

    renderer.bounds.size
    

    这会给你精灵的大小。

    然后你可以相应地制作当前对撞机的大小:

     Vector3 v = renderer.bounds.size; 
    
     BoxCollider2D b = collider2D as BoxCollider2D;
    
     b.size = v;
    

    【讨论】:

    • 谢谢,这正是我所需要的。为了更好地衡量,我应该补充一点,如果比例是 (1,1,1) 以外的任何其他值,您应该将边界大小除以对象的比例,以使对撞机适合精灵大小。
    猜你喜欢
    • 2022-07-26
    • 1970-01-01
    • 2018-08-20
    • 1970-01-01
    • 2017-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多