Getting width of 2d object in unity 3d

后端 未结 2 833
佛祖请我去吃肉
佛祖请我去吃肉 2021-02-06 09:36

I\'m using the new 2d tools in Unity3d, and I have a game object with a 2d polygonal collider attached to it. I just want to understand how to get the width of this object! Why

相关标签:
2条回答
  • 2021-02-06 10:01

    There are two ways(at least) to get this.

    • The 1st is to user Renderer.bounds;
    • The 2nd is to use Collider.bounds

    var renderer = gameObject.GetComponent<Renderer>();
    int width = renderer.bounds.size.x;
    

    or


    var collider2D= gameObject.GetComponent<Collider2D>();
    var collider = collider2D.collider; //Edit, thanks to Arttu's comment!
    int width = collider.bounds.size.x;
    

    For your 2D case, the former might be more appropriate.

    0 讨论(0)
  • 2021-02-06 10:15

    According to this post, looks like 2D colliders indeed should have the missing bounds variable, and it will be made available in a future release.

    So looks like for now you'll have to make do with a workaround. One could be to add a Sprite Renderer component to your GameObject, add a dummy image to it and set it disabled so it's never visible. Then you can use gameObject.renderer.bounds to get the sprite bounds.

    0 讨论(0)
提交回复
热议问题