public Vector3 GetRandom(Vector3 maxRandom, int iElement) { MathUtils.tempV3.x = maxRandom.x * (DRandom.GetUnit(iElement)); MathUtils.tempV3.y = maxRandom.y * (DRandom.GetUnit(iElement + 13 * iElement)); MathUtils.tempV3.z = maxRandom.z * (DRandom.GetUnit(iElement + 29 * iElement)); return(MathUtils.tempV3); }
public override void OnStop(TextAnimation se, SE_Animation anim, int sequenceIndex) { if (!Application.isPlaying || !_OnFinish_SetAlphaToFinalValue) { return; } var currentAlpha = se.mWidgetColor.a; float t = anim._Backwards ? 0 : 1; var progress = _EasingCurve.Evaluate(t); //--[ From ]---------------------------- float aFrom = _From * 255; if (_AnimBlend_From == eFloatAnimBlendMode.Offset) { aFrom = aFrom + currentAlpha; } if (_AnimBlend_From == eFloatAnimBlendMode.Blend) { aFrom = _From * currentAlpha; } if (HasRandom(_FromRandom)) { aFrom += 255 * _FromRandom * DRandom.GetUnit(0); } //--[ To ]---------------------------- float aTo = 255 * _To; if (_AnimBlend_To == eFloatAnimBlendMode.Offset) { aTo = (currentAlpha + _To); } if (_AnimBlend_To == eFloatAnimBlendMode.Blend) { aTo = (currentAlpha * _To); } if (HasRandom(_ToRandom)) { aTo += 255 * _ToRandom * DRandom.GetUnit(0 * 2 + 90); } // Find Alpha for this Character float falpha = (aFrom + (aTo - aFrom) * progress); byte alpha = (byte)(falpha < 0 ? 0 : falpha > 255 ? 255 : falpha); var color = se.mWidgetColor; color.a = alpha; se.SetWidgetColor(color); }
public override void Apply_Characters(TextAnimation se, SE_Animation anim, int sequenceIndex) { if (anim.mTime < mDelay && !_InitAllElements) { return; } bool applyRandomFrom = HasRandom(_FromRandom); bool applyRandomTo = HasRandom(_ToRandom); DRandom.mCurrentSeed = GetRandomSeed(anim, sequenceIndex); // Iterate through all the valid range for (int iElement = mElementRangeStart; iElement < mElementRangeEnd; ++iElement) { float progress = GetProgress(anim.mTime, anim, iElement); if (!_InitAllElements && progress < 0) { continue; } progress = progress < 0 ? 0 : progress; progress = _EasingCurve.Evaluate(progress); var currentAlpha = TextAnimation.mOriginalVertices.Buffer[iElement * 4].color.a; //--[ From ]---------------------------- float aFrom = _From * 255; if (_AnimBlend_From == eFloatAnimBlendMode.Offset) { aFrom = aFrom + currentAlpha; } if (_AnimBlend_From == eFloatAnimBlendMode.Blend) { aFrom = _From * currentAlpha; } if (applyRandomFrom) { aFrom += 255 * _FromRandom * DRandom.GetUnit(iElement); } //--[ To ]---------------------------- float aTo = 255 * _To; if (_AnimBlend_To == eFloatAnimBlendMode.Offset) { aTo = (currentAlpha + _To); } if (_AnimBlend_To == eFloatAnimBlendMode.Blend) { aTo = (currentAlpha * _To); } if (applyRandomTo) { aTo += 255 * _ToRandom * DRandom.GetUnit(iElement * 2 + 90); } // Find Alpha for this Character float falpha = (aFrom + (aTo - aFrom) * progress); byte alpha = (byte)(falpha < 0?0 : falpha > 255?255: falpha); // Apply to all Vertices for (int v = iElement * 4; v < iElement * 4 + 4; ++v) { TextAnimation.mOriginalVertices.Buffer[v].color.a = alpha; } } }