示例#1
0
        public PlaceObject(byte[] data, Cursor cursor)
        {
            int dataLength = Utils.ReadInt32(data, cursor);
            int nextIndex  = cursor.index + dataLength;

            //parse
            hasMatrix         = Utils.ReadByte(data, cursor) == 0 ? false : true;
            hasCharacter      = Utils.ReadByte(data, cursor) == 0 ? false : true;
            hasColorTransform = Utils.ReadByte(data, cursor) == 0 ? false : true;
            isHidden          = Utils.ReadByte(data, cursor) == 0 ? false : true;

            depth       = Utils.ReadInt32(data, cursor);
            characterId = Utils.ReadInt32(data, cursor);
            if (hasMatrix)
            {
                position = Utils.ReadVector2(data, cursor);
                rotation = Utils.ReadFloat(data, cursor);
                scaleX   = Utils.ReadFloat(data, cursor);
                scaleY   = Utils.ReadFloat(data, cursor);
            }
            else
            {
                position = Vector2.zero;
                rotation = 0;
                scaleX   = 1;
                scaleY   = 1;
            }


            if (hasColorTransform)
            {
                colorTransform = Utils.ReadColorTransform(data, cursor);
            }
            else
            {
                colorTransform = new ColorTransform(Color.white, Color.black);
            }
            instanceName = Utils.ReadString(data, cursor);

            cursor.index = nextIndex;
        }
示例#2
0
        public static ColorTransform ReadColorTransform(byte[] data, Cursor cursor)
        {
            ColorTransform ctr = new ColorTransform();

            ctr.add      = new Color(0, 0, 0, 0);
            ctr.multiply = new Color32(0, 0, 0, 0);
            int mtype = Utils.ReadInt32(data, cursor);

            if (mtype == 1)
            {
                ctr.multiply = new Color(1, 1, 1, 1);
            }
            else if (mtype == 2)
            {
                Color color = new Color();
                color.r      = Utils.ReadFloat(data, cursor);
                color.g      = Utils.ReadFloat(data, cursor);
                color.b      = Utils.ReadFloat(data, cursor);
                color.a      = Utils.ReadFloat(data, cursor);
                ctr.multiply = color;
            }
            int atype = Utils.ReadInt32(data, cursor);

            if (atype == 1)
            {
                ctr.add = new Color(255, 255, 255, 255);
            }
            else if (atype == 2)
            {
                Color32 color = new Color();
                color.r = Utils.ReadByte(data, cursor);
                color.g = Utils.ReadByte(data, cursor);
                color.b = Utils.ReadByte(data, cursor);
                color.a = Utils.ReadByte(data, cursor);
                ctr.add = color;
            }
            return(ctr);
        }