Android Unity上的摄像机运动

Android Unity上的摄像机运动,android,camera,unity3d,Android,Camera,Unity3d,我在web项目中使用正交摄影机,这是允许我移动摄影机的代码: if (Input.GetKey(KeyCode.UpArrow) && Camera.main.transform.position.y < CameraYLimitUp)//Up Camera Mvt { transform.Translate(-Vector3.up * Time.deltaTime * 20); } if (Input.GetKey(KeyCode.Do

我在web项目中使用正交摄影机,这是允许我移动摄影机的代码:

 if (Input.GetKey(KeyCode.UpArrow) && Camera.main.transform.position.y < CameraYLimitUp)//Up Camera Mvt
        { transform.Translate(-Vector3.up * Time.deltaTime * 20); }

        if (Input.GetKey(KeyCode.DownArrow) && Camera.main.transform.position.y > CameraYLimitDown)//Down Camera Mvt
        { transform.Translate(Vector3.up * Time.deltaTime * 20); }

        if (Input.GetKey(KeyCode.LeftArrow) && Camera.main.transform.position.x > CameraXLimitLeft)//Left Camera Mvt
        { transform.Translate(Vector3.right * Time.deltaTime * 20); }

        if (Input.GetKey(KeyCode.RightArrow) && Camera.main.transform.position.x < CameraXLimitRight)//Right Camera Mvt
        { transform.Translate(Vector3.left * Time.deltaTime * 20); }
if(Input.GetKey(KeyCode.UpArrow)和&Camera.main.transform.position.yCameraYLimitDown)//下摄像机Mvt
{transform.Translate(Vector3.up*Time.deltaTime*20);}
if(Input.GetKey(KeyCode.LeftArrow)&&Camera.main.transform.position.x>CameraXLimitLeft)//左摄像机Mvt
{transform.Translate(Vector3.right*Time.deltaTime*20);}
if(Input.GetKey(KeyCode.RightArrow)和&Camera.main.transform.position.x
现在我正在尝试将项目转换为Android,我正在更改摄像头的脚本,我触摸dvce屏幕,我可以根据我手指的移动来移动摄像头,但是当我想限制摄像头在左右上下移动时,就像web player版本一样,当我添加这些条件时,它不起作用[Camera.main.transform.position.yCameraYLimitDown],[Camera.main.transform.position.x>CameraXLimitLeft],[Camera.main.transform.position.x
public Vector2 startPos;
public Vector2 endPos;
public bool fingerHold = false;

private float CameraYLimitUp = 18;
private float CameraYLimitDown = -5f;
private float CameraXLimitRight = 21;
private float CameraXLimitLeft = -21;

   if(Input.touchCount > 0)
    {                      
    Touch touch = Input.GetTouch(0);
    if(touch.phase == TouchPhase.Began)
    {      
        startPos = touch.position;             
        fingerHold = true;
    }
    else if(touch.phase == TouchPhase.Moved)
    {  
        endPos = touch.position;               
    }
    else if(touch.phase == TouchPhase.Ended)
    {  
        fingerHold = false;                    
    }
}
if(fingerHold)
{

    float deltaX = endPos.x - startPos.x;      
    float deltaY = endPos.y - startPos.y;      
    bool horizontal = false;

    if(Mathf.Abs (deltaX) > Mathf.Abs (deltaY)) 
        horizontal = true;                      

    if(horizontal){
        if (deltaX < 0 && Camera.main.transform.position.x < CameraXLimitRight)
        {
            transform.Translate(Vector3.right * Time.deltaTime * 25);
        }
        else if (deltaX > 0 && Camera.main.transform.position.x > CameraXLimitLeft)

            transform.Translate(Vector3.left * Time.deltaTime * 25);
    }
    else{ 
        if (deltaY < 0 && Camera.main.transform.position.y < CameraYLimitUp)
            transform.Translate(Vector3.up * Time.deltaTime * 25);
        else if (deltaY > 0 && Camera.main.transform.position.y > CameraYLimitDown )
            transform.Translate(Vector3.down * Time.deltaTime * 25);
    }
    }
public Vector2 startPos;
公共向量2 endPos;
公共bool fingerHold=false;
私人浮点数=18;
私有浮动限制=-5f;
专用浮点数CameraXLimitRight=21;
私人浮标CameraXLimitLeft=-21;
如果(Input.touchCount>0)
{                      
Touch-Touch=Input.GetTouch(0);
if(touch.phase==TouchPhase.start)
{      
startPos=touch.position;
fingerHold=真;
}
else if(touch.phase==TouchPhase.Moved)
{  
endPos=触摸位置;
}
否则如果(touch.phase==TouchPhase.end)
{  
fingerHold=假;
}
}
如果(指控)
{
浮动deltaX=endPos.x-startPos.x;
浮动三角洲=结束位置y-开始位置y;
布尔水平=假;
如果(数学Abs(deltaX)>数学Abs(deltaY))
水平=真;
如果(水平){
if(deltaX<0&&Camera.main.transform.position.x0&&Camera.main.transform.position.x>CameraXLimitLeft)
transform.Translate(Vector3.left*Time.deltaTime*25);
}
否则{
if(deltaY<0&&Camera.main.transform.position.y0&&Camera.main.transform.position.y>CameraYLimitDown)
transform.Translate(Vector3.down*Time.deltaTime*25);
}
}

感谢您的帮助

不要使用Camera.main。而是将可变的公共GameObject设置为MyCamera并传递给Camera GameObject。我记得Camera.main有些游戏机在android上有问题