我有一个脚本,通过使用鼠标中键控制Unity中正交相机平移运动。在世界中心(0,0,0)的空GameObject(例如名字MainCamPivot(请看图片))作为相机的父母。相机本身具有Vector3(45f,225f,0f)的局部欧拉角。我可以平移/在X很好地移动相机和Y轴,与此脚本(安装到照相机):Limit Unity正交相机平移运动
public float panSpeed = 0.05f;
private Vector3 lastMousePos;
void Start()
{
lastCamPos = transform.position;
}
void Update()
{
if(Input.GetMouseButtonDown(2))
{
lastMousePos = Input.mousePosition;
}
if(Input.GetMouseButton(2))
{
Vector3 touchDeltaPosition = Input.mousePosition - lastMousePos;
transform.Translate(-touchDeltaPosition.x * panSpeed, -touchDeltaPosition.y * panSpeed, 0);
lastMousePos = Input.mousePosition;
}
// To limit the orthographic camera panning movement:
if(transform.localPosition.x < 10f) transform.localPosition = new Vector3(10f, transform.localPosition.y, 16.3f);
if(transform.localPosition.x > 23f) transform.localPosition = new Vector3(23f, transform.localPosition.y, 16.3f);
if(transform.localPosition.y < 15f) transform.localPosition = new Vector3(transform.localPosition.x, 15f, 16.3f);
if(transform.localPosition.y > 28f) transform.localPosition = new Vector3(transform.localPosition.x, 28f, 16.3f);
}
为了限制相机摇摄运动,我设置为X一些限制和的Y位置相机。问题是相机的Z位置值总是变化,因此设置相机的Z位置将会使相机锅固定位置/移动斜像下面的图片:
什么最好的方法来正确限制拼写正确的摄像机移动,使用脚本? (如下列图示)
2015-12-22
Bayu
+0
删除我的答案,我意识到你已经在玩当地的位置。 –
+0
你解决了这个问题吗? 尝试使用两个支点,一个支持脚本,另一个支持反映z更改。我为我的一个项目做了这样的事情。 –