在Unity 3D中夹住物体的X位置。

问题描述 投票:1回答:2

这是我在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'的值类型返回值。考虑将该值存储在一个临时变量中。

我怎样才能夹紧我的对象?

unity3d monodevelop ngui
2个回答
3
投票

Unity在这方面很笨,所以需要一点变通的办法。试试这个。

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

0
投票

你不能直接访问x值,这里有一个变通方法。

transform.position = new Vector3(Mathf.Clamp(transform.position.x, -2.0f, 2.0f), transform.position.y, transform.position.z)
© www.soinside.com 2019 - 2024. All rights reserved.