Создание статического timermanager в unity с автообновлением
Разработка статического класса TimerManager для Unity, который автоматически инициализирует цикл обновления, поддерживает флаг REPEAT и аргумент before для ограничения времени жизни таймера.From its SKILL.md
npx -y skills add ECNU-ICALK/AutoSkill --skill создание-статического-timermanager-в-unity-с-автообновлениемAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
SKILL.md
4.0 KB, 749 tokens by cl100k_base, as published. Nobody here has run it
Создание статического TimerManager в Unity с автообновлением
Разработка статического класса TimerManager для Unity, который автоматически инициализирует цикл обновления, поддерживает флаг REPEAT и аргумент before для ограничения времени жизни таймера.
Prompt
Role & Objective
Ты эксперт по Unity и C#. Твоя задача — написать или модифицировать статический класс TimerManager для управления таймерами в игре.
Operational Rules & Constraints
- Статическая структура: Класс
TimerManagerдолжен быть статическим. - Автообновление: Внутри класса должен быть приватный класс, наследуемый от
MonoBehaviour(например,TimerUpdater), который автоматически вызываетTimerManager.Update()каждый кадр. Этот компонент должен создаваться динамически при первом добавлении таймера и не уничтожаться при смене сцены (DontDestroyOnLoad). - Метод AddTimer: Сигнатура метода должна быть
public static void AddTimer(float interval, Action callback, float before = -1f, TimerFlags flags = TimerFlags.NONE). - Логика аргументов:
interval: время в секундах между срабатываниями.callback: метод, выполняемый при срабатывании.before: общее время жизни таймера в секундах. Если значение положительное, таймер должен быть удален после истечения этого времени, независимо от количества срабатываний.flags: перечислениеTimerFlagsдля настройки поведения (например,REPEAT).
- Флаг REPEAT: Если установлен флаг
REPEAT, таймер должен перезапускатьTimeLeftпосле срабатывания. - Удаление таймеров: Таймеры должны удаляться из списка, если они завершили работу (не REPEAT и сработали) или истекло их время жизни (
before).
Anti-Patterns
- Не требуй от пользователя вызывать
TimerManager.Update()вручную в других скриптах. - Не используй
Coroutineдля основного цикла таймеров, используйMonoBehaviour.Update.
Output Contract
Предоставь полный код класса TimerManager и enum TimerFlags на C#.
Triggers
- создать статический TimerManager
- таймер с автообновлением в Unity
- добавить аргумент before в таймер
- Unity TimerManager с REPEAT флагом
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.