Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Unity, C#

23.07.22 15:34
Re: Unity, C#
 
alex445 коренной житель
в ответ alex445 23.07.22 14:41, Последний раз изменено 23.07.22 15:34 (alex445)

Могу только добавить, что перемещать можно не саму камеру, а какой-то объект, персонажа. А камеру уже к нему прикрепить. Тогда они будут вместе перемещаться.


Например, код моей камеры для игры от первого лица простой и выглядит так:


public class CharacterCamera : MonoBehaviour

{

float lookSpeed = 4.0f;

float xRotation = 0.0f;

float yRotation = 0.0f;


private void Start()

{

Cursor.lockState = CursorLockMode.Locked;

Cursor.visible = true;

}


void Update()

{

yRotation += Input.GetAxis("Mouse X") * lookSpeed;

xRotation -= Input.GetAxis("Mouse Y") * lookSpeed;

xRotation = Mathf.Clamp(xRotation, -90.0f, 90.0f);


// rotate player's body - player's body can't tilt

// (Spielerkörper kann nicht kippen)

transform.parent.rotation = Quaternion.Euler(0.0f, yRotation, 0.0f);


// rotate player's camera - camera can tilt

transform.localRotation = Quaternion.Euler(xRotation, 0.0f, 0.0f);

}

}


Но камера прикреплена к персонажу, движения которого описываются на порядок сложнее. Камера же просто повторяет движения персонажа, плюс некоторые свои особенности, связанные с наклоном, поворотами и прочим.

 

Перейти на