Показать сообщение отдельно
Старый 22.02.2013, 01:24   #38
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Передача переменной в метод

Я вероятно все еще не понимаю что за система у тебя, что она просто меняет переменные не зная что она меняет и все счастливы) Ты все еще держишься за изменение переменных и интерфейс не применяешь как таковой.

По коду
// Блок выбора направления движения
        
if ((Input.GetKeyDown(KeyCode.W)) & !(UnitIsMove)) UnitDirection "North"// север
        
if ((Input.GetKeyDown(KeyCode.S)) & !(UnitIsMove)) UnitDirection "South"// юг
        
if ((Input.GetKeyDown(KeyCode.D)) & !(UnitIsMove)) UnitDirection "East"// восток
        
if ((Input.GetKeyDown(KeyCode.A)) & !(UnitIsMove)) UnitDirection "West"// запад 
Вот этот код выше присваивает переменной UnitDirection одно из значений North/South/East/West и следовательно ни одно из следующих условий не сработает, т.к. в условии обязательно в переменной наличие двух значений, что можно сделать только битовыми флагами, а не строками.
if ((UnitIsMove) & ((UnitDirection == "North") && (UnitDirection == "South"))) RotatePlayerUnit(this.directionNS);    
if ((
UnitIsMove) & ((UnitDirection == "East") && (UnitDirection == "West"))) RotatePlayerUnit(this.directionEW); 
Вот тут есть пример по перечислениям с битовыми флагами: http://msdn.microsoft.com/ru-ru/libr...attribute.aspx

И тут в коде нет того, что ты хочешь избежать - исключения конструкций if или case. Они есть и довольно сложные.

На мой взгляд твоя задача сводится к следующему:

public int RotatePlayerUnit(int toMove
{
        return 
toMove++;

this.directionEW RotatePlayerUnit(this.directionEW); 
Т.е. обычная функция, обрабатывающая значение и возвращающая результат, который присваивается той переменной, с которой было взято исходное значение. И эту функцию можно вызвать для всех переменных, требующих изменения хоть в цикле, хоть по условию.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
EvilOkta (22.02.2013)