Найти в Дзене
KNL Games

FPSC-контроллер для Unity

Оглавление

Создание контроллера от первого лица (First-Person , FPS) в Unity включает в себя несколько ключевых компонентов: управление камерой, перемещение игрока,. Ниже приведён пример базового контроллера для FPS.

Этот контроллер будет включать:

  1. Управление камерой с помощью мыши.
  2. Перемещение игрока с помощью клавиш WASD.

1. Создание сцены

  1. Создайте новую сцену в Unity.
  2. Создайте пустой объект (Empty GameObject) и назовите его Player.
  3. Добавьте компонент Camera в качестве дочернего объекта к Player и назовите его MainCamera.
  4. Убедитесь, что MainCamera находится на уровне глаз игрока (например, на высоте 1,5 единицы по оси Y).

2. Основной скрипт контроллера

Создайте новый скрипт FPSController.cs и добавьте его к игроку (Player).

using UnityEngine;

public class FPSController : MonoBehaviour

{

public float speed = 6.0f; // Скорость передвижения

public float turnSpeed = 2.0f; // Скорость поворота

private CharacterController characterController;

private Camera playerCamera;

private float cameraPitch = 0f;

void Start()

{

characterController = GetComponent<CharacterController>();

playerCamera = Camera.main;

}

void Update()

{

// Поворот

float turn = Input.GetAxis("Mouse X") * turnSpeed;

transform.Rotate(0, turn, 0);

// Наклон камеры

float camTurn = Input.GetAxis("Mouse Y") * turnSpeed;

cameraPitch -= camTurn;

cameraPitch = Mathf.Clamp(cameraPitch, -89f, 89f); // Ограничение наклона камеры

playerCamera.transform.localEulerAngles = new Vector3(cameraPitch, 0, 0);

// Перемещение

float moveHorizontal = Input.GetAxis("Horizontal") * speed;

float moveVertical = Input.GetAxis("Vertical") * speed;

Vector3 moveDirection = new Vector3(moveHorizontal, 0, moveVertical);

moveDirection = transform.rotation * moveDirection;

characterController.Move(moveDirection * Time.deltaTime);

}

}

3. Настройка компонентов

  1. Добавьте компонент CharacterController к объекту Player.
  2. Убедитесь, что камера (MainCamera) является дочерним объектом Player и расположена на уровне глаз.
  3. Установите размер CharacterController так, чтобы он соответствовал размеру вашего игрока.

4. Управление

По умолчанию скрипт использует стандартные оси ввода Unity:

  • WASD или стрелки для перемещения.

5. Тестирование

Запустите сцену, и вы увидите, как ваш игрок перемещается и взаимодействует с окружающей средой.

Этот скрипт представляет собой базовый шаблон. Вы можете расширить его, добавив звуки, эффекты, взаимодействие с объектами и многое другое.