以编程方式将BoxCollider大小设置为GameObject大小

时间:2015-05-04 07:37:33

标签: unity3d

我在运行时创建一个游戏对象,然后添加一个BoxCollider2d组件,如下所示:

GameObject card = new GameObject("card");
card.AddComponent<BoxCollider2D>();
card.GetComponent<BoxCollider2D>.size = new Vector2(?);

在新的vector2(?)中,我需要一个值,使得对撞机大小与卡对象大小完全相同。卡片有精灵所以我试试这个:

 card.AddComponent<SpriteRenderer>();
 card.GetComponent<SpriteRenderer>().sprite = sprite

所以我尝试这样吗?

int cardWidth = (int)card.GetComponent<SpriteRenderer>().sprite.rect.width;
int cardHeight = (int)card.GetComponent<SpriteRenderer>().sprite.rect.height;

然后:

card.GetComponent<BoxCollider2D>().size = new Vector2(cardWidth, cardHeight);

这是我的方式我想将对撞机的大小设置为与卡对象完全相同,但它不起作用。所以请告诉我一种方法,我可以设置与卡片对象相同的盒式对撞机的大小。

1 个答案:

答案 0 :(得分:1)

最后我找到了解决方案。每个sprit的with和height是256px,我的单位是128所以256/128=2现在我的vector2大小是:

card.GetComponent<BoxCollider2D>.size = new Vector2(2,2);

它与对象大小完全相同