набросок диплома. Я играю в видеоигры с самого раннего возраста
Скачать 0.8 Mb.
|
Поведение камерыПоведение камеры - это то, что нужно продумать с большим количеством деталей, потому что это одна из основных концепций игры, которая может принести пользу пользователю как положительный, так и отрицательный. Камера - еще один компонент игры, поэтому она следует физике и другим правилам. На очень раннем этапе игры основная камера была настроена как камера от первого лица, поэтому игрок мог перемещать свое видение с помощью курсора. Однако после обсуждения последней версии игры игра проводится в камере от третьего лица, поэтому игрок может постоянно видеть персонажа и перемещать камеру на 360 градусов вокруг него. Эта камера следует за персонажем сзади, и когда игрок нажимает правую кнопку мыши и перемещает курсор, камера всегда перемещается вокруг главного героя. Это возможно с векторами и кватернионами, как показано в скрипте CameraController.cs: void LateUpdate () { if (Input.GetMouseButton (1)) { currentAngleX += Input.GetAxis("Mouse X") * speed * Time.deltaTime; currentAngleY += Input.GetAxis("Mouse Y") * speed * Time.deltaTime; } Quaternion q = Quaternion.Euler(-currentAngleY, currentAngleX, 0); Vector3 direction = q * Vector3.forward; transform.position = player.position - direction * distance; transform.LookAt(player.position); } Также есть камера от первого лица, используемая, когда игрок нажимает клавишу «F». В этом режиме камеры игрок может стрелять пулями, чтобы разбивать разные стекла на уровне. Есть скрипт для переключения с камеры от третьего лица и от камеры от первого лица. Это длинный сценарий, но суть в следующем: VDCameraToggle2.cs: if (Input.GetKey(KeyCode.F) && LastKeyInput + KeyDelay <= Time.realtimeSinceStartup) // Can be used instead of the above { if (CurrentCamera + 1 < CameraArray.Length) { } else { } // Disable current camera and enable next camera CameraArray[CurrentCamera].gameObject.SetActive (false); CurrentCamera++; CameraArray [CurrentCamera].gameObject.SetActive (true); // Disable current camera and enable first camera CameraArray[CurrentCamera].gameObject.SetActive(false); CurrentCamera = 0; CameraArray[CurrentCamera].gameObject.SetActive(true); LastKeyInput = Time.realtimeSinceStartup; } if (CurrentCamera == 1) { player.gameObject.GetComponent } else { player.gameObject.GetComponent } Это та часть, которая включает или отключает ту или иную камеру при переключении. Если текущая камера является камерой от первого лица (CurrentCamera == 1), для средства визуализации персонажа установлено значение false, поэтому он становится невидимым, а скорость аниматора становится равной 0, чтобы избежать движения персонажа. Используя этот метод, персонаж не может двигаться, находясь на камере от первого лица. Когда он возвращается к камере от третьего лица, персонаж снова становится видимым и может двигаться. Система частицUnity может создавать частицы с течением времени, используя точку в качестве ориентира, это система частиц. Хотя его можно использовать в разных ситуациях, в этой игре он используется для имитации звезд на небе. Звезды игры - это множество частиц, центрированных в одной точке, и они вращаются вокруг нее. Есть много параметров, которые задают все детали их поведения, но наиболее важными из них в Unity являются следующие: 2. 1 рисунок: Параметры системы частиц. Система частиц задана как сфера с радиусом 500 единиц и петлями анимации. Таким образом, частицы выглядят как звезды, которые движутся по небу, когда солнце садится. Днем звезды практически не видны. Также можно установить максимальное количество частиц, а также цвета. 2. 1 рисунок: Окончательный результат системы частиц. |