🥎Bobber Controller

Controls the visual bobber: spawns it with a smooth arc or linear trajectory, animates it to the water surface, handles reeling physics, and retreats it back to the rod. Integrates with animation events via the IBobberSpawner interface.

Requires: A bobber prefab (with optional Aligner for rotation) and references to the rod tip and fisher.


🔧 Inspector Settings

Bobber Prefab

The GameObject to instantiate as the bobber. Can be left empty for invisible fishing logic.

Rod Tip & Fisher Ref

  • Rod Tip: Where the bobber originates (e.g., fishing rod tip bone).

  • Fisher Ref: Used to align the bobber and calculate reeling direction.

Bobber Positioning

  • Spawn Interpolation (0–1) Where along the line (or arc) between rod tip and water the bobber initially appears. 0 = at rod, 1 = at water.

  • Use Arc Trajectory Enables a parabolic cast path for more natural motion.

  • Arc Height Peak height of the arc (only when arc trajectory is enabled).

Animation Settings

  • Animate to Surface If disabled, the bobber appears instantly at the water surface.

  • Animation Duration & Curve Controls how long and how smoothly the bobber moves from spawn point to water.

Retreat Animation Settings

  • Retreat Duration & Curve How the bobber returns to the rod when fishing ends.

  • Retreat Animation Percentage How long (as % of retreat time) the bobber tracks the moving rod tip.

  • Retreat Despawn When (as % of retreat time) to hide the bobber—useful for hiding it before the animation fully ends.

  • Retreat Position Offset Fine-tune the final retreat position, rotation, and scale (great for matching rod animations).

Reeling Settings

  • Base Reeling Speed How fast the bobber moves toward the player while reeling.

  • Reeling Bob Amount / Speed Adds subtle up/down motion during reeling for realism.


📈 Public Methods & Events

Events

  • OnBobberTouchWater — Fired when the bobber reaches the water surface.

  • OnBobberExitWater — Fired when retreating begins.

  • OnReelerComplete — Fired when reeling finishes (either by distance or proximity).

Key Methods

  • InformWaterHit(Vector3 point, LayerMask waterLayer) Called by FishingCaster to tell the bobber where the water surface is.

  • StartReeling(float speed, float distance) Begins reeling the bobber toward the player. Called externally (e.g., by a reeling minigame).

  • StopReeling() Immediately halts reeling motion.

  • HandleFishingEnd() Cleans up state, hides the bobber, and resets tracking. Called when fishing is canceled or completed.

💡 The component automatically responds to IBobberSpawner events (OnBobberSpawn, OnBobberRetreat)—usually triggered by animation events in your fishing state machine.

Last updated