【发布时间】:2019-10-16 21:47:33
【问题描述】:
我的这段代码很好用,可以在局部 X 轴(游戏对象的 X 轴)上移动一个对象
var vel = rb2d.velocity;
if (Input.GetKey(moveLeft)) {
rb2d.velocity = -transform.right * speed;
}
else if (Input.GetKey(moveRight)) {
rb2d.velocity = transform.right * speed;
}
else {
rb2d.velocity = transform.right * 0;
}
但是我还需要限制它在局部 X 轴上的移动,但似乎无法弄清楚这一点。到目前为止,我有这个:
var pos = transform.position;
if (pos.x > boundX) {
pos.x = boundX;
}
else if (pos.x < -boundX) {
pos.x = -boundX;
}
transform.position = pos;
如果本地 X 轴与世界 X 轴对齐,这会很好,但显然我希望它在本地 X 轴上工作,而不是游戏对象。我似乎无法弄清楚如何将世界点转换为本地点。我一直在搞乱InverseTransformPoint,但无法让它工作。
【问题讨论】: