private Hitbox FindHitbox(float elapsed, List <Hitbox> hitboxes) { for (int kIndex = hitboxes.Count - 1; kIndex >= 0; kIndex--) { Hitbox h = hitboxes[kIndex]; float time = FrameAndSecondsConverter._30Fps.FloatFramesToSeconds(h.frame); if (elapsed >= time) { return(h); } } throw new Exception("Cannot find hitbox"); }
protected override void OnUpdate(float dt) { elapsed += dt; Hitbox h = FindHitbox(elapsed, sortedHitboxes); RectPivotPosition rectPivotPosition = new RectPivotPosition( h.ShowPivotType(), h.pivotRelativePosition, h.size ); collider.center = rectPivotPosition.RelativePositionOfPivotAt( RectPivotPosition.PivotType.Center ); collider.size = h.size; if (collider.size == Vector3.zero) { collider.enabled = false; } else { collider.enabled = true; } }