Exemplo n.º 1
0
        // 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;
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        // 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);
        }