在Unity中翻转2D精灵时出现问题

问题描述 投票:0回答:1

我有一个可以左右移动和跳跃的 2D 角色。角色的原始精灵是从左到右(头朝右方向)。当角色向后移动时,它会将精灵转向左侧,但当发生这种情况时,负责碰撞的盒子碰撞器(绿色盒子)会与角色错位。我需要当精灵翻转时,它保持在同一个位置而不离开盒子碰撞器。如何解决这个问题?注意:我正在使用 SpriteRenderer.flipX 属性来翻转精灵。

普通精灵

翻转精灵

(请注意,绿色框,即碰撞器,与精灵有点不对齐)

我已经尝试将

transform.localScale.x
乘以 -1,但这又产生了另一个问题。

c# unity-game-engine game-engine 2d-games
1个回答
0
投票

对我来说,源图像的可见内容似乎没有在透明区域内正确居中,所以我建议先检查一下。

我在 Godot 中重现了这个问题,以便更好地理解我在说什么。

  1. 精灵在视觉上与碰撞体的中心对齐:https://i.sstatic.net/JHIaCb2C.png
  2. 但是如果我水平翻转它就会突然移动:https://i.sstatic.net/GWxTDVQE.png
  3. 现在看看实际的图像边界 - 猫明显向右移动:https://i.sstatic.net/BQcnB3zu.png

您要么必须修改图像本身,要么尝试调整枢轴,正如@hijinxbassist 在评论部分中已经提到的那样。第二个选项对我来说不起作用。

© www.soinside.com 2019 - 2024. All rights reserved.