在统一3d中夹紧物体的X位置

时间:2013-04-16 07:23:59

标签: unity3d monodevelop ngui

这是我在Unity 3d中的代码

moveDirection = Vector3.forward + new Vector3(Input.acceleration.x * 0.3f, 0, 0);   

// transform.position.x = Mathf.Clamp(transform.position.x, -2.0f, 2.0f);

transform.Translate(moveDirection * Time.deltaTime *9); 

向前移动的物体。我想夹住它的x位置。

transform.position.x = Mathf.Clamp(transform.position.x, -2.0f, 2.0f);

给了我

错误CS1612:无法修改`UnityEngine.Transform.position'的值类型返回值。考虑将值存储在临时变量

我如何夹住物体?

2 个答案:

答案 0 :(得分:3)

Unity在这方面非常愚蠢,因此需要一些解决方法。试试这个:

Vector3 tmpPos = transform.position;
tmpPos.x = Mathf.Clamp(tmpPos.x, -2.0f, 2.0f);
transform.position = tmpPos;

答案 1 :(得分:0)

您无法直接访问x值,这是一种解决方法:

transform.position = new Vector3(Mathf.Clamp(transform.position.x, -2.0f, 2.0f), transform.position.y, transform.position.z)