我有一个我试图调整大小的角色。为了保持一致性,我将默认的空闲动画精灵放在精灵表中较大的精灵旁边。当我在动画窗口中放入较大的精灵(与默认的正常大小动画分开的动画)时,我的角色在空中被冻结,无法触及地面。对于较大的精灵来说,对撞机是编辑的,所以我知道它并不是一个卡在地面上的盒式对撞机。我甚至没有直接在动画窗口中调整它(因为我尝试了它并获得了相同的结果)。有人知道发生了什么吗?
答案 0 :(得分:0)
我明白了。我无法按照我尝试的方式工作,而是用脚本完成。我提前知道你可以用transform.localScale = new Vector2 (float, float);
来增加精灵的大小,但它对我不起作用,因为当我这样做时,由于我的翻转代码,我的x刻度将面向相反的方向。所以我创建了两个名为scaleX
和scaleY
的新浮点数,并为它们赋值。然后我的代码行看起来像这样,
transform.localScale = new Vector2(transform.localScale * scaleX,
transform.localScale * scaleY);
对于将来可能遇到同样问题的任何人。我正在使用挂载系统。
答案 1 :(得分:0)
@joe-clark 的建议也对我有用。对我来说,这是在为左右设置动画时发生的,而我尝试调整播放器的大小,将默认精灵设置为空闲精灵。
这是我之前的代码:
if (movementX > 0) {
// Face right
transform.localScale = new Vector3(1f, 1f, 1f);
} else if (movementX < 0) {
// Face left
transform.localScale = new Vector3(-1f, 1f, 1f);
}
这是我修改后的代码,它修复了它:
if (movementX > 0) {
// Face right
transform.localScale = new Vector3(Mathf.Abs(transform.localScale.x), transform.localScale.y, transform.localScale.z);
} else if (movementX < 0) {
// Face left
transform.localScale = new Vector3(-1 * Mathf.Abs(transform.localScale.x), transform.localScale.y, transform.localScale.z);
}