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); | |||
|  |     } | |||
|  | } |