Files
soccar2d/Assets/Scripts/DevSettingsPanel.cs
2026-02-05 06:32:52 +05:30

94 lines
2.7 KiB
C#

using System;
using System.Collections;
using UnityEngine;
public class DevSettingsPanel : MonoBehaviour
{
public static Action OnChanged;
public static DevSettingsPanel instance;
public Transform contentParent;
public DevOptionItem devOptionItemPrefab;
void Awake()
{
instance = this;
}
void Start()
{
StartCoroutine(CoroutinePopulate());
}
IEnumerator CoroutinePopulate()
{
yield return new WaitForSeconds(1f); //Wait for the game manager to be initialized
Populate();
}
void Populate()
{
DevOptionItem puckForce = Instantiate(devOptionItemPrefab, contentParent);
puckForce.Setup("Puck Force", 2500, 6000, GameManager.instance.puckForce);
puckForce.OnChanged += OnPuckForceChanged;
DevOptionItem puckDragClampMax = Instantiate(devOptionItemPrefab, contentParent);
puckDragClampMax.Setup("Puck Launch Max Length", 1, 10, GameManager.instance.puckDragClampMax);
puckDragClampMax.OnChanged += OnPuckDragClampMaxChanged;
DevOptionItem puckDragClampMin = Instantiate(devOptionItemPrefab, contentParent);
puckDragClampMin.Setup("Puck Launch Min Length", 0, 2, GameManager.instance.puckDragMinClamp);
puckDragClampMin.OnChanged += OnPuckDragClampMinChanged;
DevOptionItem ballMoveTime = Instantiate(devOptionItemPrefab, contentParent);
ballMoveTime.Setup("Ball Drag", 0f, 10, GameManager.instance.ballMoveTime);
ballMoveTime.OnChanged += OnBallMoveTimeChanged;
DevOptionItem puckMass = Instantiate(devOptionItemPrefab, contentParent);
puckMass.Setup("Puck Mass", 1f, 50, GameManager.instance.puckMass);
puckMass.OnChanged += OnPuckMassChanged;
DevOptionItem puckDrag = Instantiate(devOptionItemPrefab, contentParent);
puckDrag.Setup("Puck Drag", 0f, 10, GameManager.instance.puckDrag);
puckDrag.OnChanged += OnPuckDragChanged;
}
void OnPuckForceChanged(float value)
{
GameManager.instance.puckForce = value;
OnChanged?.Invoke();
}
void OnPuckDragClampMaxChanged(float value)
{
GameManager.instance.puckDragClampMax = value;
OnChanged?.Invoke();
}
void OnPuckDragClampMinChanged(float value)
{
GameManager.instance.puckDragMinClamp = value;
OnChanged?.Invoke();
}
void OnBallMoveTimeChanged(float value)
{
GameManager.instance.ballMoveTime = value;
OnChanged?.Invoke();
}
void OnPuckMassChanged(float value)
{
GameManager.instance.puckMass = value;
OnChanged?.Invoke();
}
void OnPuckDragChanged(float value)
{
GameManager.instance.puckDrag = value;
OnChanged?.Invoke();
}
}