You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
HighGroundRoyaleNetcode/Assets/Scripts/TimerScript.cs

60 lines
1.3 KiB
C#

using System;
using System.Collections;
using Unity.Multiplayer.Samples.Utilities;
using Unity.Netcode;
using UnityEngine;
public class TimerScript : NetworkBehaviour
{
[SerializeField] private SynchronizedTimer timer;
public ServerAdditiveSceneLoader serverAdditiveSceneLoader;
public int timeInSeconds;
private void OnEnable()
{
timer.OnTimerEnd += HandleTimerEnd;
}
private void OnDisable()
{
timer.OnTimerEnd -= HandleTimerEnd;
}
void Start()
{
if (timer != null)
{
Debug.Log("Timer started call sent");
StartCoroutine(Starter());
}
}
IEnumerator Starter()
{
yield return new WaitUntil(() => serverAdditiveSceneLoader.m_SceneState == ServerAdditiveSceneLoader.SceneState.Loaded);
if (NetworkManager.Singleton.IsServer)
{
yield return new WaitForSeconds(2.5f);
Debug.Log("Timer started call sent2");
timer.StartTimerServer(timeInSeconds);
}
}
private void HandleTimerEnd()
{
Debug.Log("Timer has ended!");
if(IsServer)
OnTimerEndClientRPC();
}
[Rpc(SendTo.NotOwner)]
private void OnTimerEndClientRPC()
{
Debug.Log("OnTimerEndClientRPC called!");
Scoreboard.Instance.FinalLeaderBoard();
}
}