// private float startTime; // private float m_TargetScale = 1.1f; // private float m_AnimTime = 1.0f; // private Vector3 m_StartPos; // private Vector3 m_TargetPos; // private Action m_CompleteCallBack; public void ShowDamage(DamageTextEnum type, int num, Action callback = null) { // m_CompleteCallBack = callback; m_TMP.text = num.ToString(); switch (type) { case DamageTextEnum.Normal: m_TMP.color = Color.white; break; case DamageTextEnum.Crit: m_TMP.color = Color.yellow; break; } transform.localScale = Vector3.zero; transform.DOScale(Vector3.one, 0.4f); transform.DOLocalMove(transform.localPosition + new Vector3(UnityEngine.Random.Range(-30, 30), UnityEngine.Random.Range(-30, 30), 0), 1.0f) .OnComplete(() => { if (callback != null) { callback.Invoke(); } }); // m_StartPos = transform.localPosition; // m_TargetPos = transform.localPosition + new Vector3(UnityEngine.Random.Range(-20, 20), UnityEngine.Random.Range(-20, 20), 0); // // startTime = Time.realtimeSinceStartup; }
private void CalcDamage() { int random = Random.Range(0, 100); DamageTextEnum type = DamageTextEnum.Normal; if (random < 10) { type = DamageTextEnum.Crit; } WorldUIPanel.S.ShowDamage(GamePlayMgr.S.playerMgr.role.transform.position, new Vector3(Random.Range(-40, 40), Random.Range(-40, 40) + 60, 0), type, Random.Range(1, 200)); }
// private void Update() // { // if (Input.GetKeyDown(KeyCode.O)) // { // int random = Random.Range(0, 100); // DamageTextEnum type = DamageTextEnum.Normal; // if (random < 10) // { // type = DamageTextEnum.Crit; // } // ShowDamage(PlayerMgr.S.role.transform.position, new Vector3(Random.Range(-40, 40), Random.Range(-40, 40) + 60, 0), type, Random.Range(1, 200)); // } // // for (int i = m_DamageTexts.Count - 1; i >= 0; i--) // // { // // m_DamageTexts[i].Trick(); // // } // } public void ShowDamage(Vector3 worldPos, Vector3 offset, DamageTextEnum type, int num) { var damageTextGo = GameObjectPoolMgr.S.Allocate("DamageText"); damageTextGo.transform.SetParent(transform); CustomExtensions.ScenePosition2UIPosition(GameCameraMgr.S.mainCamera, UIMgr.S.uiRoot.uiCamera, worldPos, damageTextGo.transform); damageTextGo.transform.localPosition += offset; var damageText = damageTextGo.GetComponent <DamageText>(); damageText.ShowDamage(type, num, () => { // m_DamageTexts.Remove(damageText); GameObjectPoolMgr.S.Recycle(damageTextGo); }); // m_DamageTexts.Add(damageText); }