【问题标题】:Calculate BoxCollider2D based on the actual player sprite根据实际玩家精灵计算 BoxCollider2D
【发布时间】:2021-06-02 20:19:57
【问题描述】:
首先是我最初的情况:我正在做一个 2D 项目。播放器由一个 spritesheet 组成,并具有小动画。动画并不总是与玩家的空闲形式一样大。它在宽度和高度上稍微缩放。
现在我想知道是否可以根据每个精灵的实际大小来计算 BoxCollider2D。
这里有人可以就如何解决这种情况给我一些指导吗?
最好的问候:)
【问题讨论】:
标签:
unity3d
sprite
calculation
sprite-sheet
collider
【解决方案1】:
假设您使用的是SpriteRenderer:
您可以通过SpriteRenderer.Sprite 访问当前的Sprite。这使您可以访问Sprite.rect 属性以及Sprite.pixelsPerUnit 属性。
使用这两个属性,我们可以通过以下方式更新 BoxCollider2D 的大小:
private void UpdateBoxCollider(BoxCollider2D collider, Sprite newSprite)
{
collider.size = newSprite.rect.size / newSprite.pixelsPerUnit;
}
【解决方案2】:
感谢@derHugo 和@Chipinators 的回答,
我使用了 derHugo 的建议,它马上就奏效了。 BoxCollider2D 也完全独立地根据动画进行计算。使用一/两个动画,我只需要稍微润色一下。
再次感谢您的回答。 ;)