Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 统一,脚本拖动相机_C#_Unity3d - Fatal编程技术网

C# 统一,脚本拖动相机

C# 统一,脚本拖动相机,c#,unity3d,C#,Unity3d,我在XY平面上有2D网格。我有下面的脚本,它在平面上移动摄影机,摄影机从(0,0,-10)开始 但我一辈子都不知道该改变什么,如果我向右拖动鼠标,相机就会向左移动,反之亦然。同样,如果我向上拖动鼠标,我想向下移动相机,反之亦然。救命啊 谢谢你的回复 -DrOmega.您需要对MouseMove向量的x求反,以仅翻转x移动: MouseMove = new Vector3(-MouseMove.x, MouseMove.y, MouseMove.z); 您需要对MouseMove向量的x求反,以

我在XY平面上有2D网格。我有下面的脚本,它在平面上移动摄影机,摄影机从(0,0,-10)开始

但我一辈子都不知道该改变什么,如果我向右拖动鼠标,相机就会向左移动,反之亦然。同样,如果我向上拖动鼠标,我想向下移动相机,反之亦然。救命啊

谢谢你的回复


-DrOmega.

您需要对MouseMove向量的x求反,以仅翻转x移动:

MouseMove = new Vector3(-MouseMove.x, MouseMove.y, MouseMove.z);

您需要对MouseMove向量的x求反,以仅翻转x移动:

MouseMove = new Vector3(-MouseMove.x, MouseMove.y, MouseMove.z);
这里有一个简单的解决方法。如果要翻转x和y,请将“-(MouseMove-MouseStart)”替换为“+(MouseMove-MouseStart)”


这里有一个简单的解决方法。如果要翻转x和y,请将“-(MouseMove-MouseStart)”替换为“+(MouseMove-MouseStart)”

您的代码当前做什么?拖动时以错误的方式移动?当我向右拖动鼠标时,它会向右移动摄影机,但我想反转。您的代码当前做什么?拖动时移动方向错误?当我向右拖动鼠标时,相机会向右移动,但我想反转。
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);
    }
}
}