//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //	* New Method: Resize Array
 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 public static ColourAnimationEffect[] ResizeArray(ColourAnimationEffect[] Original, int NewSize)
 {
     ColourAnimationEffect[] aeNewArray = new ColourAnimationEffect[NewSize];
     for (int i = 0; i < aeNewArray.Length; ++i)
     {
         if (i < Original.Length)
         {
             aeNewArray[i] = Original[i].Clone();
         }
         else
         {
             aeNewArray[i] = new ColourAnimationEffect();
         }
     }
     return(aeNewArray);
 }
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //	* New Method: Clone
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    public ColourAnimationEffect Clone()
    {
        ColourAnimationEffect AE = new ColourAnimationEffect();

        AE.m_fTotalAnimationTime = this.m_fTotalAnimationTime;
        AE.m_cStartingColour     = this.m_cStartingColour;
        AE.m_cEndColour          = this.m_cEndColour;
        if (this.m_ttTimer != null)
        {
            AE.m_ttTimer = new TimeTracker(this.m_ttTimer.FinishTime);
        }

#if UNITY_EDITOR
        AE.m_sEffectName = this.m_sEffectName;
#endif

        return(AE);
    }