gpt4 book ai didi

c# - 如何禁用鼠标单击时的对象控制?

转载 作者:太空宇宙 更新时间:2023-11-03 15:30:25 25 4
gpt4 key购买 nike

当用户移动鼠标指针然后单击时,它是 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;
}
}

最佳答案

根据我的评论跟进。鼠标点击出现后退出该功能即可。真的没有比这更多的了。

public class Ball : MonoBehaviour {

Rigidbody2D body;
float mousePosInBlocks;
bool wasDropped = false;

void Start () {
body = GetComponent<Rigidbody2D> ();
body.isKinematic = true;
}

void Update () {
//Don't do anything after the ball is dropped.
if(wasDropped)
return;

if (Input.GetMouseButtonDown (0)) {
body.isKinematic = false;
wasDropped = true;
}

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;
}
}

关于c# - 如何禁用鼠标单击时的对象控制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33945683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com