public void Update() { Dictionary <int, ServerNetwork.NetworkObject> objInfo = serverNet.GetAllObjects(); foreach (KeyValuePair <int, ServerNetwork.NetworkObject> objKV in objInfo) { netObjs[objKV.Key].transform.position = objKV.Value.position; } Dictionary <int, ServerNetwork.NetworkObject> objs = serverNet.GetAllObjects(); if (objectCurrentlyIt == 0 || !objs.ContainsKey(objectCurrentlyIt)) { if (objs.Count == 0) { return; } // Pick someone "random" and tell them they are it foreach (KeyValuePair <int, ServerNetwork.NetworkObject> objData in objs) { if (objData.Value.prefabName == "Player") { objectCurrentlyIt = objData.Value.networkId; serverNet.CallRPC("SetItState", UCNetwork.MessageReceiver.AllClients, objData.Value.networkId, true); return; } } } // Check if someone has been "tagged" if (objs.Count > 1 && canTag) { ServerNetwork.NetworkObject itObj = objs[objectCurrentlyIt]; foreach (KeyValuePair <int, ServerNetwork.NetworkObject> objData in objs) { if (objData.Value.prefabName == "Player") { if (objData.Value.networkId == objectCurrentlyIt) { continue; } float sqrDis = (itObj.position - objData.Value.position).sqrMagnitude; if (sqrDis < 1) { serverNet.CallRPC("SetItState", UCNetwork.MessageReceiver.AllClients, objectCurrentlyIt, false); serverNet.CallRPC("SetItState", UCNetwork.MessageReceiver.AllClients, objData.Value.networkId, true); objectCurrentlyIt = objData.Value.networkId; canTag = false; StartCoroutine(TagbackTime()); return; } } } } }
public void Update() { Dictionary <int, ServerNetwork.NetworkObject> objInfo = serverNet.GetAllObjects(); foreach (KeyValuePair <int, ServerNetwork.NetworkObject> objKV in objInfo) { netObjs[objKV.Key].transform.position = objKV.Value.position; } }
// Update is called once per frame void Update() { // How often should we update to the admin clients? updateTimer -= Time.deltaTime; if (updateTimer <= 0) { updateTimer = updateFrequency; // Send down all the network objects Dictionary <int, ServerNetwork.NetworkObject> objects = serverNet.GetAllObjects(); foreach (long clientId in adminClients) { foreach (KeyValuePair <int, ServerNetwork.NetworkObject> obj in objects) { serverNet.CallRPC("UpdateNetObject", clientId, -1, obj.Value.networkId, obj.Value.areaId, obj.Value.prefabName, obj.Value.position, obj.Value.rotation, obj.Value.followsClient); } } } }