Current version 1.5.0.08.26

Documentation

Quick Start

Test the included DemoScene, then connect the core fishing components in a minimal custom scene.

This guide first verifies the complete included example. It then describes the smallest custom fishing setup.

Open the DemoScene

Open:

Assets/FishingGameTool/Example/Scenes/DemoScene.unity

Enter Play Mode. The included UI opens with the control reference visible.

Demo controls

Keyboard and mouse:

  • WASD: move
  • Mouse: look
  • Space: jump
  • E: interact
  • Hold and release left mouse button: charge and cast
  • Hold right mouse button: reel in
  • R: reset the current fishing state
  • Tab: show or hide the menu

Gamepad:

  • Left stick: move
  • Right stick: look
  • South button: jump
  • West button: interact
  • Right trigger: charge and cast
  • Left trigger: reel in
  • East button: reset the current fishing state
  • Select: show or hide the menu

Test the fishing loop

  1. Close the menu with Tab or the gamepad Select button.
  2. Walk to an interactable bait object in the scene.
  3. Face the object until the interaction marker appears.
  4. Press E or the gamepad West button to add the bait.
  5. Face the water.
  6. Hold Cast to charge the cast-force bar.
  7. Release Cast to spawn and throw the fishing float.
  8. Wait until the float detects the water.
  9. Hold Reel In to retrieve the float.
  10. When loot is caught, watch the line-load UI and release Reel In when load must recover.
  11. Retrieve the caught loot within Catch Distance.

The selected loot tier cannot exceed the tier allowed by the current bait. Without bait, only Common loot is eligible.

Reset an empty cast

Press R or the gamepad East button at any time after casting. FishingSystem destroys the active float, clears pending catch state, resets the line and rod, and makes the next cast available immediately.

Reset Fishing does not repair a broken line. Use RepairFishingLine() or the example Fix Fishing Line button when line breakage is enabled.

Inspect the configured example

Exit Play Mode and inspect these objects:

  • Character: InputHandler, CharacterMovement, CameraController, FishingSystem, HandIK, and InteractionSystem
  • FishingRod child: generated rig, reel parts, hand grips, line guides, FishingRod, and two LineRenderers
  • UICharacter: SimpleUIManager and example HUD
  • Water: collider, fishing layer, and FishingLoot list
  • FishingFloat prefab: Rigidbody, collider, FishingFloat, and optional visual animation

The Character and UI prefabs are example integrations. The FishingSystem, FishingRod, FishingFloat, FishingLoot, and data assets form the reusable core.

Create a minimal custom fishing spot

Create the water object

  1. Create a GameObject with a Collider that represents the fishable surface.
  2. Assign it to the layer used by FishingSystem's Fishing Layer mask.
  3. Add Fishing Game Tool > Fishing Loot.
  4. Create at least one loot asset through Assets > Create > Fishing Game Tool > New Fishing Loot.
  5. Add the loot asset to the Fishing Loot list.

FishingFloat reads FishingLoot from the same GameObject as the detected water collider. Keep the collider and FishingLoot component together unless the integration code is extended.

Add a fishing rod

For the fastest setup, use:

Assets/FishingGameTool/Example/Prefabs/FishingRod/FishingRod.prefab

For a custom model, follow the complete Rod Builder guide. It covers model preparation, pivot placement, flexible meshes, line guides, hand grips, reel pivots, rotation axes, baking, and the required FishingRod data.

Add a float prefab

For the fastest setup, use:

Assets/FishingGameTool/Example/Prefabs/FishingFloat/FishingFloat.prefab

A custom float requires:

  • FishingFloat
  • Rigidbody
  • Collider
  • A dedicated float layer
  • Fishing Float Layer Mask that excludes the float layer from surface checks

Optional bobbing animation requires a child visual Transform, AnimationCurve, force, and speed.

Add FishingSystem

  1. Add Fishing Game Tool > Fishing System to the player or fishing owner.
  2. Assign Input Handler.
  3. Assign Fishing Rod.
  4. Assign Fishing Layer to the water layer.
  5. Assign the Fishing Float Prefab.
  6. Set Max Cast Force, Force Charge Rate, Spawn Float Delay, and Catch Distance.
  7. Expand Advanced Settings and assign optional Catch Probability Data.

FishingSystem validates InputHandler, FishingRod, FishingFloat prefab, and Advanced Settings during Awake. The float prefab must contain both FishingFloat and Rigidbody.

Add input

Add InputHandler and assign actions from:

Assets/FishingGameTool/Example/InputActions/FGTInputActions.inputactions

FishingSystem reads Cast Held, Attract Held, and Reset Fishing Pressed. A custom character can read the other InputHandler properties or bypass the example character scripts.

Test the scene

  1. Enter Play Mode.
  2. Charge and release Cast.
  3. Confirm that the float collides with the scene and detects water.
  4. Confirm that the line appears from the rod tip to the float.
  5. Hold Reel In and verify empty-float movement.
  6. Wait for loot and verify rod bending, reel rotation, load changes, and reward delivery.
  7. Press Reset Fishing and confirm that another cast is immediately available.

Continue with Configuration for every main setting and Troubleshooting when a reference, layer, input, line, or catch does not behave as expected.