Update
This commit is contained in:
58
Assets/Scripts/Player Controller/PlayerStats.cs
Normal file
58
Assets/Scripts/Player Controller/PlayerStats.cs
Normal file
@@ -0,0 +1,58 @@
|
||||
using UnityEngine;
|
||||
using Fusion;
|
||||
using System;
|
||||
|
||||
namespace OnlyScove.Scripts
|
||||
{
|
||||
public class PlayerStats : NetworkBehaviour
|
||||
{
|
||||
[Header("Player Stats")]
|
||||
[Networked, OnChangedRender(nameof(OnHealthChangedRender))] public float Health { get; set; } = 100f;
|
||||
[Networked, OnChangedRender(nameof(OnStaminaChangedRender))] public float Stamina { get; set; } = 100f;
|
||||
[Networked, OnChangedRender(nameof(OnNoiseLevelChangedRender))] public float NoiseLevel { get; set; } = 0f;
|
||||
|
||||
public event Action<float> OnHealthChanged;
|
||||
public event Action<float> OnStaminaChanged;
|
||||
public event Action<float> OnNoiseLevelChanged;
|
||||
|
||||
public override void Spawned()
|
||||
{
|
||||
// Initial UI sync placeholder
|
||||
UpdateUI();
|
||||
}
|
||||
|
||||
void OnHealthChangedRender()
|
||||
{
|
||||
OnHealthChanged?.Invoke(Health);
|
||||
if (Object.HasInputAuthority)
|
||||
{
|
||||
// UI Placeholder: Trigger Health UI Change
|
||||
// Example: UI.UIEventBus.TriggerHealthChange(Health / 100f);
|
||||
}
|
||||
}
|
||||
|
||||
void OnStaminaChangedRender()
|
||||
{
|
||||
OnStaminaChanged?.Invoke(Stamina);
|
||||
if (Object.HasInputAuthority)
|
||||
{
|
||||
// UI Placeholder: Trigger Stamina UI Change
|
||||
// Example: UI.UIEventBus.TriggerStaminaChange(Stamina / 100f);
|
||||
}
|
||||
}
|
||||
|
||||
void OnNoiseLevelChangedRender()
|
||||
{
|
||||
OnNoiseLevelChanged?.Invoke(NoiseLevel);
|
||||
}
|
||||
|
||||
private void UpdateUI()
|
||||
{
|
||||
if (Object.HasInputAuthority)
|
||||
{
|
||||
OnHealthChangedRender();
|
||||
OnStaminaChangedRender();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user