I just had to modify NGUI so I could delay tweens when using TweenAlpha.Begin and thought I would share it so someone else could use it or could be added for future versions. The reason I didn't delay my calls to TweenAlpha is because the system is already in place for UITweener to delay so I wanted to leverage that.
UITweener.cs. Add the following code
// Set the delay
public void SetDelay(float delay)
{
this.delay = delay;
}
public void UpdateStartTime()
{
mStartTime = Time.realtimeSinceStartup + delay;
}
UITweener.cs. Replace Start() with the following
void Start() { UpdateStartTime(); Update(); }
TweenAlpha.cs. Add a delay parameter to the Begin function
static public TweenAlpha Begin (GameObject go, float duration, float delay, float alpha)
TweenAlpha.cs. Add the following lines before return comp. Same thing can be applied to any Tween.
comp.SetDelay(delay);
comp.UpdateStartTime();
Enjoy!