Example #1
0
        public override void Read(SocketEndpoint sendingEndpoint, BinaryReader message)
        {
            TextBroadcaster.ChangeType changeType = (TextBroadcaster.ChangeType)message.ReadByte();

            if (TextBroadcaster.HasFlag(changeType, TextBroadcaster.ChangeType.Text))
            {
                attachedComponent.text = message.ReadString();
            }
            if (TextBroadcaster.HasFlag(changeType, TextBroadcaster.ChangeType.FontAndPlacement))
            {
                attachedComponent.alignment          = (TextAnchor)message.ReadByte();
                attachedComponent.color              = message.ReadColor();
                attachedComponent.fontSize           = message.ReadInt32();
                attachedComponent.fontStyle          = (FontStyle)message.ReadByte();
                attachedComponent.lineSpacing        = message.ReadSingle();
                attachedComponent.horizontalOverflow = (HorizontalWrapMode)message.ReadByte();
                attachedComponent.verticalOverflow   = (VerticalWrapMode)message.ReadByte();
                attachedComponent.font = TextService.Instance.GetFont(message.ReadGuid());
            }
            if (TextBroadcaster.HasFlag(changeType, TextBroadcaster.ChangeType.Materials))
            {
                var materials = MaterialPropertyAsset.ReadMaterials(message, null);
                if (materials != null &&
                    materials.Length > 0)
                {
                    attachedComponent.material = materials[0];
                }
            }
            if (TextBroadcaster.HasFlag(changeType, TextBroadcaster.ChangeType.MaterialProperty))
            {
                int materialIndex = message.ReadInt32();
                MaterialPropertyAsset.Read(message, new Material[] { attachedComponent.material }, materialIndex);
            }
        }
Example #2
0
        public override void Read(SocketEndpoint sendingEndpoint, BinaryReader message)
        {
            ImageBroadcaster.ChangeType changeType = (ImageBroadcaster.ChangeType)message.ReadByte();

            if (ImageBroadcaster.HasFlag(changeType, ImageBroadcaster.ChangeType.Data))
            {
                attachedComponent.overrideSprite = ImageService.Instance.GetSprite(message.ReadGuid());
                attachedComponent.sprite         = ImageService.Instance.GetSprite(message.ReadGuid());
                attachedComponent.fillAmount     = message.ReadSingle();
                attachedComponent.color          = message.ReadColor();

                attachedComponent.alphaHitTestMinimumThreshold = message.ReadSingle();
                attachedComponent.fillOrigin     = message.ReadInt32();
                attachedComponent.fillClockwise  = message.ReadBoolean();
                attachedComponent.fillMethod     = (Image.FillMethod)message.ReadByte();
                attachedComponent.fillCenter     = message.ReadBoolean();
                attachedComponent.preserveAspect = message.ReadBoolean();
                attachedComponent.type           = (Image.Type)message.ReadByte();
                attachedComponent.enabled        = message.ReadBoolean();
            }
            if (ImageBroadcaster.HasFlag(changeType, ImageBroadcaster.ChangeType.Materials))
            {
                var materials = MaterialPropertyAsset.ReadMaterials(message, null);
                if (materials != null &&
                    materials.Length > 0)
                {
                    attachedComponent.material = materials[0];
                }
            }
            if (ImageBroadcaster.HasFlag(changeType, ImageBroadcaster.ChangeType.MaterialProperty))
            {
                int materialIndex = message.ReadInt32();
                MaterialPropertyAsset.Read(message, new Material[] { attachedComponent.material }, materialIndex);
            }
        }
        public static Material[] ReadMaterials(BinaryReader message, Material[] existingMaterials)
        {
            int materialCount = message.ReadInt32();

            Material[] materials = new Material[materialCount];
            for (int i = 0; i < materialCount; i++)
            {
                string shaderName = message.ReadString();
                if (shaderName != string.Empty)
                {
                    Material material;
                    if (existingMaterials != null && i < existingMaterials.Length)
                    {
                        material      = existingMaterials[i];
                        material.name = message.ReadString();

                        if (material.shader.name != shaderName)
                        {
                            Shader shader = Shader.Find(shaderName);
                            if (shader == null)
                            {
                                Debug.Log("Couldn't find shader with name " + shaderName);
                                shader = Shader.Find("Standard");
                            }
                            material.shader = shader;
                        }
                    }
                    else
                    {
                        Shader shader = Shader.Find(shaderName);
                        if (shader == null)
                        {
                            Debug.Log("Couldn't find shader with name " + shaderName);
                            shader = Shader.Find("Standard");
                        }

                        material      = new Material(shader);
                        material.name = message.ReadString();
                    }

                    materials[i] = material;

                    int materialPropertyCount = message.ReadInt32();
                    for (int j = 0; j < materialPropertyCount; j++)
                    {
                        MaterialPropertyAsset.Read(message, materials, i);
                    }
                }
            }
            return(materials);
        }
Example #4
0
 protected virtual void Read(SocketEndpoint sendingEndpoint, BinaryReader message, byte changeType)
 {
     if (RendererBroadcaster <TRenderer, TComponentService> .HasFlag(changeType, RendererBroadcaster <TRenderer, TComponentService> .ChangeType.Enabled) && Renderer)
     {
         Renderer.enabled = message.ReadBoolean();
     }
     if (RendererBroadcaster <TRenderer, TComponentService> .HasFlag(changeType, RendererBroadcaster <TRenderer, TComponentService> .ChangeType.Materials) && Renderer)
     {
         Renderer.materials = MaterialPropertyAsset.ReadMaterials(message, Renderer.materials);
     }
     if (RendererBroadcaster <TRenderer, TComponentService> .HasFlag(changeType, RendererBroadcaster <TRenderer, TComponentService> .ChangeType.MaterialProperty) && Renderer)
     {
         int materialIndex = message.ReadInt32();
         MaterialPropertyAsset.Read(message, Renderer.materials, materialIndex);
     }
 }