在人物Move()方法中使用了Sprite Renderer组件,对人物进行了X轴翻转。但是,在后面进行攻击判定开发的时候,发现判定区域并不会进行翻转
Move()方法内Sprite Renderer
的翻转代码
// 人物翻转()
if (xDirection > 0)
{
spriteRenderer.flipX = false;
}
else if (xDirection < 0)
{
spriteRenderer.flipX = true;
}
对人物进行翻转时,能够发现人物攻击的判定区域并没有翻转
攻击判定区域的绘制是在人物Player的子集中
但是对Player进行翻转,并没有得到想象中的效果
不过发现对人物进行Transform的Scale翻转,能够使攻击判定区域也进行翻转
将Transform Scale的X轴调整为-1
能够发现,攻击判定区域也随时发生翻转
伪代码如下
int faceDir = (int)transform.localScale.x;
if (inputDirection.x > 0)
{
faceDir = 1;
}
else if (inputDirection.x < 0)
{
faceDir = -1;
}
// 人物翻转
transform.localScale = new Vector3(faceDir, 1, 1);
至于为什么会有这样的差别,本人暂时也不清楚,后续再对其进行更深入的研究