Ejemplo n.º 1
0
        public static bool IsOwner(VRCPlayerApi player, GameObject obj)
        {
            ICyanEmuSyncable sync = obj.GetComponent <ICyanEmuSyncable>();
            int owner             = sync == null ? masterID : sync.GetOwner();

            return(owner == player.playerId);
        }
Ejemplo n.º 2
0
        public static VRCPlayerApi GetOwner(GameObject obj)
        {
            ICyanEmuSyncable sync = obj.GetComponent <ICyanEmuSyncable>();

            int playerID = sync != null?sync.GetOwner() : masterID;

            if (!players.TryGetValue(playerID, out VRCPlayerApi player))
            {
                return(null);
            }
            return(player);
        }
Ejemplo n.º 3
0
        public static void DisplaySyncOptions(ICyanEmuSyncable syncable)
        {
            int currentOwner            = 0;
            List <VRCPlayerApi> players = VRCPlayerApi.AllPlayers;

            string[] playerNames = new string[players.Count];
            for (int i = 0; i < players.Count; ++i)
            {
                if (players[i].playerId == syncable.GetOwner())
                {
                    currentOwner = i;
                }
                playerNames[i] = players[i].displayName;
            }

            int owner = EditorGUILayout.Popup("Set Owner", currentOwner, playerNames);

            if (owner != currentOwner)
            {
                Networking.SetOwner(players[owner], (syncable as MonoBehaviour).gameObject);
            }
        }