Test: Press F in play mode
FaceoffManager manager = FindObjectOfType<FaceoffManager>();
manager.InitiateFaceoff(centerIcePosition);
if (playerController.HasPuck())
{
// Player has possession
}
Vector3 goalDirection = (goal.position - transform.position).normalized;
playerController.Shoot(goalDirection, powerMultiplier: 1.0f);
PlayerController teammate = FindBestTeammate();
playerController.Pass(teammate);
PlayerController opponent = GetNearbyOpponent();
playerController.Check(opponent); // May dislodge puck
FaceoffManager.cs line ~30:
[SerializeField] private float struggleChance = 0.5f; // 50% struggles
PuckController.cs line ~14:
[SerializeField] private float possessionRadius = 2.0f; // Easier pickup
PuckController.cs line ~17:
[SerializeField] private float friction = 0.1f; // Slides further
Puck won't pickup:
Faceoff won't start:
No visual indicator:
| Stat | Weight | Impact |
|---|---|---|
| Strength | 30% | Physical win |
| Stick Handling | 30% | Puck control |
| Awareness | 20% | Read the drop |
| Agility | 20% | Quick reaction |
PuckController.cs - Puck physics & possessionFaceoffManager.cs - Faceoff logic & sequencingPlayerController.cs - Updated with puck methodsFaceoffSetupGuide.cs - Auto-setup helperPuckDebugVisualizer.cs - Debug visualizationFACEOFF_SYSTEM_README.md - Full documentationNeed help? Check FACEOFF_SYSTEM_README.md for detailed docs!