Unity3D實(shí)現(xiàn)鼠標(biāo)控制視角轉(zhuǎn)動(dòng)
前面,學(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)文章
c# 數(shù)據(jù)類型占用的字節(jié)數(shù)介紹
本篇文章主要是對(duì)c#中數(shù)據(jù)類型占用的字節(jié)數(shù)進(jìn)行了詳細(xì)的介紹。需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-01-01
基于Kubernetes實(shí)現(xiàn)前后端應(yīng)用的金絲雀發(fā)布(兩種方案)
這篇文章主要介紹了基于Kubernetes實(shí)現(xiàn)前后端應(yīng)用的金絲雀發(fā)布,文中給大家提到了兩種常用方案,通過(guò)示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-12-12
C#影院售票系統(tǒng)畢業(yè)設(shè)計(jì)(1)
這篇文章主要介紹了C#影院售票系統(tǒng)畢業(yè)設(shè)計(jì),獻(xiàn)上了9個(gè)類的設(shè)計(jì),需要的朋友可以參考下2015-11-11
基于C#實(shí)現(xiàn)語(yǔ)音識(shí)別功能詳解
在.NET4.0中,可以借助System.Speech組件讓電腦來(lái)識(shí)別我們的聲音。本文將利用該組件實(shí)現(xiàn)語(yǔ)音識(shí)別功能,文中實(shí)現(xiàn)過(guò)程講解詳細(xì),需要的可以參考一下2022-04-04

