reconnect, 30% fixes from test feedback
This commit is contained in:
@@ -106,6 +106,12 @@ public class GameManager : NetworkBehaviour
|
||||
public float puckDragClampMax = 5f;
|
||||
public float puckDragMinClamp = 1f;
|
||||
|
||||
[Header("Field bounds")]
|
||||
[Tooltip("Pitch width (X). Length (Y) is fieldSize × 2. Origin-centered; used for boundary-based camera zoom while dragging.")]
|
||||
public float fieldSize = 10f;
|
||||
[Tooltip("Exponent on distance-to-boundary (0–1). >1 = subtle at center, ramps up mostly near the boundary; 1 = linear.")]
|
||||
[Min(0.01f)] public float cameraStretchBoundaryExponent = 2.5f;
|
||||
|
||||
[SyncVar(hook = nameof(OnScoreChanged))]
|
||||
public int redScore=0;
|
||||
[SyncVar(hook = nameof(OnScoreChanged))]
|
||||
@@ -161,6 +167,50 @@ public class GameManager : NetworkBehaviour
|
||||
instance = this;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Blends from <paramref name="centerMultiplier"/> at the pitch center to <paramref name="boundaryMultiplier"/>
|
||||
/// at the boundary (and beyond), using the max normalized axis distance inside the field rectangle.
|
||||
/// </summary>
|
||||
public float GetCameraStretchDistanceMultiplier(Vector3 puckWorldPosition, float centerMultiplier = 0.3f, float boundaryMultiplier = 1f)
|
||||
{
|
||||
if (fieldSize <= Mathf.Epsilon)
|
||||
return boundaryMultiplier;
|
||||
|
||||
float halfWidth = fieldSize * 0.5f;
|
||||
float halfHeight = fieldSize;
|
||||
|
||||
float nx = Mathf.Abs(puckWorldPosition.x) / halfWidth;
|
||||
float ny = Mathf.Abs(puckWorldPosition.y) / halfHeight;
|
||||
float t = Mathf.Clamp01(Mathf.Max(nx, ny));
|
||||
float shaped = Mathf.Pow(t, cameraStretchBoundaryExponent);
|
||||
return Mathf.Lerp(centerMultiplier, boundaryMultiplier, shaped);
|
||||
}
|
||||
|
||||
void OnDrawGizmos()
|
||||
{
|
||||
if (fieldSize <= Mathf.Epsilon)
|
||||
return;
|
||||
|
||||
float halfWidth = fieldSize * 0.5f;
|
||||
float halfHeight = fieldSize;
|
||||
Vector3 c = Vector3.zero;
|
||||
Vector3 right = new Vector3(halfWidth, 0f, 0f);
|
||||
Vector3 up = new Vector3(0f, halfHeight, 0f);
|
||||
|
||||
Vector3 a = c - right - up;
|
||||
Vector3 b = c + right - up;
|
||||
Vector3 d = c + right + up;
|
||||
Vector3 e = c - right + up;
|
||||
|
||||
Color prev = Gizmos.color;
|
||||
Gizmos.color = new Color(1f, 0.92f, 0.016f, 0.85f);
|
||||
Gizmos.DrawLine(a, b);
|
||||
Gizmos.DrawLine(b, d);
|
||||
Gizmos.DrawLine(d, e);
|
||||
Gizmos.DrawLine(e, a);
|
||||
Gizmos.color = prev;
|
||||
}
|
||||
|
||||
/// <summary>Server-only: called from <see cref="NetPlayer.CmdSetTeam"/> after <c>myTeam</c> is set.</summary>
|
||||
public void OnMatchPlayerTeamAssigned(Team team)
|
||||
{
|
||||
@@ -226,6 +276,9 @@ public class GameManager : NetworkBehaviour
|
||||
yield return DedicatedMatchPatchWinner(DedicatedInternalApiBase, DedicatedMatchId, DedicatedMatchSecret, winner);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void Start()
|
||||
{
|
||||
GameEvents.OnSelectedPuckChanged?.Invoke(null);
|
||||
@@ -547,10 +600,12 @@ public class GameManager : NetworkBehaviour
|
||||
blueScore++;
|
||||
blueScoreText.text = blueScore.ToString();
|
||||
PlayGoalEffects(Team.Blue);
|
||||
Logger.Log($"Blue goal scored, blue score is now {blueScore}");
|
||||
}else{
|
||||
redScore++;
|
||||
redScoreText.text = redScore.ToString();
|
||||
PlayGoalEffects(Team.Red);
|
||||
Logger.Log($"Red goal scored, red score is now {redScore}");
|
||||
}
|
||||
|
||||
SetKickoffTeam(concedingTeam);
|
||||
@@ -632,6 +687,7 @@ public class GameManager : NetworkBehaviour
|
||||
}
|
||||
|
||||
public void Leave(){
|
||||
NetManager.MarkIntentionalClientDisconnect();
|
||||
StopClient();
|
||||
LevelLoadManager.LoadLevel("MainMenu");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user