欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2019年02月26日 08:36:05   作者:JeterPong  
這篇文章主要為大家詳細(xì)介紹了Unity3D實(shí)現(xiàn)鼠標(biāo)控制視角轉(zhuǎn)動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

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

代碼如下:

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)向 (這里給個(gè)限度 最大仰角為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)用時(shí),只需把該腳本綁定給物體即可。這里是綁定攝像機(jī),以攝像機(jī)為第一人稱視角轉(zhuǎn)動(dòng)。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論