示例#1
0
        public static void AddObject(int wi, ServerSyncedObject obj)
        {
            if (objects.ContainsKey(wi))
            {
                return;
            }

            objects.Add(wi, obj);
        }
示例#2
0
        public static int GenerateID(ServerSyncedObject syncedObject)
        {
            var id = syncedObject.gameObject.name.GetHashCode();

            do
            {
                id = (syncedObject.gameObject.name += "1").GetHashCode();
            }while (objects.ContainsKey(id));

            objects.Add(id, syncedObject);
            return(id);
        }
示例#3
0
        private void SendSync() //logging is extremely slow
        {
            ObjectSyncMessage osm = new ObjectSyncMessage();

            foreach (var pair in ObjectIDManager.objects)
            {
                ServerSyncedObject sso = pair.Value;

                if (sso.transform.hasChanged)
                {
                    sso.transform.hasChanged = false;
                    // Sync it
                    //pair.Value.lastSyncedPos = pair.Value.transform.position;
                    //pair.Value.lastSyncedRotation = pair.Value.transform.rotation;
                    osm.objectsToSync.Add(sso.IDHolder.ID, Tuple.Create(sso.gameObject.transform.position, sso.gameObject.transform.rotation));
                }
            }
            ServerSendToAll(osm, P2PSend.Unreliable);
        }