在我的游戏中,我需要创建一个与所有玩家同步的倒计时计时器,该计时器需要位于DontDestroyOnLoad(支持场景更改)上,因为在我的游戏中,这些场景更改很多。你知道我该怎么做吗? PS:我使用的是Photon的PUN2,因此,几乎所有PUN1都不起作用。
答案 0 :(得分:0)
使用光子在多人游戏中实现计时器的最简单方法。使用Timer在用户界面上应用此脚本
bool startTimer = false;
double timerIncrementValue;
double startTime;
[SerializeField] double timer = 20;
ExitGames.Client.Photon.Hashtable CustomeValue;
void Start()
{
if (PhotonNetwork.player.IsMasterClient)
{
CustomeValue = new ExitGames.Client.Photon.Hashtable();
startTime = PhotonNetwork.time;
startTimer = true;
CustomeValue.Add("StartTime", startTime);
PhotonNetwork.room.SetCustomProperties(CustomeValue);
}
else
{
startTime = double.Parse(PhotonNetwork.room.CustomProperties["StartTime"].ToString());
startTimer = true;
}
}
void Update()
{
if (!startTimer) return;
timerIncrementValue = PhotonNetwork.time - startTime;
if (timerIncrementValue >= timer)
{
//Timer Completed
//Do What Ever You What to Do Here
}
}