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;

Arien0028 07.10.14 в 16:16

0

// слоты оружия
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);

Arien0028 07.10.14 в 16:16

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;
}

Arien0028 07.10.14 в 16:18

0

public virtual bool GetFire()
{
return Fire1;
}

Arien0028 07.10.14 в 16:18

0

public bool GetRespawn()
{
return shouldRespawn;
}

Arien0028 07.10.14 в 16:18

0

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;
}
}

Arien0028 07.10.14 в 16:24

0

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();
}
}

Arien0028 07.10.14 в 16:31

0
Минутку...