Готовый перевод C# Game Programming Cookbook for Unity 3D / Программирование игр на Unity 3D C#. Книга готовых решений.: 3.2 Работа с вводом
public class BaseInputController : MonoBehavior
{
//направляющие кнопки
public bool Up;
public bool Down;
public bool Left;
public bool Right;
// кнопки стрельбы/действия
public bool Fire1;
// слоты оружия
public bool Slot1;
public bool Slot2;
public bool Slot3;
public bool Slot4;
public bool Slot5;
public bool Slot6;
public bool Slot7;
public bool Slot8;
public bool Slot9;
public float vert;
public float horz;
public bool shouldRespawn;
public Vector3 TEMPVec3;
private Vector3 zeroVector = new Vector3(0,0,0);
public virtual void CheckInput ()
{ // перегрузите для собственного кода для работы с вводом
horz=Input.GetAxis ("Horizontal");
vert=Input.GetAxis ("Vertical");
}
public virtual float GetHorizontal()
{ // rвозвращает из кэша наше вводное значение горизонтальной оси
return horz;
}
public virtual float GetVertical()
{ // возвращает из кэша наше вводное значение вертикальной оси
return vert;
}
public virtual bool GetFire()
{
return Fire1;
}
public bool GetRespawn()
{
return shouldRespawn;
}
public virtual Vector3 GetMovementDirectionVector()
{ // вектор temp для направления движения получает значение ... // в другом случае неиспользованный вектор всегда имеет значение 0,0,0
TEMPVec3=zeroVector;
// если мы идём влево или вправо, устанавливает X вектора скорости // вводному значению нашей горизонтальной оси if(Left || Right)
{
TEMPVec3.x=horz;
}
//если мы идём вверх или вниз, устанавливает X вектора скорости // вводному значению нашей аерткиальной оси
if(Up || Down)
{
TEMPVec3.y=vert;
} // возвращает вектор движения
return TEMPVec3;
}
}
public class Keyboard_Input : BaseInputController
{
public override void CheckInput ()
{ // Получает входные данные от вертикальной и горизонтальной оси и // хранит их внутри в vert и horz,поэтому нам не приходится // обращаться к ним каждый раз когда нам нужно выгрузить вводные данные
vert= Input.GetAxis( "Vertical" ); horz= Input.GetAxis( "Horizontal" );
// устанавливает некоторые Boolean значения для вверха, низа, лево и право.
Up = ( vert>0 ); Down = ( vert<0 ); Left = ( horz<0 ); Right = ( horz>0 );
// получет кнопки стрельбы/действия
Fire1= Input.GetButton( "Fire1" );
shouldRespawn= Input.GetButton( "Fire3" );
}
public void LateUpdate()
{ // проверяет вводные данные каждый раз как LateUpdate() подходит к следующей отметке
CheckInput();
}
}
Внимание! Этот перевод, возможно, ещё не готов.
Его статус: идёт перевод
Переведено на Нотабеноиде
http://notabenoid.org/book/55263/242449
Переводчики: Arien0028
Настройки
Готово:
