unity攝像機控制篇

     關於unity中攝像機控制,我總結了一些,希望自己在今後的學習中不會忘記,耶j_0059.gif!!!

unity中第一,三人稱控制器上綁定的都有一個叫Mouse Look的腳本,我把它寫下來了;

[AddComponentMenu("Camera-Control/Mouse Look")]
public enum RotationAxes{MouseXAndY=0,Mouse1,MouseY=2}
public RotationAxes axes=RotationAxes.MouseXAndY;
public float SensitivityX=15F;
public float SensitivityY=15F;
public float minimumX=-360F;
public float maxmumX=360F;
public float minimumY=-60F;
public float maxmumY=60F;
float rotationY=0F;
void start()
{
    if(Getcomponent<Rigidbody>())
    {
        GetComponent<Rigidbody>().freezeRotation=true;
    }
}
void update()
{
    if(axes==RotationAxes.MouseXAndY)
    {
        float rotationX=transform.localEulerAngles.y+Input.GetAxis("Mouse X")*SensitivityX;
        rotationY+=Input.GetAxis("MouseY")*SensitivityY;
        rotationY=Mathf.Clamp(rotationY,minimumY,maxmumY);
        transform.localEulerAngles=new Vector3(-rotationY,rotationX,0);
    }
    else if(axes==RotationAxes.MouseX)
    {
        transform.Rotate(0,Input.GetAxis("Mouse X")*SensitivityX,0);
    }
    else
    {
        rotationY+=Input.GetAxis("Mouse Y")*SensitivityY;
        rotationY=Mathf.Clamp(rotationY,minimumY,maxmumY);
        transform.localEulerAngles=new Vector3(-rotationY,transform.localEulerAngles.y,0);
    }
}

主角面向鼠標點擊的方向:

  Vector3 m_pos=Input.mousePosition;     //獲取鼠標的屏幕座標;
  Vector3 p_pos=Camera.main.WorldToScreenPoint(transform.position);     //將主角的世界座標轉化爲屏幕座標,爲的是獲得他的z軸座標;
  m_pos.z=p_pos.z;                              //將主角的屏幕z軸座標賦值給鼠標;
  Vector3 wolrd;
  wolrd.x=Camera.main.ScreenToWorldPoint(m_pos).x;
  world.z=Camera.main.ScreenToWorldPoint(m_pos).z;
  world.y=transform.position.y                   //y軸座標不變,主角纔不會轉進地底;
  transform.LookAt(world);            //主角看向鼠標點擊的位置;

滑動鼠標中建,調整視野的遠近:

    float fov=Camera.main.FieldOfView;       //獲得攝像機調整視野的值;
    fov+=Input.GetAxis("Mouse ScrollWheel")*sensitivity;  //滑動中建,調整視野值得大小;
    fov=Mathf.Clamp(fov,minFov,maxFov);       //限制視野值得大小爲(minFov,maxFov);
    Camera.main.FieldOfView=fov;             //再將調整好的值賦值給攝像機的視野;

寫的不好,勿噴哦!!j_0059.gif

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章