Например есть код: Update(){ Передать ход третьему врагу } Как сделать действие 1 раз, но при определенных обстоятельствах. Прикол в том, что кол-во врагов может быть разным.
tduk, использование переменной состояния, как подсказал господин AndrewNovak, наилучшие решение. Если экстрасенсорные способности меня не подвели, то вам нужно что-то вроде этого:
Код
public class Main : MonoBehaviour { Enemy enemy1 = new Enemy("Warrior"); //Враги 1..N Enemy enemy2 = new Enemy("Archer"); ... Enemy enemyN = new Enemy("Mage");
public delegate string Attack(int damage); //Делегат на метод атаки. //Использование делегатов в данном случае хорошо тем, //что мы можем одновременно атаковать одним игроком, //защищаться другим, и бегать по кругу от ужаса третим
void Update () { if (ChangeAttackEnemyToMage = true) //Обрабатываем событие передачи при определенных обстоятельствах, //тут может быть что угодно { Attack attack = enemyN.Attack; //Передаем атаку Магу ChangeAttackEnemyToMage = false; } Debug.Log (attack(123)); //Атакуем } }
public class Enemy { string Name; public Enemy(string name) { Name = name; }
public string Attack(int damage) { return Name + " " + damage.ToString(); } }
Сообщение отредактировал roma3fon - Пятница, 06 Января 2017, 03:31
roma3fon, код отличный, по мне. Но я плохо объяснил видимо.
Код
public int numberTurn=1; public int GlobalTurn=1; // на самом деле её определяет отдельный объект,но я с телефона прост)) public int ActivePoints=0;//очки действий public int maxAP=2;//максимальное кол-во действий
void Update (){ if(numberTurn==GlobalTurn) { ActivePoints=maxAP; } if(ActivePoints>0){ //если очков действий больше нуля, то что-то делаем,например ходим }else if(ActivePoints <=0){ GlobalTurn+=1;//если меньше 0, то передаем ход другим } }
Проблема в том, что 1 действие в Update надо сделать 1 раз, а оно зацикливается.
CleverRus, у него, просто ход, а надо возмещать очки действий игроку, т е было 0 а при каждой очереди его хода,т е когда его очередь подошла,надо сделать например 2. Я указал то,что я пробовал использовать но там выходит зацикленность.
Ну то, что ты написал, только что никак не очевидно из первого сообщения. Если разное количество врагов добавляй список, если увеличивать переменную (как у тебя в примере было 0 стало 2) добавляй счётчик.