作业帮 > 综合 > 作业

unity3D中,限制物体移动范围时出错

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/09/29 05:29:06
unity3D中,限制物体移动范围时出错
我获取当前物体的位置,判断当这个位置小于一定值的时候才能移动,但是运行时移动到边界就开始反方向移动了,
void Update () {
float x = transform.position.x;
float y = transform.position.y;
if (Input.GetKey(KeyCode.W))
if (Input.GetKey(KeyCode.A))
{
if (x > -10000)
{
this.transform.Translate(Vector3.right * Time.deltaTime * -RotateSpeed);
}
}
if (Input.GetKey(KeyCode.D))
{
if (x < 10000)
{
this.transform.Translate(Vector3.right * Time.deltaTime * RotateSpeed);
}
}
}
unity3D中,限制物体移动范围时出错
if (x > -10000)
{
this.transform.Translate(Vector3.right * Time.deltaTime * -RotateSpeed);
}
大于-1000时该物体会移动
再问: 大哥。。。代码我写的肯定知道什么意思啊,麻烦看清楚我的问题啊
再答: 不好意思没看清楚你的问题,也没有看懂你的代码,没有明白你什么意思
再问: 额。。。。。。那个,我设置了,当按下键盘上的A的时候,判定物体的X轴坐标是否小于-10000,当小于时,物体往左边移动,大于时就不移动,但是现在当按住A的时候向左移动到-10000的位置的时候又会朝右边移动了
再答: // Update is called once per frame void Update() { if (transform.position.x < -10) { transform.position= new Vector3(-9.9f, transform.position.y, transform.position.z); } if (transform.position.x > 10) { transform.position=new Vector3(9.9f, transform.position.y, transform.position.z); } if (Input.GetKey(KeyCode.A)) { transform.Translate(new Vector3(-1, 0, 0)* 2*Time.deltaTime); } if (Input.GetKey(KeyCode.D)) { transform.Translate(new Vector3(1, 0, 0) * 2 * Time.deltaTime); } }