Guest User

Untitled

a guest
May 25th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.22 KB | None | 0 0
  1. using DG.Tweening;
  2. using UnityEngine;
  3.  
  4. /// <summary>
  5. /// SpriteRenderer を点滅させるコンポーネント
  6. /// </summary>
  7. [DisallowMultipleComponent]
  8. public sealed class Blinker : MonoBehaviour
  9. {
  10. //====================================================================================
  11. // 変数(SerializeField)
  12. //====================================================================================
  13. [SerializeField] private SpriteRenderer m_spriteRenderer = null ;
  14. [SerializeField] private float m_duration = 0 ; // 点滅の長さ
  15. [SerializeField] private int m_count = 0 ; // 点滅回数
  16. [SerializeField] private float m_alpha = 0 ; // 点滅する時の透明度
  17.  
  18. //====================================================================================
  19. // 変数
  20. //====================================================================================
  21. private bool m_isBlink ;
  22. private Tween m_tween ;
  23.  
  24. //====================================================================================
  25. // 関数
  26. //====================================================================================
  27. /// <summary>
  28. /// 破棄される時に呼び出されます
  29. /// </summary>
  30. private void OnDestroy()
  31. {
  32. if ( m_tween != null )
  33. {
  34. m_tween.Kill();
  35. m_tween = null;
  36. }
  37. }
  38.  
  39. /// <summary>
  40. /// 点滅します
  41. /// </summary>
  42. [ContextMenu( "Blink" )]
  43. public void Blink()
  44. {
  45. if ( m_tween != null )
  46. {
  47. m_tween.Kill();
  48. }
  49.  
  50. m_tween = DOTween
  51. .To( value => { }, 0, 1, m_duration )
  52. .OnStepComplete( () => DoBlink( !m_isBlink ) )
  53. .SetLoops( m_count * 2, LoopType.Restart )
  54. .OnComplete( () => DoBlink( false ) )
  55. ;
  56.  
  57. DoBlink( false );
  58. }
  59.  
  60. /// <summary>
  61. /// 点滅する時に呼び出されます
  62. /// </summary>
  63. private void DoBlink( bool isBlink )
  64. {
  65. m_isBlink = isBlink;
  66.  
  67. var color = m_spriteRenderer.color;
  68. color.a = isBlink ? m_alpha : 1;
  69. m_spriteRenderer.color = color;
  70. }
  71. }
Add Comment
Please, Sign In to add comment