private void Update() { if (isPlaying) { double editorTime = EditorApplication.timeSinceStartup; float dt = (float)(editorTime - lastEditorTime); t += dt; lastEditorTime = editorTime; int frame = SpriteAnimationBehaviour.GetFrameIndex(ac[currentAnimationId], t); if (frame != currentFrame) { currentFrame = frame; if (currentFrame == 0) { animationMotionPosition = Vector2.zero; } Repaint(); } if (showMotion) { Vector2 move = SpriteAnimationBehaviour.Move(SpriteAnimationBehaviour.SampleMotion(ac[currentAnimationId], t), SpriteAnimationBehaviour.FacingToVector(facing)) * ac[currentAnimationId].frames[currentFrame].motion.motionMultiplier * dt; animationMotionPosition += move; } } }
public virtual void OnDamageTarget(SpriteAnimationBehaviour animated, SpriteFrame frame, IDamagable damaged) { }
public virtual void OnFrameExit(SpriteAnimationBehaviour animated, SpriteFrame frame) { }