Esempio n. 1
0
        private void SetSprite(NumberPopupType popupType, GameObject numberObj, int index, int skinId, int i)
        {
            var renderer = numberObj.GetComponent <SpriteRenderer>();

            switch (popupType)
            {
            case NumberPopupType.Hit:
                renderer.sprite = _allSkinData.GetSkin(skinId).Hit[index];
                break;

            case NumberPopupType.Critical:
                renderer.sprite = _allSkinData.GetSkin(skinId).Critical[index];
                break;

            case NumberPopupType.Take:
                renderer.sprite = _allSkinData.GetSkin(skinId).Take[index];
                break;

            case NumberPopupType.Heal:
                renderer.sprite = _allSkinData.GetSkin(skinId).Heal[index];
                break;

            default:
                break;
            }

            renderer.sortingOrder = i + _existCount;
        }
Esempio n. 2
0
        private void PopupNumberByType(NumberPopupType popupType, int damage, GameObject damageTakerObj, int skinId = 0)
        {
            float posOffsetY = damageTakerObj.GetComponent <SpriteRenderer>().bounds.extents.y + 0.2f;

            // INFO: e.g. damage = 8351 -> "8351" -> ['8','3','5','1'] -> indices = [8, 3, 5, 1]
            var numbers = damage.ToString().ToCharArray().Select(x => Convert.ToInt32(x.ToString()));

            foreach (var prop in numbers.Select((number, i) => new { number, i }))
            {
                var numberObj = InstantiatePopupNumber(posOffsetY, damageTakerObj, prop.i);
                SetSprite(popupType, numberObj, prop.number, skinId, prop.i);
            }

            _existCount += numbers.Count();

            // To Avoid Overflow
            if (_existCount > 1000000000)
            {
                _existCount = 0;
            }
        }