/* http://www.cgsoso.com/forum-211-1.html CG搜搜 Unity3d 每日Unity3d插件免费更新 更有VIP资源! CGSOSO 主打游戏开发,影视设计等CG资源素材。 插件如若商用,请务必官网购买! daily assets update for try. U should buy the asset from home store if u use it in your project! */ using MS; using System; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class DailyWheel : MonoBehaviour { public Popup popup; public GameObject spinWheel; public Button closeBtn; public Button spinBtn; public Button spinAginBtn; public Text spinBtnText; public GameObject rewards; public Text rewardText; public ParticleSystem rewardParticle; public List rewardAmount; public float spintime = 8f; public AnimationCurve spinCurve; public RewardedVideoButton rewardedVideoButton; private bool isAdShow; public static bool isOpenOnce; private void Start() { if (!PlayerPrefs.HasKey("LastSpinDate")) { GameManager.LastSpin = DateTime.Now; } spinBtn.onClick.AddListener(OnSpinBtn); spinAginBtn.onClick.AddListener(OnSpinAgainBtn); if (GameManager.CanSpin && !GameManager.openLevelSelection && !isOpenOnce) { Invoke("ShowDailyWheel", 0.5f); } var em = rewardParticle.emission; em.enabled = false; } [ContextMenu("Show")] public void ShowDailyWheel() { isOpenOnce = true; UpdateUI(); popup.Open(); } public void UpdateUI() { closeBtn.interactable = true; spinBtn.gameObject.SetActive(value: true); spinAginBtn.gameObject.SetActive(value: false); if (GameManager.CanSpin) { CancelInvoke("UpdateUI"); spinBtn.interactable = true; spinBtnText.text = "Spin"; } else if (isAdShow || !rewardedVideoButton.IsAdAvailable()) { spinBtn.interactable = false; spinBtnText.text = "Next " + GameManager.RemandingForSpin.Hours + ":" + GameManager.RemandingForSpin.Minutes; InvokeRepeating("UpdateUI", 60f, 60f); } else { spinBtn.gameObject.SetActive(value: false); spinAginBtn.gameObject.SetActive(value: true); } } public void OnSpinBtn() { closeBtn.interactable = false; spinBtn.interactable = false; GameManager.LastSpin = DateTime.Now; int index = UnityEngine.Random.Range(0, rewardAmount.Count); LeanTween.rotateZ(spinWheel, 2520 + index * (360 / rewardAmount.Count), spintime).setOnComplete((Action)delegate { GameManager.Coin += rewardAmount[index]; HomeScene.instance.UpdateUI(); rewardText.text = rewardAmount[index] + string.Empty; LeanTween.scale(rewards, Vector3.one, 1f).setEaseOutQuad().setOnComplete((Action)delegate { var em = rewardParticle.emission; em.enabled = true; rewardParticle.Emit(rewardAmount[index]); LeanTween.scale(rewards, Vector3.zero, 1f).setEaseInQuad().setDelay(2f); UpdateUI(); }); }).setEase(spinCurve); } public void OnSpinAgainBtn() { rewardedVideoButton.OnClick(); } public void AdsShowComplete() { spinAginBtn.interactable = false; isAdShow = true; OnSpinBtn(); } }