Camera 使基于鼠标的游戏适应触摸控制

Camera 使基于鼠标的游戏适应触摸控制,camera,touch,unity3d,sliding,Camera,Touch,Unity3d,Sliding,我开发了一个基本的游戏,在这个游戏中,可以使用WASD键在地图上移动相机,我想调整基本的按钮动作以在触摸屏上工作,但我不确定如何开始 这是我目前用于移动相机的c代码 if (Input.anyKey && allowInput) { moved = false; if (Input.GetKey(KeyCode.UpArrow) || Input.GetKey(KeyCode.W)) { moved = true; Translate(Ve

我开发了一个基本的游戏,在这个游戏中,可以使用WASD键在地图上移动相机,我想调整基本的按钮动作以在触摸屏上工作,但我不确定如何开始

这是我目前用于移动相机的c代码

if (Input.anyKey && allowInput)
    {
        moved = false;
        if (Input.GetKey(KeyCode.UpArrow) || Input.GetKey(KeyCode.W)) { moved = true; Translate(Vector3.forward * Time.deltaTime * speed); }
        if (Input.GetKey(KeyCode.DownArrow) || Input.GetKey(KeyCode.S)) { moved = true; Translate(Vector3.back * Time.deltaTime * speed);}
        if (Input.GetKey(KeyCode.LeftArrow) || Input.GetKey(KeyCode.A)) { moved = true; Translate(Vector3.left * Time.deltaTime * speed);}
        if (Input.GetKey(KeyCode.RightArrow) || Input.GetKey(KeyCode.D)) { moved = true; Translate(Vector3.right * Time.deltaTime * speed); }

if (OnCamManuallyMoved != null && moved)
        {
            Vector3 pos = tr.position;
            if (pos.x < min_xz.x) pos.x = min_xz.x;
            if (pos.x > max_xz.x) pos.x = max_xz.x;
            if (pos.z < min_xz.y) pos.z = min_xz.y;
            if (pos.z > max_xz.y) pos.z = max_xz.y;
            tr.position = pos;

            OnCamManuallyMoved(); // call callback
        }
    }
if(Input.anyKey&&allowInput)
{
移动=假;
if(Input.GetKey(KeyCode.UpArrow)| | Input.GetKey(KeyCode.W)){moved=true;Translate(Vector3.forward*Time.deltaTime*speed);}
if(Input.GetKey(KeyCode.DownArrow)| Input.GetKey(KeyCode.S)){moved=true;Translate(Vector3.back*Time.deltaTime*speed);}
if(Input.GetKey(KeyCode.LeftArrow)| | Input.GetKey(KeyCode.A)){moved=true;Translate(Vector3.left*Time.deltaTime*speed);}
if(Input.GetKey(KeyCode.RightArrow)| | Input.GetKey(KeyCode.D)){moved=true;Translate(Vector3.right*Time.deltaTime*speed);}
if(OnCamManuallyMoved!=null&&moved)
{
矢量3位置=tr位置;
如果(位置xmax_xz.x)pos.x=max_xz.x;
如果(pos.zmax_xz.y)pos.z=max_xz.y;
tr.position=pos;
OnCamManuallyMoved();//调用回调
}
}

我想到了三个选项:屏幕上的按钮、屏幕边缘的“热点”,或者将任何长触拖动解释为移动相机的愿望。如果你不担心多点触控,
Input.mousePosition
可以作为玩家手指位置的别名(当他们不触碰屏幕时为零)。我正试图通过长距离触控拖动来拖动游戏摄像头,因为我计划添加多点触控,以适应游戏需要的额外按钮/命令。