溫馨提示×

溫馨提示×

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

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

Unity3D實現(xiàn)鼠標(biāo)控制視角轉(zhuǎn)動

發(fā)布時間:2020-10-17 17:07:03 來源:腳本之家 閱讀:839 作者:JeterPong 欄目:編程語言

前面,學(xué)了物體的移動功能,現(xiàn)在來學(xué)一下C#實現(xiàn)鼠標(biāo)控制攝像機(jī)(視角)移動。

代碼如下:

C#腳本(在Unity 5.5.1 下能運(yùn)行):

using System.Collections;
using System.Collections.Generic;
using UnityEngine;


public class MouseView : MonoBehaviour {

 public enum RotationAxes
 {
 MouseXAndY = 0,
 MouseX = 1,
 MouseY = 2
 }

 public RotationAxes m_axes = RotationAxes.MouseXAndY;
 public float m_sensitivityX = 10f;
 public float m_sensitivityY = 10f;

 // 水平方向的 鏡頭轉(zhuǎn)向
 public float m_minimumX = -360f;
 public float m_maximumX = 360f;
 // 垂直方向的 鏡頭轉(zhuǎn)向 (這里給個限度 最大仰角為45°)
 public float m_minimumY = -45f;
 public float m_maximumY = 45f;

 float m_rotationY = 0f;


 // Use this for initialization
 void Start () {
 // 防止 剛體影響 鏡頭旋轉(zhuǎn)
 if (GetComponent<Rigidbody>()) {
  GetComponent<Rigidbody> ().freezeRotation = true;
 }
 }

 // Update is called once per frame
 void Update () {
 if (m_axes == RotationAxes.MouseXAndY) {
  float m_rotationX = transform.localEulerAngles.y + Input.GetAxis ("Mouse X") * m_sensitivityX;
  m_rotationY += Input.GetAxis ("Mouse Y") * m_sensitivityY;
  m_rotationY = Mathf.Clamp (m_rotationY, m_minimumY, m_maximumY);

  transform.localEulerAngles = new Vector3 (-m_rotationY, m_rotationX, 0);
 } else if (m_axes == RotationAxes.MouseX) {
  transform.Rotate (0, Input.GetAxis ("Mouse X") * m_sensitivityX, 0);
 } else {
  m_rotationY += Input.GetAxis ("Mouse Y") * m_sensitivityY;
  m_rotationY = Mathf.Clamp (m_rotationY, m_minimumY, m_maximumY);

  transform.localEulerAngles = new Vector3 (-m_rotationY, transform.localEulerAngles.y, 0);
 }
 }
}

調(diào)用時,只需把該腳本綁定給物體即可。這里是綁定攝像機(jī),以攝像機(jī)為第一人稱視角轉(zhuǎn)動。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI