Камера като в 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. Скоба (ъгъл, мин., макс.); >