Unity3d 根据实际的玩家精灵计算BoxCollizedR2D

Unity3d 根据实际的玩家精灵计算BoxCollizedR2D,unity3d,sprite,calculation,sprite-sheet,collider,Unity3d,Sprite,Calculation,Sprite Sheet,Collider,首先,我的初始情况是:我正在从事一个2D项目。该播放器由一个精灵表和小动画组成。动画并不总是与播放器的空闲形式一样大。它的宽度和高度都有一点不同 现在我想知道是否有可能根据每个精灵的实际大小来计算BoxCollizedR2D 这里有人能给我一些关于如何解决这种情况的指导吗 致以最诚挚的问候:)假设您正在使用SpriteRender: 您可以通过spriteender.Sprite访问当前精灵。这使您可以访问Sprite.rect属性以及Sprite.pixelsPerUnit属性 使用这两个属性

首先,我的初始情况是:我正在从事一个2D项目。该播放器由一个精灵表和小动画组成。动画并不总是与播放器的空闲形式一样大。它的宽度和高度都有一点不同

现在我想知道是否有可能根据每个精灵的实际大小来计算BoxCollizedR2D

这里有人能给我一些关于如何解决这种情况的指导吗


致以最诚挚的问候:)

假设您正在使用
SpriteRender

您可以通过
spriteender.Sprite
访问当前精灵。这使您可以访问
Sprite.rect
属性以及
Sprite.pixelsPerUnit
属性

使用这两个属性,我们可以通过执行以下操作来更新BoxCollizedR2D的大小:

private void UpdateBoxCollider(BoxCollider2D collider, Sprite newSprite)
{
    collider.size = newSprite.rect.size / newSprite.pixelsPerUnit;
}

感谢您的回答@derHugo和@Chipinators, 我采纳了德胡戈的建议,很快就奏效了。BoxCollider2D也完全独立地根据动画进行计算。有一两个动画,我只需要稍微润色一下

再次感谢你的回答

您可以使用一个按钮,并随动画一起更新形状(
)。或者你使用一个,让它自动“合并”多个精灵的碰撞器到一个大的碰撞器