/// <summary> /// Call this method to countdown the gameplay. /// </summary> private void CountdownUI() { _CountdownText.gameObject.SetActive(true); _CountdownText.text = "3"; _CountdownText.rectTransform.DOScale(new Vector2(3, 3), 1f).OnComplete(() => { _CountdownText.text = "2"; _CountdownText.rectTransform.localScale = Vector2.one; _CountdownText.rectTransform.DOScale(new Vector2(3, 3), 1f).OnComplete(() => { _CountdownText.text = "1"; _CountdownText.rectTransform.localScale = Vector2.one; _CountdownText.rectTransform.DOScale(new Vector2(3, 3), 1f).OnComplete(() => { _CountdownText.text = "START!!!"; _CountdownText.rectTransform.localScale = Vector2.one; _CountdownText.rectTransform.DOScale(new Vector2(3, 3), 1f).OnComplete(() => { OnInitFinish?.Invoke(); _CountdownText.gameObject.SetActive(false); }); }); }); }); }
/* * Func: Init () * Initialize current component if it's not initialized yet * * (start code) * GetComponent<UIItem>().Init(); * (end code) * * You can force component re-init by passing true as a parameter. * * (start code) * GetComponent<UIItem>().Init(true); * (end code) * * But it's better to use special helper method for that <InitForce ()> * * Parameters: * force - bool, defines should initialization be forced or not. Default - false */ public void Init(bool force = false) { if (!enabled) { return; // skip for disabled component } if (IsInitialized && !force) { return; // skip if already initialized and not force } RichInit(); // rich component initialization isInitialized = true; if (OnInitFinish != null) { OnInitFinish.Invoke(); // call OnInitFinish event } }
/// <summary> /// 设置初始化结束监听 /// </summary> /// <param name="onif">监听回调</param> public void setOnInitFinish(OnInitFinish onif) { f = onif; }