Камера като в Unreal Engine

Damath 08 януари 2015 г., 16:25

използване на UnityEngine; използване на System.Collections ;

публичен клас FlyCamera2: MonoBehaviour

public float mouseSensitivity = 3.0f; публична плаваща скорост = 2.0f; частен трансфер на Vector3;

public float minimumX = - 360F; публичен float максимум X = 360F; минимум на публично плаване Y = - 60F; максимален публичен плаващ Y = 60F; плавно въртене X = 0F; плавно въртене Y = 0F; Quaternion originalRotation;

void Събудете се ( ) < камера. orthographic = невярно; >

void Начало ( ) < originalRotation = transform . завъртане ; >

void Актуализация ( ) < // Движения на миши -> Връщане на камера rotationX += Вход. GetAxis ("Мишка X") * mouseSensitivity; въртенеY += Вход. GetAxis ("Мишка Y") * mouseSensitivity; завъртанеX = ClampAngle (завъртанеX, минимумX, максимумX ); въртенеY = ClampAngle (въртенеY, минимумY, максимумY); Кватернион xКватернион = Кватернион. AngleAxis (rotationX, Vector3. up); Кватернион yКватернион = Кватернион. AngleAxis (rotationY, Vector3. ляво); преобразуване. ротация = оригинална ротация * xQuaternion * yQuaternion; // преместване на камерата transfer = transform . напред * Вход. GetAxis ("Вертикално"); трансфер += трансформация. дясно * Вход. GetAxis ("Хоризонтално"); преобразуване. позиция += трансфер * скорост * време. deltaTime ; >

публичен статичен float ClampAngle (плавен ъгъл, float min, float max) < ако (ъгъл - 360F) ъгъл += 360F; ако (ъгъл > 360F) ъгъл -= 360F; върни Mathf. Скоба (ъгъл, мин., макс.); >

Re: Камера как в Unreal Engine

Damath 08 януари 2015 г., 16:29

Re: Камера как в Unreal Engine

gansterm 08 януари 2015 г.,18:13 ч

if ( Input. GetAxis ( "Mouse ScrollWheel" ) != 0 ) < ако (скорост > 200) < скорост = 200; > ; ако (скорост 10) < скорост = 10; > ; скорост -= вход. GetAxis ("Колело за превъртане на мишката") * скорост * 2;

Re: Камера как в Unreal Engine

Damath 08 януари 2015 г., 22:35

използване на UnityEngine; използване на System.Collections ;

публичен клас FlyCamera2: MonoBehaviour

public float mouseSensitivity = 3.0f; публична плаваща скорост = 2.0f; частен трансфер на Vector3;

public float minimumX = - 360F; публичен float максимум X = 360F; минимум на публично плаване Y = - 60F; максимален публичен плаващ Y = 60F; плавно въртене X = 0F; плавно въртене Y = 0F; Quaternion originalRotation;

void Събудете се ( ) < камера. orthographic = невярно; >

void Начало ( ) < originalRotation = transform . завъртане ; >

void Актуализация ( ) < // Движения на миши -> Вращение на камерата if ( Input. GetAxis ( "Mouse ScrollWheel" ) != 0 ) < ако (скорост > 200) < скорост = 200; > ; ако (скорост 10) < скорост = 10; > ; скорост -= вход. GetAxis ("Колце за превъртане на мишката") * скорост * 1;

> въртенеX += Вход. GetAxis ("Мишка X") * mouseSensitivity; въртенеY += Вход. GetAxis ("Мишка Y") * mouseSensitivity; завъртанеX = ClampAngle (завъртанеX, минимумX, максимумX ); въртенеY = ClampAngle (въртенеY, минимумY, максимумY); Кватернион xКватернион = Кватернион. AngleAxis (rotationX, Vector3. up); Кватернион yКватернион = Кватернион. AngleAxis (rotationY, Vector3. ляво); преобразуване. ротация = оригинална ротация * xQuaternion * yQuaternion; // преместване на камерата transfer = transform . напред* Вход. GetAxis ("Вертикално"); трансфер += трансформация. дясно * Вход. GetAxis ("Хоризонтално"); преобразуване. позиция += трансфер * скорост * време. deltaTime ; >

публичен статичен float ClampAngle (плавен ъгъл, float min, float max) < ако (ъгъл - 360F) ъгъл += 360F; ако (ъгъл > 360F) ъгъл -= 360F; върни Mathf. Скоба (ъгъл, мин., макс.); >

Re: Камера как в Unreal Engine

Damath 09 януари 2015 г., 02:58

Re: Камера как в Unreal Engine

Syberex 09 януари 2015 г., 03:25 ч.

Re: Камера как в Unreal Engine

Damath 09 януари 2015 г., 03:32

Re: Камера как в Unreal Engine

Damath 09 януари 2015 г., 03:44

използване на UnityEngine; използване на System.Collections ;

публичен клас FlyCamera2: MonoBehaviour

public float mouseSensitivity = 3.0f; публична плаваща скорост = 2.0f; частен трансфер на Vector3;

public float minimumX = - 360F; публичен float максимум X = 360F; минимум на публично плаване Y = - 60F; максимален публичен плаващ Y = 60F; плавно въртене X = 0F; плавно въртене Y = 0F; Quaternion originalRotation;

void Събудете се ( ) < камера. orthographic = невярно; >

void Начало ( ) < originalRotation = transform . завъртане ; >

void Актуализация ( ) < // Движения на миши -> Вращение на камерата if ( Input. GetAxis ( "Mouse ScrollWheel" ) != 0 ) < ако (скорост > 200) < скорост = 200; > ; ако (скорост 10) < скорост = 10; > ; скорост -= вход. GetAxis ("Колце за превъртане на мишката") * скорост * 1;

> въртенеX += Вход. GetAxis ("Мишка X") * mouseSensitivity; въртенеY += Вход. GetAxis ("Мишка Y") * mouseSensitivity; въртенеX = Ъгъл на захващане (ротацияX, минимумX, максимумX ) ; въртенеY = ClampAngle (въртенеY, минимумY, максимумY); Кватернион xКватернион = Кватернион. AngleAxis (rotationX, Vector3. up); Кватернион yКватернион = Кватернион. AngleAxis (rotationY, Vector3. ляво); преобразуване. ротация = оригинална ротация * xQuaternion * yQuaternion; // преместване на камерата transfer = transform . напред * Вход. GetAxis ("Вертикално"); трансфер += трансформация. дясно * Вход. GetAxis ("Хоризонтално"); преобразуване. позиция += трансфер * скорост * време. deltaTime ; >

публичен статичен float ClampAngle (плавен ъгъл, float min, float max) < ако (ъгъл - 360F) ъгъл += 360F; ако (ъгъл > 360F) ъгъл -= 360F; върни Mathf. Скоба (ъгъл, мин., макс.); >

Re: Камера как в Unreal Engine

Syberex 10 януари 2015 г., 21:34 ч.

публичен клас FlyCamera2: MonoBehaviour

public float mouseSensitivity = 3.0f; публична плаваща скорост = 2.0f; частен трансфер на Vector3;

public float minimumX = - 360F; публичен float максимум X = 360F; минимум на публично плаване Y = - 60F; максимален публичен плаващ Y = 60F; плавно въртене X = 0F; плавно въртене Y = 0F; Quaternion originalRotation;

void Събудете се ( ) < камера. orthographic = невярно; >

void Начало ( ) < originalRotation = transform . завъртане ; >

void LateUpdate ( ) < // Движения на миши -> Вращение на камерата if ( Input. GetAxis ( "Mouse ScrollWheel" ) != 0 ) < ако (скорост > 200) < скорост = 200; > ; ако (скорост 10) < скорост = 10; > ; скорост -= вход. GetAxis ("Колце за превъртане на мишката") * скорост * 1;

> въртенеX += Вход. GetAxis ("Мишка X") * mouseSensitivity; въртенеY += Вход. GetAxis ("Мишка Y") * mouseSensitivity; завъртанеX = ClampAngle (завъртанеX, минимумX, максимумX ); въртенеY = ClampAngle (въртенеY, минимумY, максимумY); Кватернион xКватернион = Кватернион. AngleAxis (rotationX, Vector3. up); Кватернион yКватернион = Кватернион. AngleAxis (rotationY, Vector3. ляво); преобразуване. ротация = оригинална ротация * xQuaternion * yQuaternion; // преместване на камерата transfer = transform . напред * Вход. GetAxis ("Вертикално"); трансфер += трансформация. дясно * Вход. GetAxis ("Хоризонтално"); преобразуване. позиция += трансфер * скорост * време. deltaTime ; >

публичен статичен float ClampAngle (плавен ъгъл, float min, float max) < ако (ъгъл - 360F) ъгъл += 360F; ако (ъгъл > 360F) ъгъл -= 360F; върни Mathf. Скоба (ъгъл, мин., макс.); >