Batch 1 - Scripts

This commit is contained in:
Rohan
2026-07-21 08:58:18 +05:30
parent 604c0c786a
commit 1dcd8bf80b
41 changed files with 655 additions and 13 deletions

View File

@@ -0,0 +1,22 @@
using UnityEngine;
public class BillboardNew : MonoBehaviour
{
Camera cam;
private void Start()
{
cam = Camera.main;
}
private void LateUpdate()
{
if (cam == null)
cam = Camera.main;
if (cam == null)
return;
transform.forward = cam.transform.forward;
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 26bee8a4aff1043438c449430761bc33

View File

@@ -0,0 +1,25 @@
using UnityEngine;
using UnityEngine.EventSystems;
public class CameraTouchArea : MonoBehaviour, IPointerDownHandler, IDragHandler
{
public static Vector2 LookDelta;
private Vector2 lastPosition;
public void OnPointerDown(PointerEventData eventData)
{
lastPosition = eventData.position;
}
public void OnDrag(PointerEventData eventData)
{
LookDelta = eventData.position - lastPosition;
lastPosition = eventData.position;
}
private void LateUpdate()
{
LookDelta = Vector2.zero;
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 66297c96b861aad4c81dd175dcc43013

View File

@@ -49,6 +49,29 @@ public class CashManager : MonoBehaviour
} }
UpdateUI(); UpdateUI();
if (IsHumanPlayer())
{
UpdatePlayerObjectiveUI();
}
}
private void UpdatePlayerObjectiveUI()
{
if (!IsHumanPlayer() || UI_Manager.Instance == null)
return;
UI_Manager.Instance.UpdatePlayerCash(currentCash);
if (currentCash > 0)
UI_Manager.Instance.ShowDepositObjective();
else
UI_Manager.Instance.ShowOpenVaultObjective();
}
private bool IsHumanPlayer()
{
return GetComponent<PlayerControllerNewRohan>() != null;
} }
void UpdateUI() void UpdateUI()
@@ -65,6 +88,11 @@ public class CashManager : MonoBehaviour
{ {
currentCash += amount; currentCash += amount;
if (IsHumanPlayer())
{
UI_Manager.Instance?.ShowCashPopup(amount);
}
switch (team) switch (team)
{ {
case TeamMember.Team.PlayerTeam: case TeamMember.Team.PlayerTeam:
@@ -80,6 +108,8 @@ public class CashManager : MonoBehaviour
break; break;
} }
UpdatePlayerObjectiveUI();
UpdateUI(); UpdateUI();
} }
@@ -104,6 +134,13 @@ public class CashManager : MonoBehaviour
currentCash = 0; currentCash = 0;
if (IsHumanPlayer())
{
AudioManager.Instance?.PlaySFX("DepositComplete");
}
UpdatePlayerObjectiveUI();
UpdateUI(); UpdateUI();
return amount; return amount;
@@ -144,6 +181,8 @@ public class CashManager : MonoBehaviour
currentCash = 0; currentCash = 0;
UpdatePlayerObjectiveUI();
UpdateUI(); UpdateUI();
} }

View File

@@ -0,0 +1,27 @@
using TMPro;
using UnityEngine;
using System.Collections;
public class CashPopupUI : MonoBehaviour
{
[SerializeField] private TextMeshProUGUI amountText;
public void Show(int amount)
{
amountText.text = $"+${amount:N0}";
AudioManager.Instance?.PlaySFX("CashPopup");
gameObject.SetActive(true);
StopAllCoroutines();
StartCoroutine(HideRoutine());
}
IEnumerator HideRoutine()
{
yield return new WaitForSeconds(1.5f);
gameObject.SetActive(false);
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 740a4258753985548b8ab0f4b59f25aa

View File

@@ -4,6 +4,6 @@ public class FPSManager : MonoBehaviour
{ {
void Awake() void Awake()
{ {
Application.targetFrameRate = 60; Application.targetFrameRate = 1000;
} }
} }

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f416dcd6817fdd94db07d59bea652386
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,95 @@
using UnityEngine;
using UnityEngine.UI;
public class EdgeIndicator : MonoBehaviour
{
[HideInInspector]
public EdgeTarget Target;
private RectTransform rect;
private Image image;
private RectTransform minimapRect;
private MinimapManager minimap;
private float radius;
public void Initialize(
EdgeTarget target,
RectTransform minimapRectTransform,
float edgePadding)
{
Target = target;
minimapRect = minimapRectTransform;
minimap = FindObjectOfType<MinimapManager>();
rect = GetComponent<RectTransform>();
image = GetComponent<Image>();
image.sprite = target.icon;
image.color = target.iconColor;
radius = Mathf.Min(minimapRect.rect.width, minimapRect.rect.height) * 0.5f - edgePadding;
}
private void Update()
{
if (Target == null)
{
Destroy(gameObject);
return;
}
if (minimap == null || minimap.MinimapCamera == null || minimap.Player == null)
return;
Camera cam = minimap.MinimapCamera;
// Position of the target in the minimap camera
Vector3 viewport = cam.WorldToViewportPoint(Target.transform.position);
// If target is visible inside minimap, hide the edge arrow
bool visible =
viewport.z > 0 &&
viewport.x >= 0f &&
viewport.x <= 1f &&
viewport.y >= 0f &&
viewport.y <= 1f;
if (visible)
{
image.enabled = false;
return;
}
image.enabled = true;
// Direction from player to target
Vector3 worldDir = Target.transform.position - minimap.Player.position;
Vector2 dir = new Vector2(worldDir.x, worldDir.z).normalized;
// If your minimap rotates, rotate direction too
if (minimap.rotateWithPlayer)
{
float angle = -minimap.Player.eulerAngles.y * Mathf.Deg2Rad;
float cos = Mathf.Cos(angle);
float sin = Mathf.Sin(angle);
dir = new Vector2(
dir.x * cos - dir.y * sin,
dir.x * sin + dir.y * cos
);
}
// Place arrow on edge of minimap
rect.anchoredPosition = dir * radius;
// Rotate arrow to point toward target
float rot = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg;
rect.localRotation = Quaternion.Euler(0, 0, rot - 90f);
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 90eb04afe3bc588458146859ad793297

View File

@@ -0,0 +1,92 @@
using System.Collections.Generic;
using UnityEngine;
public class EdgeIndicatorManager : MonoBehaviour
{
public static EdgeIndicatorManager Instance;
[Header("References")]
public MinimapManager minimapManager;
public RectTransform edgeContainer;
public EdgeIndicator indicatorPrefab;
[Header("Settings")]
public float edgePadding = 18f;
public float refreshInterval = 1f;
private readonly Dictionary<EdgeTarget, EdgeIndicator> indicators =
new Dictionary<EdgeTarget, EdgeIndicator>();
float timer;
void Awake()
{
Instance = this;
}
void Start()
{
if (minimapManager == null)
minimapManager = FindObjectOfType<MinimapManager>();
RefreshTargets();
}
void Update()
{
timer += Time.deltaTime;
if (timer >= refreshInterval)
{
timer = 0;
RefreshTargets();
}
}
void RefreshTargets()
{
EdgeTarget[] targets = FindObjectsOfType<EdgeTarget>();
HashSet<EdgeTarget> currentTargets = new HashSet<EdgeTarget>(targets);
//-------------------------------------
// Remove destroyed targets
//-------------------------------------
List<EdgeTarget> remove = new List<EdgeTarget>();
foreach (var pair in indicators)
{
if (pair.Key == null || !currentTargets.Contains(pair.Key))
{
if (pair.Value != null)
Destroy(pair.Value.gameObject);
remove.Add(pair.Key);
}
}
foreach (var t in remove)
indicators.Remove(t);
//-------------------------------------
// Add new targets
//-------------------------------------
foreach (EdgeTarget target in targets)
{
if (indicators.ContainsKey(target))
continue;
EdgeIndicator arrow =
Instantiate(indicatorPrefab, edgeContainer);
arrow.Initialize(
target,
edgeContainer,
edgePadding);
indicators.Add(target, arrow);
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: c1c3c18764486f7478515f771cac46bb

View File

@@ -0,0 +1,17 @@
using UnityEngine;
public class EdgeTarget : MonoBehaviour
{
public enum TargetType
{
Enemy,
Vault,
Deposit,
Objective
}
[Header("Indicator")]
public TargetType targetType;
public Sprite icon;
public Color iconColor = Color.white;
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 262b041e5698df34b992d80ceab7e3b6

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b7513d3dac2791f4eb86f28f153761ea
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -77,7 +77,7 @@ public class PlayerControllerNewRohan : MonoBehaviour
animator = GetComponent<Animator>(); animator = GetComponent<Animator>();
stamina = GetComponent<Stamina>(); stamina = GetComponent<Stamina>();
StopDepositEffect(); //StopDepositEffect();
} }
private void Start() private void Start()
@@ -274,6 +274,9 @@ public class PlayerControllerNewRohan : MonoBehaviour
isAttacking = true; isAttacking = true;
canMove = false; canMove = false;
FindClosestEnemy();
FaceTarget();
SetTrails(true); SetTrails(true);
if (IsTargetInRange()) if (IsTargetInRange())
@@ -412,6 +415,9 @@ public class PlayerControllerNewRohan : MonoBehaviour
void FaceTarget() void FaceTarget()
{ {
if (target == null)
return;
Vector3 dir = target.position - transform.position; Vector3 dir = target.position - transform.position;
dir.y = 0; dir.y = 0;
@@ -421,6 +427,35 @@ public class PlayerControllerNewRohan : MonoBehaviour
} }
} }
private void FindClosestEnemy()
{
TeamMember myTeam = GetComponent<TeamMember>();
float closestDistance = Mathf.Infinity;
Transform closestEnemy = null;
TeamMember[] allCharacters = FindObjectsOfType<TeamMember>();
foreach (TeamMember character in allCharacters)
{
if (character == myTeam)
continue;
if (character.CurrentTeam == myTeam.CurrentTeam)
continue;
float distance = Vector3.Distance(transform.position, character.transform.position);
if (distance < closestDistance)
{
closestDistance = distance;
closestEnemy = character.transform;
}
}
target = closestEnemy;
}
public void PlayVaultOpen(System.Action onComplete) public void PlayVaultOpen(System.Action onComplete)
{ {
StartCoroutine(VaultRoutine(onComplete)); StartCoroutine(VaultRoutine(onComplete));

View File

@@ -26,7 +26,7 @@ public class PlayerDepositStation : MonoBehaviour
playerInside = true; playerInside = true;
UI_Manager.Instance?.ShowInteractionPrompt( UI_Manager.Instance?.ShowInteractionPrompt(
"Press F To Deposit"); "Press the interaction button to deposit the cash.");
MobileInteractButton.Instance?.Show(); MobileInteractButton.Instance?.Show();
} }

View File

@@ -0,0 +1,40 @@
using UnityEngine;
using System.Collections.Generic;
public class PlayerTeamCashUI : MonoBehaviour
{
private readonly List<CashManager> teammates = new();
private void Start()
{
CashManager[] all = FindObjectsOfType<CashManager>();
foreach (CashManager cash in all)
{
TeamMember team = cash.GetComponent<TeamMember>();
if (team == null)
continue;
if (team.CurrentTeam != TeamMember.Team.PlayerTeam)
continue;
if (cash.GetComponent<PlayerControllerNewRohan>() != null)
continue;
teammates.Add(cash);
}
}
private void Update()
{
if (UI_Manager.Instance == null)
return;
if (teammates.Count > 0)
UI_Manager.Instance.UpdateTeammate1Cash(teammates[0].currentCash);
if (teammates.Count > 1)
UI_Manager.Instance.UpdateTeammate2Cash(teammates[1].currentCash);
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 53858e4bb09074f4299b82c2bbe8cbe0

View File

@@ -33,6 +33,8 @@ public class SimpleTeamAI : MonoBehaviour
[SerializeField] private float attackRange = 2f; [SerializeField] private float attackRange = 2f;
[SerializeField] private float attackCooldown = 1.2f; [SerializeField] private float attackCooldown = 1.2f;
[SerializeField] private float targetPriorityRange = 100f; [SerializeField] private float targetPriorityRange = 100f;
private float nextCombatSearch;
[SerializeField] private float combatSearchInterval = 0.3f;
[Header("Collection Settings")] [Header("Collection Settings")]
[SerializeField] private float scanRadius = 15f; [SerializeField] private float scanRadius = 15f;
@@ -172,13 +174,18 @@ public class SimpleTeamAI : MonoBehaviour
{ {
SetState(AIState.Hit); SetState(AIState.Hit);
} }
else if (isBusy) if (isBusy)
{ {
// Keep current state while opening vault / hit / special action anim.SetFloat("Speed", 0f);
return;
} }
//else if (isBusy)
//{
// // Keep current state while opening vault / hit / special action
//}
else else
{ {
cashManager = GetComponent<CashManager>(); //cashManager = GetComponent<CashManager>();
if (cashManager != null && cashManager.currentCash >= depositCashAmount) if (cashManager != null && cashManager.currentCash >= depositCashAmount)
{ {
@@ -186,7 +193,11 @@ public class SimpleTeamAI : MonoBehaviour
} }
else else
{ {
combatTarget = FindNearestCombatTarget(); if (Time.time >= nextCombatSearch)
{
nextCombatSearch = Time.time + combatSearchInterval;
combatTarget = FindNearestCombatTarget();
}
if (combatTarget != null) if (combatTarget != null)
{ {

View File

@@ -0,0 +1,43 @@
using UnityEngine;
using UnityEngine.UI;
public class TeamMemberHealthUI : MonoBehaviour
{
[SerializeField] private Health enemyHealth;
[Header("Health Sliders")]
[SerializeField] private Slider healthSlider;
[SerializeField] private Slider secondHealthSlider;
void Start()
{
if (enemyHealth == null) return;
UpdateHealthBar(enemyHealth.currentHealth, enemyHealth.maxHealth);
enemyHealth.OnHealthChanged += UpdateHealthBar;
}
void UpdateHealthBar(float current, float max)
{
if (healthSlider != null)
{
healthSlider.maxValue = max;
healthSlider.value = current;
}
if (secondHealthSlider != null)
{
secondHealthSlider.maxValue = max;
secondHealthSlider.value = current;
}
}
void OnDestroy()
{
if (enemyHealth != null)
{
enemyHealth.OnHealthChanged -= UpdateHealthBar;
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 2429a0099bbd7a940b7652710ebc61f1

View File

@@ -7,8 +7,12 @@ public class UI_Manager : MonoBehaviour
public static UI_Manager Instance; public static UI_Manager Instance;
[SerializeField] private TextMeshProUGUI playerCarryText; [SerializeField] private TextMeshProUGUI playerCarryText;
[SerializeField] private TextMeshProUGUI playerCashText;
[SerializeField] private TextMeshProUGUI playerDepositText; [SerializeField] private TextMeshProUGUI playerDepositText;
[SerializeField] private TextMeshProUGUI teammate1CarryText;
[SerializeField] private TextMeshProUGUI teammate2CarryText;
[SerializeField] private TextMeshProUGUI enemy1CarryText; [SerializeField] private TextMeshProUGUI enemy1CarryText;
[SerializeField] private TextMeshProUGUI enemy1DepositText; [SerializeField] private TextMeshProUGUI enemy1DepositText;
@@ -18,10 +22,14 @@ public class UI_Manager : MonoBehaviour
[SerializeField] private TextMeshProUGUI actionTimerText; [SerializeField] private TextMeshProUGUI actionTimerText;
[SerializeField] private TextMeshProUGUI depositTimerText; [SerializeField] private TextMeshProUGUI depositTimerText;
[SerializeField] private TextMeshProUGUI objectiveText;
[SerializeField] private Slider playerProgressSlider; [SerializeField] private Slider playerProgressSlider;
[SerializeField] private Slider enemy1ProgressSlider; [SerializeField] private Slider enemy1ProgressSlider;
[SerializeField] private Slider enemy2ProgressSlider; [SerializeField] private Slider enemy2ProgressSlider;
[SerializeField] private CashPopupUI cashPopup;
private void Awake() private void Awake()
{ {
Instance = this; Instance = this;
@@ -35,6 +43,27 @@ public class UI_Manager : MonoBehaviour
$"{amount:N0}"; $"{amount:N0}";
} }
public void ShowCashPopup(int amount)
{
cashPopup?.Show(amount);
}
public void UpdatePlayerCash(int amount)
{
if (playerCashText != null)
playerCashText.text = $"${amount:N0}";
}
public void UpdateTeammate1Cash(int amount)
{
teammate1CarryText.text = $"${amount:N0}";
}
public void UpdateTeammate2Cash(int amount)
{
teammate2CarryText.text = $"${amount:N0}";
}
public void UpdatePlayerDepositCash(int amount) public void UpdatePlayerDepositCash(int amount)
{ {
playerDepositText.text = playerDepositText.text =
@@ -73,17 +102,26 @@ public class UI_Manager : MonoBehaviour
public void UpdateDepositTimer(float timeLeft) public void UpdateDepositTimer(float timeLeft)
{ {
if (objectiveText != null)
objectiveText.gameObject.SetActive(false);
depositTimerText.text = depositTimerText.text =
"Depositing: " + Mathf.CeilToInt(timeLeft).ToString(); "Depositing: " + Mathf.CeilToInt(timeLeft);
} }
public void HideDepositTimer() public void HideDepositTimer()
{ {
depositTimerText.text = ""; depositTimerText.text = "";
if (objectiveText != null)
objectiveText.gameObject.SetActive(true);
} }
public void UpdateActionTimer(string actionName, float timeLeft) public void UpdateActionTimer(string actionName, float timeLeft)
{ {
if (objectiveText != null)
objectiveText.gameObject.SetActive(false);
actionTimerText.text = actionTimerText.text =
actionName + ": " + Mathf.CeilToInt(timeLeft); actionName + ": " + Mathf.CeilToInt(timeLeft);
} }
@@ -91,10 +129,34 @@ public class UI_Manager : MonoBehaviour
public void HideActionTimer() public void HideActionTimer()
{ {
actionTimerText.text = ""; actionTimerText.text = "";
if (objectiveText != null)
objectiveText.gameObject.SetActive(true);
} }
public void ShowInteractionPrompt(string message) public void ShowInteractionPrompt(string message)
{ {
if (objectiveText != null)
objectiveText.gameObject.SetActive(false);
actionTimerText.text = message; actionTimerText.text = message;
} }
public void ShowOpenVaultObjective()
{
if (objectiveText != null)
objectiveText.text = "-> Open a vault to collect cash.";
}
public void ShowDepositObjective()
{
if (objectiveText != null)
objectiveText.text = "-> Deposit your cash at a deposit dtation.";
}
public void HideObjective()
{
if (objectiveText != null)
objectiveText.text = "";
}
} }

View File

@@ -29,6 +29,13 @@ public class Vault : MonoBehaviour
currentPlayer = player; currentPlayer = player;
currentCashManager = other.GetComponent<CashManager>(); currentCashManager = other.GetComponent<CashManager>();
// Player must deposit before opening another vault
if (currentCashManager != null && currentCashManager.currentCash >= vaultCash)
{
UI_Manager.Instance?.ShowInteractionPrompt("Deposit your cash before opening another vault.");
return;
}
playerInside = true; playerInside = true;
MobileInteractButton.Instance?.Show(); MobileInteractButton.Instance?.Show();
@@ -36,7 +43,7 @@ public class Vault : MonoBehaviour
if (!isBeingOpened) if (!isBeingOpened)
{ {
UI_Manager.Instance?.ShowInteractionPrompt("Press F To Open Vault"); UI_Manager.Instance?.ShowInteractionPrompt("Press the interaction button to open vault.");
} }
} }
@@ -79,6 +86,12 @@ public class Vault : MonoBehaviour
isBeingOpened) isBeingOpened)
return; return;
if (currentCashManager.currentCash >= vaultCash)
{
UI_Manager.Instance?.ShowInteractionPrompt("Deposit your cash before opening another vault.");
return;
}
UI_Manager.Instance?.HideActionTimer(); UI_Manager.Instance?.HideActionTimer();
isBeingOpened = true; isBeingOpened = true;

View File

@@ -8,11 +8,16 @@ public class VaultMinimapMarker : MonoBehaviour
private GameObject marker; private GameObject marker;
private void LateUpdate() private void Start()
{ {
CreateMarker(); CreateMarker();
} }
//private void LateUpdate()
//{
// CreateMarker();
//}
private void CreateMarker() private void CreateMarker()
{ {
marker = GameObject.CreatePrimitive(PrimitiveType.Quad); marker = GameObject.CreatePrimitive(PrimitiveType.Quad);

View File

@@ -0,0 +1,30 @@
using UnityEngine;
public class WorldIcon : MonoBehaviour
{
[SerializeField] Transform target;
[SerializeField] float height = 3f;
Camera cam;
void Start()
{
cam = Camera.main;
}
void LateUpdate()
{
if (cam == null)
return;
transform.position = target.position + Vector3.up * height;
transform.forward = cam.transform.forward;
float distance = Vector3.Distance(cam.transform.position, target.position);
float scale = Mathf.Clamp(distance * 0.015f, 1f, 2.5f);
transform.localScale = Vector3.one * scale;
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 523266fa276e1804395c630cce596804

View File

@@ -0,0 +1,46 @@
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class WorldMarker : MonoBehaviour
{
[Header("References")]
[SerializeField] private Transform target;
[SerializeField] private TextMeshProUGUI distanceText;
private Camera cam;
private Transform player;
void Start()
{
cam = Camera.main;
PlayerControllerNewRohan p = FindObjectOfType<PlayerControllerNewRohan>();
if (p != null)
player = p.transform;
}
void LateUpdate()
{
if (cam == null)
cam = Camera.main;
if (player == null)
{
PlayerControllerNewRohan p = FindObjectOfType<PlayerControllerNewRohan>();
if (p != null)
player = p.transform;
}
if (cam == null || player == null)
return;
// Billboard
transform.forward = cam.transform.forward;
// Distance
float distance = Vector3.Distance(player.position, target.position);
distanceText.text = $"{Mathf.RoundToInt(distance)}m";
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 0ce259faccb268847adbd48bdc508558

View File

@@ -379,7 +379,7 @@ public class CashSystemCharacterSelection : MonoBehaviour
// Load game scene // Load game scene
Debug.Log("[CashSystemCharacterSelection] Loading Game scene..."); Debug.Log("[CashSystemCharacterSelection] Loading Game scene...");
SceneManager.LoadScene("Test"); SceneManager.LoadScene("Game");
} }
/// <summary> /// <summary>

View File

@@ -99,7 +99,7 @@ public class CharacterSelection : MonoBehaviour
characterName.text = characterNames[index]; characterName.text = characterNames[index];
characterDescription.text = characterDescriptions[index]; characterDescription.text = characterDescriptions[index];
if (characterNames[index] == "Windham" || characterNames[index] == "Amira" || characterNames[index] == "Ziggy" || characterNames[index] == "Bahman" || characterNames[index] == "Amon" || characterNames[index] == "Imani") if (characterNames[index] == "Rabbit" || characterNames[index] == "Cheetah" || characterNames[index] == "Cat" || characterNames[index] == "Eagle" || characterNames[index] == "Hammer-Head" || characterNames[index] == "Hyena")
{ {
selectCharacterButton.GetComponent<Button>().enabled = true; selectCharacterButton.GetComponent<Button>().enabled = true;
selectCharacterButton.GetComponent<Image>().sprite = selectButtons[index]; selectCharacterButton.GetComponent<Image>().sprite = selectButtons[index];

View File

@@ -200,4 +200,8 @@ public class MinimapManager : MonoBehaviour
{ {
FindPlayer(); FindPlayer();
} }
public Transform Player => player;
public Camera MinimapCamera => minimapCam;
} }

View File

@@ -11,7 +11,7 @@ public class MinimapMarkerManager : MonoBehaviour
[Header("Settings")] [Header("Settings")]
[SerializeField] private bool autoSetupOnStart = true; [SerializeField] private bool autoSetupOnStart = true;
[SerializeField] private float refreshInterval = 2f; [SerializeField] private float refreshInterval = 2f;
private static MinimapMarkerManager instance; private static MinimapMarkerManager instance;
public static MinimapMarkerManager Instance => instance; public static MinimapMarkerManager Instance => instance;