@@ -19,13 +19,23 @@ public class JCS_FadeObject : JCS_UnityObject
1919 {
2020 /* Variables */
2121
22- public Action onFadeOut = null ;
23- public Action onFadeIn = null ;
22+ // Execution after its done fading.
23+ public Action onAfterFade = null ;
24+ public Action onAfterFadeOut = null ;
25+ public Action onAfterFadeIn = null ;
2426
27+ // Exectuion before start fading.
28+ public Action onBeforeFade = null ;
29+ public Action onBeforeFadeIn = null ;
30+ public Action onBeforeFadeOut = null ;
31+
32+ // Execution while fading.
2533 public Action < float > onFading = null ;
2634
35+ // The current fade type.
2736 private JCS_FadeType mFadeType = JCS_FadeType . IN ; // defaul as visible
2837
38+ // Hold the alpha value.
2939 private float mAlpha = 1.0f ;
3040
3141#if UNITY_EDITOR
@@ -144,15 +154,35 @@ public bool IsFadeOut()
144154 return ( this . mAlpha <= mFadeOutAmount ) ;
145155 }
146156
147- public void FadeOut ( ) { FadeOut ( mFadeTime ) ; }
148- public void FadeIn ( ) { FadeIn ( mFadeTime ) ; }
149- public void FadeOut ( float time ) { FadeEffect ( JCS_FadeType . OUT , time ) ; }
150- public void FadeIn ( float time ) { this . FadeEffect ( JCS_FadeType . IN , time ) ; }
157+ /// <summary>
158+ /// Fade out.
159+ /// </summary>
160+ public void FadeOut ( )
161+ {
162+ FadeOut ( mFadeTime ) ;
163+ }
164+ public void FadeOut ( float time )
165+ {
166+ FadeEffect ( JCS_FadeType . OUT , time ) ;
167+ }
151168
152169 /// <summary>
153- /// Default function to point to,
154- /// prevent null reference exception.
155- /// to save check null pointer performance.
170+ /// Fade in.
171+ /// </summary>
172+ public void FadeIn ( )
173+ {
174+ FadeIn ( mFadeTime ) ;
175+ }
176+ public void FadeIn ( float time )
177+ {
178+ FadeEffect ( JCS_FadeType . IN , time ) ;
179+ }
180+
181+ /// <summary>
182+ /// Default function to point to, prevent null
183+ /// reference exception.
184+ ///
185+ /// To save check null pointer performance.
156186 /// </summary>
157187 public static void DefaultFadeCallback ( )
158188 {
@@ -183,19 +213,25 @@ private void FadeEffect(JCS_FadeType type, float time)
183213 {
184214 mAlpha = mFadeInAmount ;
185215 this . mVisible = false ;
216+
217+ onBeforeFadeOut ? . Invoke ( ) ;
186218 }
187219 break ;
188220 case JCS_FadeType . IN :
189221 {
190222 mAlpha = mFadeOutAmount ;
191223 this . mVisible = true ;
224+
225+ onBeforeFadeIn ? . Invoke ( ) ;
192226 }
193227 break ;
194228 }
195229
196230 this . mFadeTime = time ;
197231 this . mFadeType = type ;
198232 this . mEffect = true ;
233+
234+ onBeforeFade ? . Invoke ( ) ;
199235 }
200236
201237 /// <summary>
@@ -221,8 +257,11 @@ private void DoFade()
221257
222258 mEffect = false ;
223259
224- // do fade out callback
225- onFadeOut ? . Invoke ( ) ;
260+ // do callback
261+ {
262+ onAfterFadeOut ? . Invoke ( ) ;
263+ onAfterFade ? . Invoke ( ) ;
264+ }
226265
227266 return ;
228267 }
@@ -238,8 +277,11 @@ private void DoFade()
238277 {
239278 mEffect = false ;
240279
241- // do fade in callback
242- onFadeIn ? . Invoke ( ) ;
280+ // do callback
281+ {
282+ onAfterFadeIn ? . Invoke ( ) ;
283+ onAfterFade ? . Invoke ( ) ;
284+ }
243285
244286 return ;
245287 }
0 commit comments