通過滑鼠的操縱,控制攝像機環繞模型物件旋轉,從而進行對模型物件的觀察。
首先根據攝像機的當前方位,計算它應該到達的目標方位;
然後通過插值運算,將攝像機逐幀移動到該目標方位。
1、 計算攝像機的目標方位。
先計算攝像機本地座標系軸向與世界座標系軸向的夾角,作為方位的初始值。注意,這裡只取攝像機需要旋轉變化的座標軸即可,這裡我們用的是x和y軸。
在滑鼠的控制過程中,實時的修改此夾角值。
對修改後的夾角值進行限位處理,使之滿足我們的需要。
將限位處理後的夾角值由尤拉角的表示形式轉換到四元數的表示形式,作為攝像機的目標方位儲存。
2、 通過在攝像機的當前方位與目標方位間做插值運算,以一定的速度將攝像機向目標方位移動。
///
///旋轉軸的變換元件(模型物件)
///public
transform _tfmrotaxis;
///
///攝像機的移動緩衝
///public
float _fzoomdmp = 5f;
///
///攝像機的移動速度
///public
float _fzoomrate = 240f;
///
///滑鼠
x方向移動靈敏度
///public
float _fxspe = 6f;
///
///滑鼠
y方向移動靈敏度
///public
float _fyspe = 6f;
///
///滑鼠
x方向最小角度限位
///public
float _fminlimitx = -360f;
///
///滑鼠
x方向最大角度限位
///public
float _fmaxlimitx = 360f;
///
///滑鼠
y方向最小角度限位
///public
float _fminlimity = -360f;
///
///滑鼠
y方向最大角度限位
///public
float _fmaxlimity = 360f;
///
///攝像機距旋轉軸的最近距離
///public
float _fmindist = 0f;
///
///攝像機距旋轉軸的最遠距離
///public
float _fmaxdist = 20f;
///
///移動的偏移量
///public
vector3 _vec3taroffset;
//------------------------------ private ----------------------------------
//////
攝像機的變換元件
///private
transform _tfmthis;
///
///攝像機到旋轉軸的當前距離
///private
float _fcurtdist;
///
///攝像機到旋轉軸的目標距離
///private
float _ftardist;
///
///攝像機的目標朝向(方位)
///private
quaternion _quatarrtn;
///
///攝像機
x軸與世界座標
x軸的夾角
///private
float _fxdgre;
///
///攝像機
y軸與世界座標
y軸的夾角
///private
float _fydgre;
void awake()
void lateupdate()
scrollwheelctrl();
}///
///滑鼠滾輪控制視野的縮放
///private
void scrollwheelctrl()
建立乙個追蹤攝像機 1
在電腦遊戲中一種非常常用型別的相機是追蹤攝像機,乙個相機在乙個關鍵物件後跟隨 通常是玩家 來提供乙個第一人稱或第三人稱視角,讓物件能夠在遊戲世界中看到。我們已經有很多塊來實現這類在我們自己遊戲中的相機,但一點點增加遊戲框架的相機類,我們可以在遊戲中實施這個絕對簡單的實現。這部分工作通過這類改變並構建...
unity的攝像機視野及旋轉控制總結
相機視野拉近和拉遠,差值得到 distance offest.magnitude distance input.getaxis mouse scrollwheel slidespeed distance mathf.clamp distance,2,18 offest offest.normaliz...
UE4 玩家控制的攝像機
使用乙個actor控制乙個攝像機actor 設定乙個pawn類,並且設定該pawn預設受控 pragma once include coreminimal.h include gameframework pawn.h include gameframework springarmcomponent....