37 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
	
	
| using System.Collections;
 | |
| using System.Collections.Generic;
 | |
| using UnityEngine;
 | |
| using UnityEngine.UI;
 | |
| using DG.Tweening;
 | |
| 
 | |
| public class SoundBubble : MonoBehaviour
 | |
| {
 | |
|     [SerializeField] Image[] mImgBubbles;
 | |
|     [SerializeField] float mRadius = 120;
 | |
| 
 | |
|     public void Show(int pLevelID)
 | |
|     {
 | |
|         Vector2 tStartPos = Quaternion.AngleAxis(Random.Range(0, 360), Vector3.back) * (Vector2.up * mRadius);
 | |
|         for (int i = 0; i < mImgBubbles.Length; i++)
 | |
|         {
 | |
|             mImgBubbles[i].sprite = ResourceManager.Instance.LoadRes<Sprite>(Const.Path.GetSoundPic(pLevelID, i));
 | |
|             mImgBubbles[i].color = Color.white;
 | |
|             mImgBubbles[i].rectTransform.anchoredPosition = Vector2.zero;
 | |
|             mImgBubbles[i].rectTransform.localScale = Vector3.zero;
 | |
| 
 | |
|             mImgBubbles[i].rectTransform.DOAnchorPos(Quaternion.AngleAxis(120 * i, Vector3.back) * tStartPos, 0.3f).SetEase(Ease.OutBack);
 | |
|             mImgBubbles[i].rectTransform.DOScale(Vector3.one, 0.3f).SetEase(Ease.OutBack);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public void Hide()
 | |
|     {
 | |
|         for (int i = 0; i < mImgBubbles.Length; i++)
 | |
|         {
 | |
|             mImgBubbles[i].DOFade(0, 0.8f).SetEase(Ease.Linear);
 | |
|             mImgBubbles[i].rectTransform.DOScale(Vector3.one * 1.1f, 0.8f).SetEase(Ease.InBack);
 | |
|         }
 | |
| 
 | |
|         Destroy(gameObject, 1);
 | |
|     }
 | |
| } |