Ejemplo n.º 1
0
 private void Start()
 {
     // Force mixer to update volumes (does not work in init if init is called too early?)
     MasterVolume.ForceUpdateMixer();
     MusicVolume.ForceUpdateMixer();
     WorldVolume.ForceUpdateMixer();
     UIVolume.ForceUpdateMixer();
 }
Ejemplo n.º 2
0
        public void Do()
        {
            WorldVolume add;
            Vector3     remove;
            int         addcount, removecount;

            while (true)
            {
                addcount    = 0;
                removecount = 0;
                while (AddQueue.Count > 0 && addcount < 3000)
                {
                    add = new WorldVolume((Volume)AddQueue.Dequeue());
                    if (add == null)
                    {
                        continue;
                    }
                    octree.Add(add);
                    addcount++;
                }
                while (RemoveQueue.Count > 0 && removecount < 3000)
                {
                    remove = (Vector3)RemoveQueue.Dequeue();
                    if (remove == null)
                    {
                        continue;
                    }
                    Console.WriteLine("Removing " + remove);
                    octree.Remove(remove);
                    removecount++;
                }


                faceBatch.Update();
                lock (Locked)
                {
                    while (AddQueue.Count == 0 && RemoveQueue.Count == 0)
                    {
                        Monitor.Wait(Locked);
                    }
                }
            }
        }
Ejemplo n.º 3
0
        public void Do()
        {
            WorldVolume add;
            Vector3 remove;
            int addcount, removecount;
            while (true)
            {
                addcount = 0;
                removecount = 0;
                while (AddQueue.Count > 0 && addcount < 3000)
                {
                    add = new WorldVolume((Volume)AddQueue.Dequeue());
                    if (add == null) continue;
                    octree.Add( add );
                    addcount++;
                }
                while (RemoveQueue.Count > 0 && removecount < 3000)
                {
                    remove = (Vector3)RemoveQueue.Dequeue();
                    if (remove == null) continue;
                    Console.WriteLine("Removing " + remove);
                    octree.Remove( remove );
                    removecount++;
                }

                faceBatch.Update();
                lock (Locked)
                {
                    while (AddQueue.Count == 0 && RemoveQueue.Count == 0) Monitor.Wait(Locked);
                }
            }
        }