根据实际玩家精灵计算 BoxCollider2D

问题描述

首先我的初始情况:我正在做一个 2D 项目。播放器由一个 spritesheet 组成并具有小动画。动画并不总是像播放器的空闲形式一样大。它在宽度和高度上稍微缩放。

现在我想知道是否可以根据每个精灵的实际大小来计算 BoxCollider2D。

这里有人能就如何解决这种情况给我一些指导吗?

最好的问候:)

解决方法

假设您使用的是 SpriteRenderer

您可以通过 SpriteRenderer.Sprite 访问当前的 Sprite。这使您可以访问 Sprite.rect 属性以及 Sprite.pixelsPerUnit 属性。

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

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

感谢@derHugo 和@Chipinators 的回答, 我使用了 derHugo 的建议,它立即奏效了。 BoxCollider2D 也是根据动画完全独立计算的。对于一个/两个动画,我只需要稍微修饰一下。

再次感谢您的回答。 ;)