//------------------------------------------------------------------------------------------------------------------ private void AppendRandomDamageNumberData() { SDamageNumbersData damageNumber = InitializeNullDamageNumbersStruct(); int count = Random.Range(1, 10); for (int i = 0; i < count; i++) { Rect startPosicao = new Rect(Random.Range(400, Screen.width - 400), Random.Range(400, Screen.height - 400), 100, 20); Vector2 endVector = new Vector2(Random.Range(-10.0f, 10.0f), Random.Range(-10.0f, 0)); endVector.Normalize(); endVector *= Random.Range(100.0f, 150.0f); Rect endPosicao = new Rect(endVector.x, endVector.y, 100, 20); endPosicao.x += startPosicao.x; endPosicao.y += startPosicao.y; int damageValue = Random.Range(1000000, 10000000); string damageValueText = damageValue.ToString(); damageValueText = string.Format("{0:0,0}", damageValue); damageNumber.m_textValue.Add(damageValueText); damageNumber.m_rectStartPosition.Add(startPosicao); damageNumber.m_rectCurrentPosition.Add(startPosicao); damageNumber.m_rectEndPosition.Add(endPosicao); damageNumber.m_currentTime = 0.0f; damageNumber.m_scale = 1.0f; } m_damageNumbersList.Add(damageNumber); }
//------------------------------------------------------------------------------------------------------------------ private void IncrementAnimationForAllDamageNumberData() { for (int i = 0; i < m_damageNumbersList.Count; i++) { SDamageNumbersData damageNumber = m_damageNumbersList[i]; damageNumber.m_currentTime += m_overallTimeDuration * Time.deltaTime; damageNumber.m_scale += 1.0f * Time.deltaTime; m_damageNumbersList[i] = damageNumber; } }
//------------------------------------------------------------------------------------------------------------------ private void AnimatePosition(int group, int item) { SDamageNumbersData damageNumber = m_damageNumbersList[group]; Vector2 startPosition = new Vector2(damageNumber.m_rectStartPosition[item].x, damageNumber.m_rectStartPosition[item].y); Vector2 endPosition = new Vector2(damageNumber.m_rectEndPosition[item].x, damageNumber.m_rectEndPosition[item].y); Vector2 position = Vector2.Lerp(startPosition, endPosition, damageNumber.m_currentTime); Rect rectPosition = new Rect(position.x, position.y, damageNumber.m_rectStartPosition[item].width, damageNumber.m_rectStartPosition[item].height); damageNumber.m_rectCurrentPosition[item] = rectPosition; m_damageNumbersList[group] = damageNumber; }
//------------------------------------------------------------------------------------------------------------------ private SDamageNumbersData InitializeNullDamageNumbersStruct() { SDamageNumbersData damageNumber = new SDamageNumbersData(); damageNumber.m_textValue = new List <string>(); damageNumber.m_rectStartPosition = new List <Rect>(); damageNumber.m_rectCurrentPosition = new List <Rect>(); damageNumber.m_rectEndPosition = new List <Rect>(); damageNumber.m_currentTime = 0.0f; damageNumber.m_scale = 1.0f; return(damageNumber); }