51 lines
1.0 KiB
C#
51 lines
1.0 KiB
C#
|
#if FUSION2
|
||
|
using Fusion;
|
||
|
#endif
|
||
|
|
||
|
using UnityEngine;
|
||
|
|
||
|
namespace BulletHellTemplate
|
||
|
{
|
||
|
#if FUSION2
|
||
|
[RequireComponent(typeof(NetworkObject))]
|
||
|
#endif
|
||
|
public class SharedModeMasterClientTracker :
|
||
|
#if FUSION2
|
||
|
NetworkBehaviour
|
||
|
#else
|
||
|
MonoBehaviour
|
||
|
#endif
|
||
|
{
|
||
|
static SharedModeMasterClientTracker LocalInstance;
|
||
|
|
||
|
#if FUSION2
|
||
|
public override void Spawned()
|
||
|
{
|
||
|
LocalInstance = this;
|
||
|
}
|
||
|
|
||
|
private void OnDestroy()
|
||
|
{
|
||
|
if (LocalInstance == this)
|
||
|
LocalInstance = null;
|
||
|
}
|
||
|
|
||
|
public static bool IsPlayerSharedModeMasterClient(PlayerRef player)
|
||
|
{
|
||
|
if (LocalInstance == null)
|
||
|
return false;
|
||
|
|
||
|
return LocalInstance.Object.StateAuthority == player;
|
||
|
}
|
||
|
|
||
|
public static PlayerRef? GetSharedModeMasterClientPlayerRef()
|
||
|
{
|
||
|
if (LocalInstance == null)
|
||
|
return null;
|
||
|
|
||
|
return LocalInstance.Object.StateAuthority;
|
||
|
}
|
||
|
#endif
|
||
|
}
|
||
|
}
|