Current version 1.5.0.08.26

Documentation

Troubleshooting

Diagnose setup, rod generation, casting, loot, input, animation, interaction, and rendering issues in Fishing Game Tool.

Start with the checks on this page before changing runtime code. Most setup issues come from a missing Inspector reference, an incorrect layer mask, or a generated rod that no longer matches its source hierarchy.

The package does not compile after import

Fishing Game Tool 1.5.0.08.26 supports Unity 2022.3.4f1 and newer and uses the new Input System.

Check that:

  1. The project is opened in Unity 2022.3.4f1 or newer.
  2. Input System is installed through Package Manager.
  3. Active Input Handling is set to Input System Package (New) or Both.
  4. Unity has finished importing packages before you inspect Console errors.

Use package versions compatible with the active editor. Unity 2022.3 should use its compatible Input System and URP packages rather than the package manifest from the Unity 6 development project.

The included example scene and materials target URP. Core fishing scripts do not depend on a particular render pipeline, but example materials may need conversion in another pipeline.

Rigidbody velocity does not compile

FishingFloat and FishingSystem select the Rigidbody API automatically:

  • Unity 2022 and Unity 2023 use Rigidbody.velocity.
  • Unity 6 uses Rigidbody.linearVelocity.

If Console reports that one of these properties is missing from a Fishing Game Tool script, first reimport the complete Assets/FishingGameTool folder. Do not copy only one updated fishing script over files from an older asset version, and do not manually define UNITY_6000_0_OR_NEWER in Player Settings.

If the error comes from custom project code, use the Rigidbody property supported by that editor or add a compile-time branch in the custom script. The Fishing Game Tool public API itself does not require separate Unity 2022 and Unity 6 integration code.

Package Manager reports incompatible dependencies

Do not reuse the Unity 6 development project's package manifest in an older editor. Install packages through the active editor's Package Manager.

For Unity 2022.3.4f1, the validated baseline is Input System 1.4.3, Universal RP 14.0.8, TextMesh Pro 3.0.6, and the Unity UI version supplied with the editor. The example visuals require URP, but the core fishing runtime can be used with another render pipeline after replacing or converting example materials.

The documentation window is empty

The documentation reader loads Markdown files from Assets/FishingGameTool/Documentation. Do not rename or move that folder inside the imported package. Reimport the folder and reopen Tools > Fishing Game Tool > Documentation.

Input does not respond

On the example Character prefab, verify every InputActionProperty assigned to InputHandler. The expected actions are Move, Look, Jump, Interact, Cast, Attract, and Menu.

Reset Fishing is resolved from the same action map as Cast and must keep the exact action name ResetFishing. Also verify that the Player action map is enabled and Active Input Handling uses the new Input System.

Create Fishing Rod is disabled

Select the rod root in the Hierarchy, then right-click it and choose Fishing Game Tool > Create Fishing Rod. The selected object must contain a MeshFilter. A Project-window model asset or an empty parent without a MeshFilter cannot be used directly.

The Rod Builder reports invalid references

Verify the minimum required setup:

  • Rod Root has a MeshFilter and MeshRenderer.
  • Flexible Start and Rod Tip belong to the selected rod hierarchy.
  • Reel Mount and Line Tip are assigned.
  • Bone Count is at least 2.
  • Every Line Guide belongs to the rod hierarchy and follows the reel-to-tip order.

Remove the reel, crank, grip, and other rigid parts from Remaining Rod Meshes. Those parts are attachments and must not be combined into the flexible rod mesh.

The generated rod has the wrong pivot or orientation

Assign Pivot before generating the prefab. The generated prefab root is placed at that point and receives a zero world rotation while the visible rod keeps its original world orientation.

If the result is still incorrect, inspect the source hierarchy for negative scale or nested non-uniform scale. Correct the source and generate the rod again instead of rotating generated bones manually.

The generated rod does not bend

Procedural bending is active only when:

  • the rod was generated successfully by the Rod Builder;
  • the generated Bones array and Rod Renderer are assigned;
  • a loot object is currently caught;
  • the fishing float still exists;
  • the line is not broken.

Inspect Bend Amount and the generated bend profile on FishingRod. Do not add imported rod-bending clips; this version bends the generated rod procedurally.

The reel or handle rotates around the wrong axis

Regenerate the rod after correcting Reel Arm Axis or Reel Spool Axis in the Rod Builder. The Scene view preview shows the selected local axis. Configure the arm and spool axes and their rotations per meter independently.

The secondary hand does not follow the reel handle

Assign the reel grip mesh in the Rod Builder. The generated Secondary Hand Grip is placed at the grip pivot so HandIK can follow it.

Also verify that HandIK references the active FishingRod, the Animator layer has IK Pass enabled, both hand grips exist, and the character Avatar has valid hand bones.

The fishing line is pink

Generate the rod again or assign a compatible material to both line renderers. The Rod Builder assigns the included default line material when it is available.

Pink rendering usually means the shader is missing or incompatible with the project's render pipeline. Convert or replace the material for the active pipeline.

The permanent rod line skips a guide

The permanent line follows Reel Mount, the ordered Line Guides list, and Line Tip. Regenerate the rod after changing these references. This line is visual only; it is not a rope simulation and does not collide with the environment.

Casting is unavailable

Inspect FishingSystem.CanCast and related state:

  • an active or pending cast prevents another cast;
  • a broken line must be repaired before casting;
  • FishingRod must have a FishingFloat prefab;
  • FishingSystem, FishingRod, InputHandler, and the cast point must be assigned.

Use Reset Fishing to cancel the current fishing state. Reset Fishing intentionally does not repair a broken line; use RepairFishingLine for that.

The float does not detect water

Check the FishingFloat prefab and the water object:

  1. The float has FishingFloat and Rigidbody.
  2. FishingFloat Surface Mask includes the water and land collider layers.
  3. The checker position and radius reach the surface.
  4. The water collider is enabled and uses the expected layer.

After importing into another project, verify layer numbers and masks instead of assuming they match the demo project.

The float lands in water but no loot is available

FishingLoot must be on the same GameObject as the water collider detected by FishingFloat. A component placed only on an unrelated parent is not used.

Then verify that FishingLoot contains at least one FishingLootData entry with a positive Catch Rarity, a tier allowed by the current bait, and a valid prefab when Loot Catch Type is Spawn Item.

With no bait, the maximum available tier is Common. Better bait unlocks higher tiers; it does not guarantee a catch.

Catching never succeeds

Check the active CatchProbabilityData on FishingSystem. Verify its check interval, probability values, and distance ranges. The float must remain in valid water containing FishingLoot, and weighted selection requires at least one eligible entry with a positive Catch Rarity.

The game freezes while selecting loot

Version 1.5.0.08.26 filters invalid, unavailable, and non-positive-weight entries before one weighted selection. It does not repeatedly reroll unavailable loot. Custom integrations should also build an eligible list before selecting a weighted item.

The caught reward is not spawned

For the included reward flow, set FishingLootData Loot Catch Type to Spawn Item and assign Loot Prefab.

Invoke Event remains a reserved option and is not a complete reward-delivery path in this release. Use the public fishing state or your own integration event for a custom reward flow.

Reset Fishing does not fix the line

This is expected. ResetFishing cancels the current cast and returns the float to the rod, while RepairFishingLine repairs FishingLineStatus. The actions remain separate so a normal reset does not silently remove the broken-line consequence.

Interaction does not detect an object

Verify that:

  • the collider layer is included in InteractionSystem Interaction Layers;
  • the object is within Interaction Radius and Interaction Angle;
  • InteractionHandler is on the collider object or one of its parents;
  • InputHandler has Interact assigned;
  • CharacterMovement, CameraController, Interaction Mark, and Camera references are assigned.

The system prioritizes candidates closest to the center of the current third-person camera view, not only the closest object to the character.

The character moves but animations are incorrect

The Animator Controller used by CharacterMovement must contain Speed as a float, Jump as a trigger, and IsGrounded as a bool. Verify transition conditions, exit times, blend-tree thresholds, Avatar assignment, and Apply Root Motion. The included movement is controller-driven, so root motion should not replace CharacterMovement translation.

If an imported clip reports that AnimationEvent OnFootstep has no receiver, keep the included receiver component on the animated character or remove unused footstep events from copied clips.

Jumping or ground detection is unreliable

Assign CharacterMovement Ground Layers and confirm that walkable colliders use those layers. Review slope limit, ground-check distance, and CharacterController dimensions after changing model scale. An empty Ground Layers mask prevents reliable grounding.

The camera clips through geometry

Set CameraController Collision Layers to include level geometry and exclude the player hierarchy. Review collision radius, minimum distance, pivot height, and shoulder offset.

The controller uses a SphereCast between its pivot and target camera position. A wrong mask prevents correction; an overly broad mask may make the camera collide with the player or rod.

Before contacting support

Include:

  • Unity version and render pipeline;
  • Fishing Game Tool version;
  • the first relevant Console error and its full stack trace;
  • screenshots of FishingSystem, FishingRod, and the related component;
  • clear reproduction steps;
  • whether the issue also occurs in DemoScene.

Support resources: