Skip to content

Instantly share code, notes, and snippets.

@seamanmur
Last active August 29, 2015 14:26
Show Gist options
  • Save seamanmur/18990eb4745357a5d83e to your computer and use it in GitHub Desktop.
Save seamanmur/18990eb4745357a5d83e to your computer and use it in GitHub Desktop.
using UnityEngine;
class CharController : MonoBehaviour
{
//Ссылка на компонент - CharacterController
public static CharacterController unityController;
//Ссылка на себя - на класс CharController
public static CharController instance;
//Результат - вектор движения.
public Vector3 move;
//Размер мертвой зоны
private const float _DEAD_ZONE = 0.1f;
void Awake()
{
//Запоминаем ссылку на себя
instance = this;
//Находим компонент - CharacterController
unityController = GetComponent("CharacterController") as CharacterController;
//Просим у класса камеры найти камеру в сцене
CharTPSCamera.GetCamera();
}
void Update()
{
//Если камеры нет - ничего не делаем
if (Camera.main == null) return;
//Обрабатываем введенные игроком данные
GetInput();
//Говорим CharMotor, что пора двигаться
CharMotor.instance.UpdateMotor(move);
}
private void GetInput()
{
CharMotor chM = CharMotor.instance;
//На сколько сместились по "вертикали" (т.е. вперед/назад)
float vert = Input.GetAxis("Vertical");
//На сколько сместились по "горизонтали" (т.е. влево/вправо)
float horiz = Input.GetAxis("Horizontal");
//Обнуляем вектор движения
move = Vector3.zero;
//Если смещение по "вертикали" вышло из мертвой зоны
if (vert > _DEAD_ZONE || vert < -_DEAD_ZONE)
//Прибавляем к вектору движения это смещение
move += new Vector3(0, 0, vert);
//Если смещение по "горизонтали" вышло из мертвой зоны
if (horiz > _DEAD_ZONE || horiz < -_DEAD_ZONE)
//Прибавляем к вектору движения это смещение
move += new Vector3(horiz, 0, 0);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment