【发布时间】:2020-01-11 01:11:47
【问题描述】:
我在 XY 平面上有二维网格。我有以下脚本将相机移动到平面上,相机从 (0,0,-10) 开始。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DragMap : MonoBehaviour {
private float dist;
private Vector3 MouseStart;
private Vector3 derp;
void Start () {
dist = transform.position.z; // Distance camera is above map
}
void Update () {
if (Input.GetMouseButtonDown (2)) {
MouseStart = new Vector3(Input.mousePosition.x, Input.mousePosition.y, dist);
MouseStart = Camera.main.ScreenToWorldPoint (MouseStart);
MouseStart.z = transform.position.z;
}
else if (Input.GetMouseButton (2)) {
var MouseMove = new Vector3(Input.mousePosition.x, Input.mousePosition.y, dist);
MouseMove = Camera.main.ScreenToWorldPoint (MouseMove);
MouseMove.z = transform.position.z;
transform.position = transform.position - (MouseMove - MouseStart);
}
}
}
但我终其一生都无法弄清楚要改变什么,所以如果我向右拖动鼠标,相机就会向左移动,反之亦然。同样,如果我向上拖动鼠标,我想向下移动相机,反之亦然。帮助!
感谢您的任何回复。
-欧米茄博士。
【问题讨论】:
-
你的代码目前是做什么的?拖动时移动方向错误?
-
当我向右拖动鼠标时,它会向右移动相机,但我想反转它。