void Update()
    {
        if (TimelordMixer == null)
        {
            return;
        }

        if (TimelordMixer.IsTimelinePlaying)
        {
            _isIdle = false;
            return;
        }

        if (!_isIdle)
        {
            _idleStartedTime = DateTime.UtcNow;
            _idleDuration    = TimeSpan.FromSeconds(Random.Range(1, 4));
            _isIdle          = true;
        }

        if (_isIdle && DateTime.UtcNow.Subtract(_idleStartedTime) > _idleDuration)
        {
            var randomTimeline = _timelineAssets.ElementAtOrDefault(Random.Range(0, _timelineAssets.Count - 1));
            if (randomTimeline != null)
            {
                TimelordMixer.Play(randomTimeline);
            }
        }
    }
示例#2
0
    private void ButtonClicked_ButtonClickedEvent(TimelineAsset timeline)
    {
        //Debug.Log($"{timeline?.name} button was clicked");

        if (TimelordMixer == null)
        {
            return;
        }

        if (timeline != null)
        {
            TimelordMixer.Play(timeline);
        }
        else
        {
            var allTimelineAssets = TimelordMixer.Directors.Where(d => d != null).Select(t => t.PlayableDirector.playableAsset as TimelineAsset).ToList();
            TimelordMixer.Play(allTimelineAssets);
        }

        //ExecuteEvents.Execute<IButtonClickedHandler>(gameObject, null, (handler, data) => handler.OnButtonClicked());
    }