static SimpleWaveEffect ballsWave; // переменная которая хранит в себе эту волну static void onAureolsHide(BaseEffect effect) { GameObject[] tBalls = GameObject.FindGameObjectsWithTag("ticketBall"); ballsWave = Effects.addSimpleWave(new Vector2(0.0f, 0.0f), tBalls, onWaveGameObject, 3f, 8.0f); // V# запуск волны ballsWave.subscribeOnEffectDone(onWaveDone); SoundsSystem.play(Sound.S_DISAPEAR); }
// По окнончанию волны сокрытия шаров, здесь запускается функция переворотов билетов и их уменьшения в маштабе static void onWaveDone(BaseEffect effect) { //print("█ [onWaveDone]"); var tickets = MAIN.getMain.ticketHolder.getTickets(); if (tickets == null || tickets.Length == 0) { return; } //print("tickets.Length:" + tickets.Length); GameObject[] go = new GameObject[tickets.Length]; for (int i = 0; i < tickets.Length; i++) { if (tickets[i] != null && tickets[i].gameObject != null) { go[i] = tickets[i].gameObject; } else { return; } } Effects.addSimpleWave(tickets[0].gameObject, go, onWaveTicket, 0.5f, 12.0f); ballsWave = null; }
public static SimpleWaveEffect addSimpleWave(GameObject target, GameObject[] waving, SimpleWaveEffect.onWaveEvent callBack, float playPeriod, float radius, int countVaves = 1, bool destroy = false) // аналогично указанной выше функции, только вместо позиции эпицентра волны указывает объект и последний параметр, нужно ли его удалять по окончанию эффекта { SimpleWaveEffect se = new SimpleWaveEffect(target.transform, waving, callBack, playPeriod, radius, countVaves, destroy); var e = getEffects(target); e.addNewEffect(se); return(se); }