public BattleDamageNumGroup AddSpeedNum(string _str, Vector3 _pos) { _pos.y = _pos.y + 2.5f; int nowDrawIndex = -1; for (int i = 0; i < damageDrawNum; i++) { if (groupFreeVec[i] != null) { nowDrawIndex = i; break; } } BattleDamageNumGroup unit = groupFreeVec[nowDrawIndex]; unit.init(_str, 1); unit.State = 1; unit.Alpha = 1; groupFreeVec[nowDrawIndex] = unit.nextGroup; unit.nextGroup = groupUseVec[nowDrawIndex]; unit.preGroup = null; groupUseVec[nowDrawIndex] = unit; if (unit.nextGroup != null) { unit.nextGroup.preGroup = unit; } unit.pos.x = _pos.x; unit.pos.y = _pos.y; unit.pos.z = _pos.z; return(unit); }
public void AddDamageNum(string _str, int _color, Vector3 _pos, bool _randomDirection = false, bool _isFly = false) { _pos.y = _pos.y + 1.8f; int nowDrawIndex = -1; for (int i = 0; i < damageDrawNum; i++) { if (groupFreeVec[i] != null) { nowDrawIndex = i; break; } } //if(groupUseVec[nowDrawIndex] == null){ //mrList[nowDrawIndex] = GameObject.Instantiate(damageGO).GetComponent<MeshRenderer>(); //} BattleDamageNumGroup unit = groupFreeVec[nowDrawIndex]; unit.init(_str, _color); unit.State = 1; unit.alpha = 1; groupFreeVec[nowDrawIndex] = unit.nextGroup; unit.nextGroup = groupUseVec[nowDrawIndex]; unit.preGroup = null; groupUseVec[nowDrawIndex] = unit; if (unit.nextGroup != null) { unit.nextGroup.preGroup = unit; } if (!_randomDirection) { unit.pos.x = _pos.x; unit.pos.y = _pos.y; unit.pos.z = _pos.z; } else { unit.pos.y = _pos.y + randomRadios - (UnityEngine.Random.value * 2 * randomRadios); unit.pos.x = _pos.x + randomRadios - (UnityEngine.Random.value * 2 * randomRadios); unit.pos.z = _pos.z + randomRadios - (UnityEngine.Random.value * 2 * randomRadios); } if (!_isFly) { Action scaleCall = delegate() { Samll1(unit); }; Action <float> setScaleCall = delegate(float value) { unit.SetScale(value); }; SuperTween.Instance.To(unit.nowScale, targetScale, largeTime, setScaleCall, scaleCall); } else { Action moveCall = delegate() { MoveOver(unit); }; Action <float> setMoveCall = delegate(float value) { unit.pos.y = value; unit.alpha = 1 - (value - _pos.y) / flyHeight; }; SuperTween.Instance.To(unit.pos.y, unit.pos.y + flyHeight, flyTime, setMoveCall, moveCall); } }