48 lines
2.0 KiB
C#
48 lines
2.0 KiB
C#
using UnityEngine;
|
|
|
|
public class GameManager : MonoBehaviour
|
|
{
|
|
private static GameManager _instance;
|
|
public static GameManager Instance
|
|
{
|
|
get
|
|
{
|
|
if (_instance == null)
|
|
{
|
|
_instance = FindAnyObjectByType<GameManager>();
|
|
if (_instance == null)
|
|
{
|
|
var go = new GameObject("GameManager");
|
|
_instance = go.AddComponent<GameManager>();
|
|
DontDestroyOnLoad(go);
|
|
}
|
|
}
|
|
return _instance;
|
|
}
|
|
}
|
|
|
|
[Header("Game Settings")]
|
|
public GameSettings gameSettings;
|
|
|
|
void Awake()
|
|
{
|
|
_instance = this;
|
|
DontDestroyOnLoad(gameObject);
|
|
}
|
|
|
|
public float PlayerStopDistance => gameSettings != null ? gameSettings.playerStopDistance : 1.0f;
|
|
public float FollowerPickupDelay => gameSettings != null ? gameSettings.followerPickupDelay : 0.2f;
|
|
public float FollowDistance => gameSettings != null ? gameSettings.followDistance : 1.5f;
|
|
public float ManualMoveSmooth => gameSettings != null ? gameSettings.manualMoveSmooth : 8f;
|
|
public float ThresholdFar => gameSettings != null ? gameSettings.thresholdFar : 2.5f;
|
|
public float ThresholdNear => gameSettings != null ? gameSettings.thresholdNear : 0.5f;
|
|
public float StopThreshold => gameSettings != null ? gameSettings.stopThreshold : 0.1f;
|
|
public float MoveSpeed => gameSettings != null ? gameSettings.moveSpeed : 5f;
|
|
public float StopDistance => gameSettings != null ? gameSettings.stopDistance : 0.1f;
|
|
public bool UseRigidbody => gameSettings != null ? gameSettings.useRigidbody : true;
|
|
public float FollowUpdateInterval => gameSettings != null ? gameSettings.followUpdateInterval : 0.1f;
|
|
public float FollowerSpeedMultiplier => gameSettings != null ? gameSettings.followerSpeedMultiplier : 1.2f;
|
|
public float HeldIconDisplayHeight => gameSettings != null ? gameSettings.heldIconDisplayHeight : 2.0f;
|
|
// Add more accessors as needed
|
|
}
|