Example #1
0
    private void OnEnable()
    {
        if (!UnityEngineUtils.IsInPlayModeOrAboutToPlay())
        {
            return;
        }

        GameTime.Instance.AddTimeListener(this);
        currentPlayerStats.OnChangeEvent     += OnStatsChange;
        currentProjectileStats.OnChangeEvent += OnStatsChange;

        playerStats = new TimelinedProperty <TimedFloat, float> [(int)StatsIndex.End];
        for (int i = 0; i < playerStats.Length; i++)
        {
            playerStats[i] = new TimelinedProperty <TimedFloat, float>();
        }
    }
Example #2
0
 public void UpdateTimeline <T, V>(TimelinedProperty <T, V> timeline, T currentValue, float gameSpeed, float time)
     where T : TimedValue <V>
 {
     if (gameSpeed > 0)
     {
         timeline.SetValue(currentValue);
     }
     else if (gameSpeed < 0)
     {
         if (timeline.HasValueBefore(time))
         {
             timeline.UpdateValue(time, timeline.InterpolatedValueAt(time));
         }
         else if (timeline.TimePoints > 1)
         {
             timeline.RevertToStart();
         }
     }
 }
Example #3
0
 public void UpdateTimeline <T, V>(TimelinedProperty <T, V> timeline, T currentValue)
     where T : TimedValue <V>
 {
     UpdateTimeline <T, V>(timeline, currentValue, this.gameSpeed, this.ElapsedTime);
 }