Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using UnityEngine.Networking;
- using System.Collections.Generic;
- public class NewNetworkBehaviour : NetworkBehaviour
- {
- static Dictionary<NetworkInstanceId, NetworkBehaviour> instanceIdToBehavior = new Dictionary<NetworkInstanceId, NetworkBehaviour>();
- public static T GetBehavior<T>(NetworkInstanceId netId) where T : NetworkBehaviour
- {
- return instanceIdToBehavior[netId] as T;
- }
- internal void Start()
- {
- instanceIdToBehavior[this.netId] = this;
- }
- }
- public class Player : NewNetworkBehaviour
- {
- List<Player> suboridnates = new List<Player>();
- internal void Start()
- {
- base.Start();
- }
- // so to be able to add subordinate to any player from any client we have to do this
- public void AddSubordinate(Player subordinate)
- {
- Cmd_AddSubordinate(this.netId, subordinate.netId);
- }
- [Command]
- void Cmd_AddSubordinate(NetworkInstanceId target, NetworkInstanceId subordinate)
- {
- GetBehavior<Player>(target).Rpc_AddSubordinate(subordinate);
- }
- [ClientRpc]
- void Rpc_AddSubordinate(NetworkInstanceId subordinate)
- {
- suboridnates.Add(GetBehavior<Player>(subordinate));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment