Exemplo n.º 1
0
        public override object  DeserializeRealValue(NGServerScene manager, ByteBuffer buffer, Type fieldType)
        {
            Int32 count = buffer.ReadInt32();

            buffer.Position += count;
            return(buffer.ReadInt32());
        }
Exemplo n.º 2
0
        public override Packet[]        CreateUpdatePackets()
        {
            NGServerScene scene  = Object.FindObjectOfType <NGServerScene>();
            NGShader      shader = scene.GetNGShader(this.material.shader);

            return(new Packet[] { new NotifyMaterialDataChangedPacket(this.material, shader) });
        }
Exemplo n.º 3
0
        public override object  DeserializeRealValue(NGServerScene manager, ByteBuffer buffer, Type fieldType)
        {
            UnityObject unityObject = this.Deserialize(buffer, fieldType) as UnityObject;

            if (unityObject.instanceID == 0)
            {
                return(null);
            }
            return(manager.GetResource(unityObject.type, unityObject.instanceID));
        }
Exemplo n.º 4
0
        public override void    CollectUpdates(List <MonitorData> updates)
        {
            if (this.material == null)
            {
                updates.Add(this);
                return;
            }

            if (this.workingShader != this.material.shader)
            {
                this.workingShader = this.material.shader;
                this.children.Clear();

                updates.Add(this);

                if (this.material.shader != null)
                {
                    NGServerScene scene  = Object.FindObjectOfType <NGServerScene>();
                    NGShader      shader = scene.GetNGShader(this.material.shader);

                    if (shader != null)
                    {
                        this.MonitorChildren(shader);
                    }
                }

                return;
            }

            // Remove properties if the shader has changed.
            for (int i = 0; i < this.children.Count; i++)
            {
                if (this.children[i].ToDelete == true)
                {
                    this.children.RemoveAt(i--);
                }
            }

            for (int i = 0; i < this.children.Count; i++)
            {
                this.children[i].CollectUpdates(updates);
            }
        }
Exemplo n.º 5
0
 /// <summary>
 /// Called in OnDestroy on the server side.
 /// </summary>
 /// <param name="scene"></param>
 public virtual void     OnDestroy(NGServerScene scene)
 {
 }
Exemplo n.º 6
0
 /// <summary>
 /// Called in Awake on the server side.
 /// </summary>
 /// <param name="scene"></param>
 public virtual void     Awake(NGServerScene scene)
 {
 }
Exemplo n.º 7
0
 /// <summary>
 /// <para>Deserializes the network-readable value from <paramref name="buffer"/> and gets the real value from it.</para>
 /// </summary>
 /// <param name="buffer"></param>
 /// <param name="fieldType"></param>
 /// <returns></returns>
 public virtual object   DeserializeRealValue(NGServerScene manager, ByteBuffer buffer, Type fieldType)
 {
     return(this.Deserialize(buffer, fieldType));
 }
Exemplo n.º 8
0
 public override void    OnDestroy(NGServerScene scene)
 {
     scene.server.executer.UnhandlePacket(RemoteScenePacketId.Camera_ClientModuleSetUseJPG, this.SetUseJPG);
     scene.server.executer.UnhandlePacket(RemoteScenePacketId.Camera_ClientModuleSetUseCompression, this.SetUseCompression);
 }
Exemplo n.º 9
0
        private void    ReferenceAll()
        {
            try
            {
                string[] assets = Directory.GetFiles(Application.dataPath, "*", SearchOption.AllDirectories);

                for (int i = 0; i < assets.Length; i++)
                {
                    if (assets[i].EndsWith(".meta") == true || assets[i].EndsWith(".shader") == false)
                    {
                        continue;
                    }

                    string p = assets[i].Substring(Application.dataPath.Length - "Assets".Length);
                    AssetDatabase.LoadAssetAtPath <Shader>(p);

                    EditorUtility.DisplayProgressBar(Constants.PackageTitle, "Scanning assets (" + i + " / " + assets.Length + ")", (float)i / (float)assets.Length);
                }

                Shader[]      shaders    = Resources.FindObjectsOfTypeAll <Shader>();
                List <Shader> references = new List <Shader>();

                for (int i = 0; i < shaders.Length; i++)
                {
                    if ((shaders[i].hideFlags & HideFlags.DontSave) == 0)
                    {
                        references.Add(shaders[i]);
                    }
                }

                NGServerScene scene = this.shaders.serializedObject.targetObject as NGServerScene;

                //scene.shaderReferences.shaders = references.ToArray();

                EditorUtility.DisplayProgressBar(Constants.PackageTitle, "Saving shaders...", 0.99F);
                this.shaders.arraySize = references.Count;
                for (int i = 0; i < references.Count; i++)
                {
                    this.shaders.GetArrayElementAtIndex(i).objectReferenceValue = references[i];
                }

                this.shaders.serializedObject.ApplyModifiedProperties();

                EditorUtility.DisplayProgressBar(Constants.PackageTitle, "Saving shaders' properties...", 1F);
                ByteBuffer buffer = Utility.GetBBuffer();
                buffer.Append(references.Count);

                for (int i = 0; i < references.Count; i++)
                {
                    NGShaderUtility.SerializeShader(references[i], buffer);
                }

                scene.shaderReferences.properties = Utility.ReturnBBuffer(buffer);
                //byte[]	raw = Utility.ReturnBBuffer(buffer);

                //this.properties.arraySize = raw.Length;
                //for (int i = 0; i < raw.Length; i++)
                //	this.properties.GetArrayElementAtIndex(i).intValue = raw[i];
                this.shaders.serializedObject.Update();
            }
            finally
            {
                EditorUtility.ClearProgressBar();
            }
        }