【发布时间】:2015-11-26 19:18:30
【问题描述】:
当用户移动鼠标指针然后单击时,它是 x 轴对象。对象在相同的鼠标指针位置落在地面上。但是当物体下落时,如果用户移动指针的位置,它也会影响物体下落的位置。我只希望对象落在用户单击的那个位置,并且在落在地上时不控制对象。 代码:
public class Ball : MonoBehaviour {
Rigidbody2D body;
float mousePosInBlocks;
void Start () {
body = GetComponent<Rigidbody2D> ();
body.isKinematic = true;
}
void Update () {
if (Input.GetMouseButtonDown (0)) {
body.isKinematic = false;
}
Vector3 ballPos = new Vector3 (0f, this.transform.position.y, 0f);
mousePosInBlocks = Camera.main.ScreenToWorldPoint(Input.mousePosition).x;
//not go outside from border
ballPos.x = Mathf.Clamp (mousePosInBlocks, -2.40f, 2.40f);
body.position = ballPos;
}
}
【问题讨论】:
-
在您的脚本中添加一个简单的
bool,例如在用户单击鼠标左键后设置为bool hasClicked的true。如果hasClicked == true,请不要再更改body.position。或者,依赖Rigidbody的isKinematic属性,您在左键单击后已将其设置为true。 -
@MaximilianGerhardt 你能在你的答案中用上面的脚本写这段代码吗