private IEnumerator SheetingAnimation() { int maxLength = attackModel.sheetingSprite.Length; float frameTime = attackModel.sheetingFrame / 1000; int renderIndex = 0; float startTime = Time.time; while (Time.time < startTime + attackModel.floatingTime) { while (renderIndex < maxLength) { rendererController.sprite = attackModel.sheetingSprite[renderIndex]; renderIndex++; yield return(new WaitForSecondsRealtime(frameTime)); } renderIndex = 0; } currentStat = BURRICANEBURN_STATUS.SHEETITING_END; durationAnimation = false; }
private IEnumerator ApprearenceAnimation(bool isStart) { Sprite[] targetSprite = isStart ? attackModel.sheetingSpriteStart : attackModel.sheetingSpriteEnd; int maxLength = targetSprite.Length; float frameTime = attackModel.appreanceFrame / 1000; int renderIndex = 0; float startYValue = isStart ? attackModel.stretchYMin : attackModel.stretchYMax; float endYValue = isStart ? attackModel.stretchYMax : attackModel.stretchYMin; float eachYStep = (endYValue - startYValue) / maxLength; float currentYValue = startYValue; colliderController.size = new Vector2(colliderController.size.x, startYValue); while (renderIndex < maxLength) { colliderController.size = new Vector2(colliderController.size.x, currentYValue); currentYValue += eachYStep; rendererController.sprite = targetSprite[renderIndex]; renderIndex++; yield return(new WaitForSecondsRealtime(frameTime)); } colliderController.size = new Vector2(colliderController.size.x, endYValue); renderIndex = 0; if (isStart) { currentStat = BURRICANEBURN_STATUS.SHEETITING; } else { currentStat = BURRICANEBURN_STATUS.DESTROY; } durationAnimation = false; }
public void SetParameter(MagitionAttackModel _argModel) { attackModel = _argModel; currentStat = BURRICANEBURN_STATUS.SHEETITING_START; }