91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

unity如何實現攝像機控制

發布時間:2022-01-05 18:09:42 來源:億速云 閱讀:930 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關unity如何實現攝像機控制的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

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;             //再將調整好的值賦值給攝像機的視野;

感謝各位的閱讀!關于“unity如何實現攝像機控制”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

迁安市| 习水县| 班戈县| 东港市| 穆棱市| 泰顺县| 西平县| 福泉市| 泰宁县| 舟山市| 嘉黎县| 方城县| 会昌县| 麻栗坡县| 泾源县| 观塘区| 雅江县| 濮阳县| 临漳县| 桃源县| 汉沽区| 牙克石市| 金堂县| 和田县| 工布江达县| 视频| 右玉县| 左云县| 绥中县| 恩施市| 湖州市| 奈曼旗| 大兴区| 余庆县| 周宁县| 固原市| 隆安县| 淅川县| 丰原市| 衡山县| 伊金霍洛旗|