Strip debug logging from the game, fix screen weirdness

This commit is contained in:
Michal Pikulski
2025-10-14 15:53:58 +02:00
parent 18be597424
commit e8180b21bf
65 changed files with 768 additions and 411 deletions

View File

@@ -5,6 +5,7 @@ using UnityEngine.Events;
using Pooling;
using AppleHills.Core.Settings;
using AppleHills.Core.Interfaces;
using Core;
namespace Minigames.DivingForPictures
{
@@ -119,7 +120,7 @@ namespace Minigames.DivingForPictures
StartMoveCoroutine();
StartDespawnCoroutine();
Debug.Log("[ObstacleSpawner] Initialized");
Logging.Debug("[ObstacleSpawner] Initialized");
}
/// <summary>
@@ -151,7 +152,7 @@ namespace Minigames.DivingForPictures
}
}
Debug.Log($"[ObstacleSpawner] Paused with {_activeObstacles.Count} active obstacles");
Logging.Debug($"[ObstacleSpawner] Paused with {_activeObstacles.Count} active obstacles");
}
/// <summary>
@@ -182,7 +183,7 @@ namespace Minigames.DivingForPictures
}
}
Debug.Log($"[ObstacleSpawner] Resumed with {_activeObstacles.Count} active obstacles");
Logging.Debug($"[ObstacleSpawner] Resumed with {_activeObstacles.Count} active obstacles");
}
/// <summary>
@@ -232,14 +233,14 @@ namespace Minigames.DivingForPictures
// Check if the prefab has a FloatingObstacle component
if (obstaclePrefabs[i].GetComponent<FloatingObstacle>() == null)
{
Debug.LogWarning($"Obstacle prefab {obstaclePrefabs[i].name} does not have a FloatingObstacle component. Adding one automatically.");
Logging.Warning($"Obstacle prefab {obstaclePrefabs[i].name} does not have a FloatingObstacle component. Adding one automatically.");
obstaclePrefabs[i].AddComponent<FloatingObstacle>();
}
// Ensure the prefab is on the correct layer (using configurable obstacleLayer)
if (obstaclePrefabs[i].layer != _devSettings.ObstacleLayer)
{
Debug.LogWarning($"Obstacle prefab {obstaclePrefabs[i].name} is not on the configured obstacle layer ({_devSettings.ObstacleLayer}). Setting layer automatically.");
Logging.Warning($"Obstacle prefab {obstaclePrefabs[i].name} is not on the configured obstacle layer ({_devSettings.ObstacleLayer}). Setting layer automatically.");
SetLayerRecursively(obstaclePrefabs[i], _devSettings.ObstacleLayer);
}
}
@@ -319,7 +320,7 @@ namespace Minigames.DivingForPictures
// Calculate spawn range based on 80% of screen width (40% on each side from center)
_spawnRangeX = (screenWidth * 0.8f) / 2f;
Debug.Log($"[ObstacleSpawner] Screen calculated - Width: {screenWidth:F2}, Bottom: {_screenBottom:F2}, Spawn Range X: ±{_spawnRangeX:F2}");
Logging.Debug($"[ObstacleSpawner] Screen calculated - Width: {screenWidth:F2}, Bottom: {_screenBottom:F2}, Spawn Range X: ±{_spawnRangeX:F2}");
}
/// <summary>
@@ -330,7 +331,7 @@ namespace Minigames.DivingForPictures
if (_spawnCoroutine == null)
{
_spawnCoroutine = StartCoroutine(SpawnObstaclesCoroutine());
Debug.Log("[ObstacleSpawner] Started spawning obstacles");
Logging.Debug("[ObstacleSpawner] Started spawning obstacles");
}
}
@@ -343,7 +344,7 @@ namespace Minigames.DivingForPictures
{
StopCoroutine(_spawnCoroutine);
_spawnCoroutine = null;
Debug.Log("[ObstacleSpawner] Stopped spawning obstacles");
Logging.Debug("[ObstacleSpawner] Stopped spawning obstacles");
}
}
@@ -375,15 +376,15 @@ namespace Minigames.DivingForPictures
// Don't spawn new obstacles when surfacing
if (_isSurfacing)
{
Debug.Log("[ObstacleSpawner] Skipping obstacle spawn - currently surfacing");
Logging.Debug("[ObstacleSpawner] Skipping obstacle spawn - currently surfacing");
return;
}
Debug.Log($"[ObstacleSpawner] TrySpawnObstacle called at {Time.time:F2}");
Logging.Debug($"[ObstacleSpawner] TrySpawnObstacle called at {Time.time:F2}");
if (obstaclePrefabs == null || obstaclePrefabs.Count == 0)
{
Debug.LogWarning("[ObstacleSpawner] No obstacle prefabs available for spawning!");
Logging.Warning("[ObstacleSpawner] No obstacle prefabs available for spawning!");
return;
}
@@ -397,20 +398,20 @@ namespace Minigames.DivingForPictures
if (IsValidSpawnPosition(spawnPosition))
{
Debug.Log($"[ObstacleSpawner] Found valid position at {spawnPosition} after {attempts + 1} attempts");
Logging.Debug($"[ObstacleSpawner] Found valid position at {spawnPosition} after {attempts + 1} attempts");
SpawnObstacleAt(spawnPosition);
foundValidPosition = true;
break;
}
else
{
Debug.Log($"[ObstacleSpawner] Position {spawnPosition} invalid (attempt {attempts + 1}/{_settings.ObstacleMaxSpawnAttempts})");
Logging.Debug($"[ObstacleSpawner] Position {spawnPosition} invalid (attempt {attempts + 1}/{_settings.ObstacleMaxSpawnAttempts})");
}
}
if (!foundValidPosition)
{
Debug.LogWarning($"[ObstacleSpawner] SPAWN MISSED: Could not find valid spawn position after {_settings.ObstacleMaxSpawnAttempts} attempts at {Time.time:F2}");
Logging.Warning($"[ObstacleSpawner] SPAWN MISSED: Could not find valid spawn position after {_settings.ObstacleMaxSpawnAttempts} attempts at {Time.time:F2}");
}
}
@@ -443,7 +444,7 @@ namespace Minigames.DivingForPictures
/// </summary>
private void SpawnObstacleAt(Vector3 position)
{
Debug.Log($"[ObstacleSpawner] SpawnObstacleAt called for position {position}");
Logging.Debug($"[ObstacleSpawner] SpawnObstacleAt called for position {position}");
// Select random prefab
int prefabIndex = Random.Range(0, obstaclePrefabs.Count);
@@ -460,7 +461,7 @@ namespace Minigames.DivingForPictures
// Spawn using pool or instantiate directly
if (_devSettings.ObstacleUseObjectPooling && _obstaclePool != null)
{
Debug.Log($"[ObstacleSpawner] Requesting obstacle from pool (prefab index {prefabIndex})");
Logging.Debug($"[ObstacleSpawner] Requesting obstacle from pool (prefab index {prefabIndex})");
obstacle = _obstaclePool.GetObstacle(prefabIndex);
if (obstacle == null)
{
@@ -473,12 +474,12 @@ namespace Minigames.DivingForPictures
obstacle.transform.rotation = prefab.transform.rotation;
obstacle.transform.SetParent(transform);
Debug.Log($"[ObstacleSpawner] Got obstacle {obstacle.name} from pool, active state: {obstacle.activeInHierarchy}");
Logging.Debug($"[ObstacleSpawner] Got obstacle {obstacle.name} from pool, active state: {obstacle.activeInHierarchy}");
// ENHANCED FORCE ACTIVATION - more robust approach
if (!obstacle.activeInHierarchy)
{
Debug.LogWarning($"[ObstacleSpawner] Pool returned inactive object {obstacle.name}, force activating!");
Logging.Warning($"[ObstacleSpawner] Pool returned inactive object {obstacle.name}, force activating!");
// Configure obstacle BEFORE activation
ConfigureObstacle(obstacle, prefabIndex);
@@ -500,7 +501,7 @@ namespace Minigames.DivingForPictures
}
}
Debug.Log($"[ObstacleSpawner] After force activation, {obstacle.name} active state: {obstacle.activeInHierarchy}");
Logging.Debug($"[ObstacleSpawner] After force activation, {obstacle.name} active state: {obstacle.activeInHierarchy}");
}
else
{
@@ -510,7 +511,7 @@ namespace Minigames.DivingForPictures
}
else
{
Debug.Log($"[ObstacleSpawner] Instantiating new obstacle (pooling disabled)");
Logging.Debug($"[ObstacleSpawner] Instantiating new obstacle (pooling disabled)");
obstacle = Instantiate(prefab, position, prefab.transform.rotation, transform);
// Configure the newly instantiated obstacle
@@ -521,16 +522,16 @@ namespace Minigames.DivingForPictures
_obstacleCounter++;
string oldName = obstacle.name;
obstacle.name = $"Obstacle{_obstacleCounter:D3}";
Debug.Log($"[ObstacleSpawner] Renamed obstacle from '{oldName}' to '{obstacle.name}', active state: {obstacle.activeInHierarchy}");
Logging.Debug($"[ObstacleSpawner] Renamed obstacle from '{oldName}' to '{obstacle.name}', active state: {obstacle.activeInHierarchy}");
// Track active obstacles
_activeObstacles.Add(obstacle);
// Invoke events
onObstacleSpawned?.Invoke(obstacle);
Debug.Log($"[ObstacleSpawner] After events, obstacle {obstacle.name} active state: {obstacle.activeInHierarchy}");
Logging.Debug($"[ObstacleSpawner] After events, obstacle {obstacle.name} active state: {obstacle.activeInHierarchy}");
Debug.Log($"[ObstacleSpawner] Successfully spawned obstacle {obstacle.name} at {position}. Active count: {_activeObstacles.Count}, Final active state: {obstacle.activeInHierarchy}");
Logging.Debug($"[ObstacleSpawner] Successfully spawned obstacle {obstacle.name} at {position}. Active count: {_activeObstacles.Count}, Final active state: {obstacle.activeInHierarchy}");
}
/// <summary>
@@ -567,7 +568,7 @@ namespace Minigames.DivingForPictures
{
if (obstacle == null) return;
Debug.Log($"[ObstacleSpawner] ReturnObstacleToPool called for {obstacle.name}, active state: {obstacle.activeInHierarchy}");
Logging.Debug($"[ObstacleSpawner] ReturnObstacleToPool called for {obstacle.name}, active state: {obstacle.activeInHierarchy}");
// Remove from active list
_activeObstacles.Remove(obstacle);
@@ -578,12 +579,12 @@ namespace Minigames.DivingForPictures
// Return to pool or destroy
if (_devSettings.ObstacleUseObjectPooling && _obstaclePool != null)
{
Debug.Log($"[ObstacleSpawner] Returning {obstacle.name} to pool");
Logging.Debug($"[ObstacleSpawner] Returning {obstacle.name} to pool");
_obstaclePool.ReturnObstacle(obstacle, prefabIndex);
}
else
{
Debug.Log($"[ObstacleSpawner] Destroying {obstacle.name} (pooling disabled)");
Logging.Debug($"[ObstacleSpawner] Destroying {obstacle.name} (pooling disabled)");
Destroy(obstacle);
}
}
@@ -595,7 +596,7 @@ namespace Minigames.DivingForPictures
{
// This method can no longer directly modify the settings
// Consider implementing a runtime settings override system if needed
Debug.LogWarning("[ObstacleSpawner] SetSpawnInterval no longer modifies settings directly. Settings are now centralized.");
Logging.Warning("[ObstacleSpawner] SetSpawnInterval no longer modifies settings directly. Settings are now centralized.");
}
/// <summary>
@@ -605,7 +606,7 @@ namespace Minigames.DivingForPictures
{
// This method can no longer directly modify the settings
// Consider implementing a runtime settings override system if needed
Debug.LogWarning("[ObstacleSpawner] SetSpeedRange no longer modifies settings directly. Settings are now centralized.");
Logging.Warning("[ObstacleSpawner] SetSpeedRange no longer modifies settings directly. Settings are now centralized.");
}
/// <summary>
@@ -636,7 +637,7 @@ namespace Minigames.DivingForPictures
}
}
Debug.Log($"[ObstacleSpawner] Velocity factor updated to {_velocityFactor:F2}, propagated to {_activeObstacles.Count} active obstacles");
Logging.Debug($"[ObstacleSpawner] Velocity factor updated to {_velocityFactor:F2}, propagated to {_activeObstacles.Count} active obstacles");
}
/// <summary>
@@ -662,7 +663,7 @@ namespace Minigames.DivingForPictures
}
}
Debug.Log($"[ObstacleSpawner] Started surfacing mode for {_activeObstacles.Count} active obstacles");
Logging.Debug($"[ObstacleSpawner] Started surfacing mode for {_activeObstacles.Count} active obstacles");
}
/// <summary>
@@ -675,7 +676,7 @@ namespace Minigames.DivingForPictures
/// </summary>
private IEnumerator SpawnObstacleRoutine()
{
Debug.Log("[ObstacleSpawner] Started spawning coroutine");
Logging.Debug("[ObstacleSpawner] Started spawning coroutine");
while (enabled && gameObject.activeInHierarchy && !_isPaused && !_isSurfacing)
{
@@ -694,7 +695,7 @@ namespace Minigames.DivingForPictures
// Clear coroutine reference when stopped
_spawnCoroutine = null;
Debug.Log("[ObstacleSpawner] Spawning coroutine ended");
Logging.Debug("[ObstacleSpawner] Spawning coroutine ended");
}
/// <summary>
@@ -704,7 +705,7 @@ namespace Minigames.DivingForPictures
/// </summary>
private IEnumerator MoveObstaclesRoutine()
{
Debug.Log("[ObstacleSpawner] Started obstacle monitoring coroutine");
Logging.Debug("[ObstacleSpawner] Started obstacle monitoring coroutine");
// This coroutine now just monitors obstacles, not moves them
while (enabled && gameObject.activeInHierarchy && !_isPaused)
@@ -718,7 +719,7 @@ namespace Minigames.DivingForPictures
// Clear coroutine reference when stopped
_moveCoroutine = null;
Debug.Log("[ObstacleSpawner] Obstacle monitoring coroutine ended");
Logging.Debug("[ObstacleSpawner] Obstacle monitoring coroutine ended");
}
/// <summary>
@@ -727,7 +728,7 @@ namespace Minigames.DivingForPictures
private IEnumerator DespawnObstaclesRoutine()
{
const float checkInterval = 0.5f; // Check every half second
Debug.Log("[ObstacleSpawner] Started despawn coroutine with interval: " + checkInterval);
Logging.Debug("[ObstacleSpawner] Started despawn coroutine with interval: " + checkInterval);
while (enabled && gameObject.activeInHierarchy && !_isPaused)
{
@@ -808,7 +809,7 @@ namespace Minigames.DivingForPictures
// Clear coroutine reference when stopped
_despawnCoroutine = null;
Debug.Log("[ObstacleSpawner] Despawn coroutine ended");
Logging.Debug("[ObstacleSpawner] Despawn coroutine ended");
}
#if UNITY_EDITOR