Секундомір спрацьовує кожне число N
Re: Секундомір спрацьовує кожне число N.
ось простий варіант, який, до речі, не покаже тобі поточний стан таймера
bool doTimer = true; int _n = 15; int _counter = 0; void Start ( ) < StartCoroutine ( "RunTimer" ) >
void myTrigger ( ) < // тіло тригера >
IENumerator RunTimer ( ) < while (doTimer) < Yeld return New WaitForSeconds (1); _counter++; if ( _counter >= _n ) < myTrigger (); _counter = 0; > > >
Re: Секундомір спрацьовує кожне число N.
using UnityEngine; using System.Collections;
public class TimerEmult < public static int timersecond ; // Перевірка звіту секунд в Inspector public static int maxtimersecond = 10; private static float secondgametime; //(?) - потрібно роботи Time.deltaTime public static float minedgametime ; // перевірка звіту хвилин в Inspector public static void Update ( ) < // оновлює код кожен кадр
secondgametime += Time. deltaTime; // розраховуєте інтерфал часу.Наприклад якщо хочете що б лічильник вважав швидше //змініть secondgametime >=1 на secondgametime => 0.5, повільніше - навпаки if (secondgametime >= 1) < // якщо secondgametime більше або дорівнює нулю, тоді прибавляє одну секунду в наш лічильник timersecond += 1; //прирівнює лічильник Unity до нашого сеундного лічильника, тобто лічильник Unity починає //звіт від 0.0000, і коли доходить до одиниці скидається до нуля secondgametime = 0 ; //(?) - у нас у secondgametime записаний лічильник Unity > //проробляємо те саме тільки з хвилинами if ( timersecond >= 60 ) < //Якщо timersecond дорівнює або більше 60, тоді доminegametime додаємо одну хвилину minedgametime += 1; //Скидаємо секунди (повертаємо секунди у вихідне положення) timersecond = 0; > //проробляємо роботу над скиданням хвилин if (minedgametime >= 60) < // Якщо minegametime більше або дорівнює 60, тоді minegametime дорівнюватиме нулю minedgametime = 0 ; //(?) - якщо ми запишемо minegametime = 0 під if(timersecond >=60) < //тоді лічильник буде думати, що якщо секунди більше або дорівнюють 60, то хвилини // дорівнюватимуть нулю, тобто хвилини будуть постійно 0 >
if ( maxtimersecond != 0 && TimerEmult. timersecond == maxtimersecond ) < TimerEmult. timersecond = 0; > > //виведення на екран /* void OnGUI () //Screen.width не дає розповзатися GUI (Графічний елемент) по всьому екрану, на різних за розміром екранів GUI.Label(new Rect(Screen.width - 500,10,100,50), "SecondTime:" + timersecond); GUI.Label(новий Rect(Screen.width - 500, 25, 100, 50), "MinutesTime : " + minedgametime); > */ >
Мені потрібно виконувати будь-які дії кожне N(наприклад, 15) число. Наприклад що бот змінював напрямок руху чи стріляв. Але не коли на секундомірі 15, а кожні 15 секунд, тобто. 15, 30, 45.