【发布时间】:2019-04-10 09:46:06
【问题描述】:
我有一个负责控制角色的类。但是这个类中的代码不起作用。
private ObjectSequence Patrocle;
public bool moving = false;
private float moveAxis = 0;
public float accelaration = 0.1f;
public float moveSpeed = 10f;
public Rigidbody2D rBody;
private Dictionary<KeyCode, bool> pressed = new Dictionary<KeyCode, bool>();
void Start()
{
pressed.Add(KeyCode.LeftArrow, false);
pressed.Add(KeyCode.RightArrow, false);
Patrocle = GetComponent<ObjectSequence>();
}
private void FixedUpdate()
{
moving = pressed[KeyCode.LeftArrow] ^ pressed[KeyCode.RightArrow];
if (moving)
{
moveAxis += pressed[KeyCode.RightArrow] ? accelaration : (accelaration * -1f);
moveAxis = Mathf.Clamp(moveAxis, -1, 1);
rBody.velocity = new Vector2(moveAxis * moveSpeed, rBody.velocity.y);
}
else
moveAxis = 0f;
}
它应该向右移动,但它不会让任何东西缺席。有什么问题?
【问题讨论】:
-
如何检查是否按下了左箭头或右箭头?在这种情况下,它们总是错误的。