Всем привет! Сегодня мы с вами создадим скрипт управления персонажем, а в следующей серии мы добавим модель персонажа в unity, и настроим его. Начнем!
Часть 1.0 Создание персонажа
- Создайте plane (Hierarchy — ПКМ — 3D objects — plane). Разместите ее как вам удобно, это будет наша земля.
- Создайте Capsule ее можно будет найти там же, где и plane. Переименуйте capsule в player, и добавьте тэг player.
3. Удалите у player компонент capsule collider, и добавьте ему новый компонент под названием CharacterController.
Часть 1.1 Написание скрипта.
- Создайте новую папку, к примеру под названием Scripts или myScripts, и создайте там новый скрипт под названием PlayerController, откройте этот скрипт, и впишите следующее:
using System.Collections;
using System.Collections.Generic;
using System.Net.Http.Headers;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
[Header("Player Settings")]
public float speed = 1.0f;
public float sensitivity = 2.0f;
private CharacterController characterController;
// Start is called before the first frame update
void Start()
{
characterController = GetComponent<CharacterController>();
}
// Update is called once per frame
void Update()
{
float horizontalMovement = Input.GetAxis("Horizontal") * speed;
float verticalMovement = Input.GetAxis("Vertical") * speed;
Vector3 movement = transform.forward * verticalMovement + transform.right * horizontalMovement;
characterController.Move(movement * Time.deltaTime);
float mouseX = Input.GetAxis("Mouse X") * sensitivity;
float mouseY = Input.GetAxis("Mouse Y") * sensitivity;
transform.Rotate(0, mouseX, 0);
Camera.main.transform.Rotate(-mouseY, 0, 0);
}
}
Часть 1.2 Разбираем код
- Мы создали заголовок под названием Player Settings. [Header(«Player Settings»)] — означает, что мы создаем заголовок, а в скобочках указываем текст заголовка.
- Также мы создали 2 публичные переменный скорость и чувствительность мыши.
- У нас есть приватная переменная типа CharacterController, с помощью нее у нас осуществляется движение персонажа.
- При старте игры, мы сразу же ищем компонент CharacterController на том объекте, где он прикреплен (в нашем случае это игрок).
- Каждый кадр, мы говорим, что переменная под названием horizontalMovement содержит в себе то, что нажал пользователь на клавиши. (То-есть горизонтальные кнопки, а это означает клавиши A и D, и если игрок нажмет на какую либо из этих клавиш, то переменная это запомнит). Тоже самое и с переменной под названием verticalMovement (только у нее вертикальные кнопки, а это значит клавиши W и S).
- Следующие 2 строки — мы осуществляем движение персонажа.
- У нас есть две переменные mouseX и mouseY (они содержат в себе то, что ввел пользователь, то-есть у moueX это движение мыши по горизонтали, а у mouseY это движение по вертикали).
- Следующие 2 строчки осуществляют движение камерой.
Часть 1.3 Настройка персонажа.
- Добавьте камеру дочерней к объекту player.
- Теперь сбросьте компонент transform у камеры, а затем измените в transform значение Y на 1.
- Теперь добавьте скрипт PlayerController к нашему объекту player, и можете изменить значения переменных на желаемые.
Часть 1.4 Готово!
Все, мы закончили, теперь можно запустить игру, и проверить. Теперь наш персонаж умеет ходить! Это классно. На этом все, если вы хотите 2 часть про добавление модели персонажа вместо нашей Capsule, не забудьте подписаться на мой ютуб-канал! Ютуб-канал: https://www.youtube.com/@it-prog
На этом все, все до скорой встречи!