Ejemplo n.º 1
0
    public static void LoadUIElement(FakeStruct fake, UIElement parent)
    {
        UIElement ui = new UIElement();

        ui.parent = parent;
        ui.name   = fake.GetData <string>(1);
    }
Ejemplo n.º 2
0
        public static unsafe FakeStruct LoadFromObject(Component com, DataBuffer buffer)
        {
            var img = com as Image;

            if (img == null)
            {
                return(null);
            }
            FakeStruct fake = new FakeStruct(buffer, ImageData.ElementSize);
            ImageData *data = (ImageData *)fake.ip;

            data->alphaHit       = img.alphaHitTestMinimumThreshold;
            data->fillAmount     = img.fillAmount;
            data->fillCenter     = img.fillCenter;
            data->fillClockwise  = img.fillClockwise;
            data->fillMethod     = img.fillMethod;
            data->fillOrigin     = img.fillOrigin;
            data->preserveAspect = img.preserveAspect;
            data->type           = img.type;
            data->color          = img.color;
            if (img.sprite != null)
            {
                var tn = img.sprite.texture.name;
                var sn = img.sprite.name;
                var an = ElementAsset.TxtureFormAsset(img.sprite.texture.name);
                data->assetName   = buffer.AddData(an);
                data->textureName = buffer.AddData(tn);
                data->spriteName  = buffer.AddData(sn);
            }
            if (img.material != null)
            {
                data->shader = buffer.AddData(img.material.shader.name);
            }
            return(fake);
        }
        public override unsafe FakeStruct LoadFromObject(Component com, DataBuffer buffer)
        {
            var obj = com as EdgeCollider2D;

            if (obj == null)
            {
                return(null);
            }
            FakeStruct        fake = new FakeStruct(buffer, EdgeColliderData.ElementSize);
            EdgeColliderData *ec   = (EdgeColliderData *)fake.ip;

            if (obj.sharedMaterial != null)
            {
                ec->sharedMaterial = buffer.AddData(obj.sharedMaterial.name);
            }
            ec->offset         = obj.offset;
            ec->usedByEffector = obj.usedByEffector;
            ec->isTrigger      = obj.isTrigger;
            ec->density        = obj.density;
            ec->edgeRadius     = obj.edgeRadius;
            if (obj.points != null)
            {
                ec->points = buffer.AddArray <Vector2>(obj.points);
            }
            return(fake);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 初始化
        /// </summary>
        /// <param name="fake">数据模型</param>
        /// <param name="element">主体元素</param>
        public override void Initial(FakeStruct fake, UIElement element, Initializer initializer)
        {
            base.Initial(fake, element, initializer);
            element.SizeChanged  = (o) => { Refresh(); };
            eventCall            = Enity.RegEvent <UserEvent>();
            eventCall.Drag       = (o, e, s) => { Scrolling(o, s); };
            eventCall.DragEnd    = (o, e, s) => { Scrolling(o, s); };
            eventCall.ScrollEndY = OnScrollEnd;
            eventCall.Scrolling  = Scrolling;
            eventCall.ForceEvent = true;
            Size = Enity.SizeDelta;
            eventCall.CutRect = true;
            var trans = element.transform;

            BodyParent  = trans.Find("Bodys");
            TitleParent = trans.Find("Titles");
            HGUIManager.GameBuffer.RecycleChild(Enity.gameObject, new string[] { "Bodys", "Titles" });

            TitleMod = HGUIManager.FindChild(fake, "Title");
            ItemMod  = HGUIManager.FindChild(fake, "Item");
            TailMod  = HGUIManager.FindChild(fake, "Tail");
            Body     = HGUIManager.FindChild(fake, "Body");
            unsafe
            {
                ItemSize  = ((UITransfromData *)ItemMod.ip)->size;
                TitleSize = ((UITransfromData *)TitleMod.ip)->size;
                if (TailMod != null)
                {
                    TailSize = ((UITransfromData *)TailMod.ip)->size;
                }
            }
        }
Ejemplo n.º 5
0
 public unsafe override void Load(FakeStruct fake)
 {
     data        = *(RawImageData *)fake.ip;
     shader      = fake.buffer.GetData(data.shader) as string;
     assetName   = fake.buffer.GetData(data.assetName) as string;
     textureName = fake.buffer.GetData(data.textureName) as string;
 }
Ejemplo n.º 6
0
        protected void LoadHText(FakeStruct fake, HText tar)
        {
            HTextData tmp = new HTextData();

            unsafe
            {
                HTextData *src = &tmp;
                TextHelper.LoadData((byte *)src, fake.ip);

                var buffer = fake.buffer;
                tar.m_text = buffer.GetData(src->text) as string;
                fontName   = buffer.GetData(src->font) as string;
                if (fontName != null)
                {
                    tar._font = FindFont(fontName);
                }
                else
                {
                    tar._font = null;
                }
            }
            tar.TextPivot   = tmp.pivot;
            tar.m_hof       = tmp.m_hof;
            tar.m_vof       = tmp.m_vof;
            tar.TextAnchor  = tmp.anchor;
            tar.m_richText  = tmp.m_richText;
            tar.m_lineSpace = tmp.m_lineSpace;
            tar.m_fontSize  = tmp.m_fontSize;
            tar.m_align     = tmp.m_align;
            tar.m_fontStyle = tmp.m_fontStyle;
            tar.sizeFitter  = tmp.sizeFitter;
            tar.OutLine     = tmp.OutLine;
        }
        public override unsafe FakeStruct LoadFromObject(Component com, DataBuffer buffer)
        {
            var sr = com as SpriteMask;

            if (sr == null)
            {
                return(null);
            }
            FakeStruct      fake = new FakeStruct(buffer, SpriteMaskData.ElementSize);
            SpriteMaskData *data = (SpriteMaskData *)fake.ip;

            data->alphaCutoff         = sr.alphaCutoff;
            data->isCustomRangeActive = sr.isCustomRangeActive;
            data->frontSortingLayerID = sr.frontSortingLayerID;
            data->frontSortingOrder   = sr.frontSortingOrder;
            data->backSortingLayerID  = sr.backSortingLayerID;
            data->backSortingOrder    = sr.backSortingOrder;
            data->spriteSortPoint     = sr.spriteSortPoint;
            if (sr.sprite != null)
            {
                var tn = sr.sprite.texture.name;
                var sn = sr.sprite.name;
                var an = ElementAsset.TxtureFormAsset(sr.sprite.texture.name);
                data->assetName   = buffer.AddData(an);
                data->textureName = buffer.AddData(tn);
                data->spriteName  = buffer.AddData(sn);
            }
            return(fake);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// 初始化
        /// </summary>
        /// <param name="fake">数据模型</param>
        /// <param name="script">元素主体</param>
        public override void Initial(FakeStruct fake, UIElement script, Initializer initializer)
        {
            base.Initial(fake, script, initializer);
            items                = new List <Item>();
            eventCall            = Enity.RegEvent <UserEvent>();
            eventCall.AutoColor  = false;
            eventCall.ForceEvent = true;
            eventCall.Drag       = (o, e, s) => { Scrolling(o, s); };
            eventCall.DragEnd    = (o, e, s) => {
                if (o.VelocityY == 0)
                {
                    OnScrollEnd(o);
                }
                else
                {
                    Scrolling(o, s);
                }
            };
            eventCall.Scrolling  = Scrolling;
            eventCall.ScrollEndY = OnScrollEnd;
            eventCall.MouseWheel = (o, e) => { Move(e.MouseWheelDelta * 100); };
            model = fake;
            var trans = Enity.transform;

            HGUIManager.GameBuffer.RecycleChild(trans.gameObject);
        }
Ejemplo n.º 9
0
        /// <summary>
        /// 初始化
        /// </summary>
        /// <param name="fake">数据模型</param>
        /// <param name="element">主体元素</param>
        public override void Initial(FakeStruct fake, UIElement element, UIInitializer initializer)
        {
            base.Initial(fake, element, initializer);
            element.SizeChanged   = (o) => { Refresh(); };
            eventCall             = Enity.RegEvent <UserEvent>();
            eventCall.PointerDown = (o, e) => { UpdateVelocity = false; };
            eventCall.Drag        = (o, e, s) => { Scrolling(o, s); };
            eventCall.DragEnd     = OnDragEnd;
            eventCall.MouseWheel  = (o, e) => {
                Point += BounceBack((e.MouseWheelDelta * 100));
                Order();
                UpdateVelocity = true;
            };
            eventCall.ForceEvent = true;
            Size = Enity.SizeDelta;
            eventCall.CutRect = true;
            BodyParent        = element.Find("Bodys");
            TitleParent       = element.Find("Titles");
            HGUIManager.RecycleChild(Enity, new string[] { "Bodys", "Titles" });

            TitleMod  = HGUIManager.FindChild(fake, "Title");
            ItemMod   = HGUIManager.FindChild(fake, "Item");
            TailMod   = HGUIManager.FindChild(fake, "Tail");
            Body      = HGUIManager.FindChild(fake, "Body");
            ItemSize  = UIElementLoader.GetSize(ItemMod);
            TitleSize = UIElementLoader.GetSize(TitleMod);
            if (TailMod != null)
            {
                TailSize = UIElementLoader.GetSize(TailMod);
            }
        }
Ejemplo n.º 10
0
        public void Should_set_subobj_property_subobj_is_struct_and_readwrite()
        {
            var fake = new FakeStruct {
                Name = "Old Value"
            };
            var view = new ViewHasSubProps
            {
                FakeVal = fake
            };

            var page = new ContentPage
            {
                Content = view
            };

            var ctx = new XenMessageContext();

            ctx.SetRequest <SetPropertyRequest>(r =>
            {
                r.WidgetId = view.Id.ToString();
                r.Path     = new[] { "FakeVal", "Name" };
                r.Value    = "A New Value";
            });

            Assert.AreEqual("Old Value", fake.Name);
            XamarinFormsReaction.Register <SetPropertyRequest, SetPropertyReaction>(page);
            Reaction.Execute(ctx);

            Assert.AreEqual("A New Value", view.FakeVal.Name);
        }
Ejemplo n.º 11
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="container">模型名称</param>
 /// <param name="mod">模式数据</param>
 public UILinker(UIContainer container, FakeStruct mod)
 {
     con   = container;
     model = mod;
     container.linkers.Add(this);
     initializer = new UIInitializer(TempReflection.ObjectFields(typeof(T)));
 }
Ejemplo n.º 12
0
        /// <summary>
        /// 初始化
        /// </summary>
        /// <param name="fake">数据模型</param>
        /// <param name="script">元素主体</param>
        public override void Initial(FakeStruct fake, UIElement script, Initializer initializer)
        {
            base.Initial(fake, script, initializer);
            Size           = Enity.SizeDelta;
            eventCall      = Enity.RegEvent <UserEvent>();
            eventCall.Drag = (o, e, s) =>
            {
                Scrolling(o, s);
            };
            eventCall.DragEnd = (o, e, s) =>
            {
                Scrolling(o, s);
                o.DecayRateX = 0.998f;
                o.DecayRateY = 0.998f;
            };
            eventCall.ScrollEndX = OnScrollEndX;
            eventCall.ScrollEndY = OnScrollEndY;
            eventCall.Scrolling  = Scrolling;
            eventCall.ForceEvent = true;

            eventCall.CutRect = true;
            var chi = Enity.transform.Find("Content");

            if (chi != null)
            {
                Content = chi.GetComponent <UIElement>();
                if (Content != null)
                {
                    ContentSize = Content.SizeDelta;
                }
            }
        }
Ejemplo n.º 13
0
 public unsafe override void Load(FakeStruct fake)
 {
     data     = *(TextData *)fake.ip;
     shader   = fake.buffer.GetData(data.shader) as string;
     text     = fake.buffer.GetData(data.text) as string;
     fontName = fake.buffer.GetData(data.font) as string;
 }
Ejemplo n.º 14
0
        public override void Initial(FakeStruct mod, UIElement script)
        {
            base.Initial(mod, script);
            var trans = script.transform;

            callBack             = Enity.RegEvent <UserEvent>();
            callBack.Drag        = callBack.DragEnd = Draging;
            callBack.PointerDown = PointDown;
            callBack.AutoColor   = false;
            var tmp = trans.Find("FillImage");

            if (tmp != null)
            {
                FillImage = tmp.GetComponent <HImage>();
            }
            tmp = trans.Find("Nob");
            Nob = tmp.GetComponent <HImage>();
            unsafe
            {
                var ex = mod.buffer.GetData(((TransfromData *)mod.ip)->ex) as FakeStruct;
                if (ex != null)
                {
                    info = *(SliderInfo *)ex.ip;
                }
            }
        }
Ejemplo n.º 15
0
        public void GetTranslationEnum_UseNotEnum_ThrowException()
        {
            var translationServiceMock = new Mock <ITranslationService>();
            var fake = new FakeStruct();

            Assert.ThrowsException <ArgumentException>(() => fake.GetTranslationEnum(translationServiceMock.Object, "PL"));
        }
        public static unsafe FakeStruct LoadFromObject(Component com, DataBuffer buffer)
        {
            var txt = com as Text;

            if (txt == null)
            {
                return(null);
            }
            FakeStruct fake = new FakeStruct(buffer, TextData.ElementSize);
            TextData * data = (TextData *)fake.ip;

            data->alignByGeometry      = txt.alignByGeometry;
            data->alignment            = txt.alignment;
            data->fontSize             = txt.fontSize;
            data->fontStyle            = txt.fontStyle;
            data->horizontalOverflow   = txt.horizontalOverflow;
            data->lineSpacing          = txt.lineSpacing;
            data->resizeTextForBestFit = txt.resizeTextForBestFit;
            data->resizeTextMaxSize    = txt.resizeTextMaxSize;
            data->resizeTextMinSize    = txt.resizeTextMinSize;
            data->supportRichText      = txt.supportRichText;
            data->verticalOverflow     = txt.verticalOverflow;
            data->color = txt.color;
            data->text  = buffer.AddData(txt.text);
            if (txt.font != null)
            {
                data->font = buffer.AddData(txt.font.name);
            }
            if (txt.material != null)
            {
                data->shader = buffer.AddData(txt.material.shader.name);
            }
            return(fake);
        }
Ejemplo n.º 17
0
        protected unsafe void LoadHText(FakeStruct fake, HText tar)
        {
            HTextData *src    = (HTextData *)fake.ip;
            var        buffer = fake.buffer;

            tar.m_text = buffer.GetData(src->text) as string;
            fontName   = buffer.GetData(src->font) as string;
            if (fontName != null)
            {
                tar._font = FindFont(fontName);
            }
            else
            {
                tar._font = null;
            }
            tar.TextPivot   = src->pivot;
            tar.m_hof       = src->m_hof;
            tar.m_vof       = src->m_vof;
            tar.TextAnchor  = src->anchor;
            tar.m_richText  = src->m_richText;
            tar.m_lineSpace = src->m_lineSpace;
            tar.m_fontSize  = src->m_fontSize;
            tar.m_align     = src->m_align;
            tar.m_fontStyle = src->m_fontStyle;
            tar.sizeFitter  = src->sizeFitter;
        }
Ejemplo n.º 18
0
        public static unsafe FakeStruct LoadFromObject(Component com, DataBuffer buffer)
        {
            var obj = com as PolygonCollider2D;

            if (obj == null)
            {
                return(null);
            }
            FakeStruct           fake = new FakeStruct(buffer, PolygonColliderData.ElementSize);
            PolygonColliderData *ec   = (PolygonColliderData *)fake.ip;

            if (obj.sharedMaterial != null)
            {
                ec->sharedMaterial = buffer.AddData(obj.sharedMaterial.name);
            }
            ec->offset         = obj.offset;
            ec->usedByEffector = obj.usedByEffector;
            ec->isTrigger      = obj.isTrigger;
            ec->density        = obj.density;
            ec->autoTiling     = obj.autoTiling;
            ec->pathCount      = obj.pathCount;
            if (obj.points != null)
            {
                ec->points = buffer.AddArray <Vector2>(obj.points);
            }
            return(fake);
        }
        public unsafe override void LoadToObject(FakeStruct fake, Component game)
        {
            var data = (SpriteMaskData *)fake.ip;
            var obj  = game.GetComponent <SpriteMask>();

            if (obj == null)
            {
                return;
            }
            obj.alphaCutoff         = data->alphaCutoff;
            obj.isCustomRangeActive = data->isCustomRangeActive;
            obj.frontSortingLayerID = data->frontSortingLayerID;
            obj.frontSortingOrder   = data->frontSortingOrder;
            obj.backSortingLayerID  = data->backSortingLayerID;
            obj.backSortingOrder    = data->backSortingOrder;
            obj.spriteSortPoint     = data->spriteSortPoint;
            string assetsName  = fake.buffer.GetData(data->assetName) as string;
            string textureName = fake.buffer.GetData(data->textureName) as string;
            string spriteName  = fake.buffer.GetData(data->spriteName) as string;

            if (textureName != null)
            {
                obj.sprite = ElementAsset.FindSprite(assetsName, textureName, spriteName);
            }
        }
        public static unsafe FakeStruct LoadFromObject(Component com, DataBuffer buffer)
        {
            var ae = com as BoxCollider2D;

            if (ae == null)
            {
                return(null);
            }
            FakeStruct       fake = new FakeStruct(buffer, BoxColliderData.ElementSize);
            BoxColliderData *data = (BoxColliderData *)fake.ip;

            if (ae.sharedMaterial != null)
            {
                data->sharedMaterial = buffer.AddData(ae.sharedMaterial.name);
            }
            data->offset          = ae.offset;
            data->usedByComposite = ae.usedByComposite;
            data->usedByEffector  = ae.usedByEffector;
            data->isTrigger       = ae.isTrigger;
            data->density         = ae.density;
            data->size            = ae.size;
            data->edgeRadius      = ae.edgeRadius;
            data->autoTiling      = ae.autoTiling;
            return(fake);
        }
Ejemplo n.º 21
0
        /// <summary>
        /// 创建项目
        /// </summary>
        /// <param name="buffer">项目缓存</param>
        /// <param name="con">构造器</param>
        /// <param name="mod">UI模型数据</param>
        /// <param name="parent">父坐标变换</param>
        /// <returns></returns>
        protected ScrollItem CreateItem(List <ScrollItem> buffer, Constructor con, FakeStruct mod, Transform parent)
        {
            if (buffer.Count > 0)
            {
                var it = buffer[0];
                it.target.gameObject.SetActive(true);
                it.index = -1;
                buffer.RemoveAt(0);
                return(it);
            }
            ScrollItem a = new ScrollItem();

            if (con == null)
            {
                a.obj = a.target = HGUIManager.GameBuffer.Clone(mod).transform;
            }
            else
            {
                a.obj    = con.Create();
                a.target = HGUIManager.GameBuffer.Clone(mod, con.initializer).transform;
            }
            a.target.SetParent(parent);
            a.target.localScale    = Vector3.one;
            a.target.localRotation = Quaternion.identity;
            return(a);
        }
Ejemplo n.º 22
0
        public override void Initial(FakeStruct fake, UIElement element)
        {
            base.Initial(fake, element);
            palette               = new Palette();
            callBackR             = element.RegEvent <UserEvent>();
            callBackR.IsCircular  = true;
            callBackR.Drag        = callBackR.DragEnd = DragingR;
            callBackR.PointerDown = PointDownR;
            var mod = element.transform;

            NobA                  = mod.Find("NobA");
            NobB                  = mod.Find("NobB");
            hc                    = mod.Find("HTemplate");
            template              = hc.GetComponent <HImage>();
            callBackC             = template.RegEvent <UserEvent>();
            callBackC.Drag        = callBackC.DragEnd = DragingC;
            callBackC.PointerDown = PointDownC;
            htemp                 = mod.GetComponent <HImage>();
            htemp.MainTexture     = Palette.LoadCTemplateAsync();
            template.MainTexture  = palette.texture;
            palette.AwaitLoadHSVT(1);
            SelectColor.a = 1;
            var son = mod.Find("Slider");

            slider                  = son.GetComponent <HImage>();
            slider.MainTexture      = Palette.AlphaTemplate();
            uISlider                = slider.composite as UISlider;
            uISlider.OnValueChanged = AlphaChanged;
            uISlider.Percentage     = 1;
        }
Ejemplo n.º 23
0
        /// <summary>
        /// 载入一个预制体资源
        /// </summary>
        /// <param name="db">资源数据</param>
        /// <param name="name">资源名</param>
        /// <returns></returns>
        public unsafe static PrefabAsset LoadModels(DataBuffer db, string name)
        {
            var fake  = db.fakeStruct;
            var asset = new PrefabAsset();

            asset.models = fake.GetData <FakeStruct>(0);
            Int16[] arr = fake.GetData <Int16[]>(1);
            if (arr != null)
            {
                FakeStruct[] fsa = new FakeStruct[arr.Length];
                for (int i = 0; i < arr.Length; i++)
                {
                    fsa[i] = db.GetData(arr[i]) as FakeStruct;
                }
                asset.tables = fsa;
            }
            asset.Version = fake.GetData <string>(2);
            asset.name    = name;
            for (int i = 0; i < prefabAssets.Count; i++)
            {
                if (prefabAssets[i].name == name)
                {
                    prefabAssets.RemoveAt(i);
                    break;
                }
            }
            prefabAssets.Add(asset);
            return(asset);
        }
Ejemplo n.º 24
0
        public static unsafe FakeStruct LoadFromObject(Component com, DataBuffer buffer)
        {
            var obj = com as SliderJoint2D;

            if (obj == null)
            {
                return(null);
            }
            FakeStruct       fake = new FakeStruct(buffer, SliderJointData.ElementSize);
            SliderJointData *dj   = (SliderJointData *)fake.ip;

            dj->enableCollision    = obj.enableCollision;
            dj->breakForce         = obj.breakForce;
            dj->breakTorque        = obj.breakTorque;
            dj->anchor             = obj.anchor;
            dj->connectedAnchor    = obj.connectedAnchor;
            dj->autoConfigure      = obj.autoConfigureConnectedAnchor;
            dj->autoConfigureAngle = obj.autoConfigureAngle;
            dj->angle     = obj.angle;
            dj->useMotor  = obj.useMotor;
            dj->useLimits = obj.useLimits;
            dj->motor     = obj.motor;
            dj->limits    = obj.limits;
            return(fake);
        }
Ejemplo n.º 25
0
        public static unsafe FakeStruct LoadFromObject(Component com, DataBuffer buffer)
        {
            var img = com as RawImage;

            if (img == null)
            {
                return(null);
            }
            FakeStruct    fake = new FakeStruct(buffer, RawImageData.ElementSize);
            RawImageData *data = (RawImageData *)fake.ip;

            data->uvRect = img.uvRect;
            data->color  = img.color;
            if (img.texture != null)
            {
                var tn = img.texture.name;
                var an = ElementAsset.TxtureFormAsset(img.texture.name);
                data->assetName   = buffer.AddData(an);
                data->textureName = buffer.AddData(tn);
            }
            if (img.material != null)
            {
                data->shader = buffer.AddData(img.material.shader.name);
            }
            return(fake);
        }
Ejemplo n.º 26
0
        public static unsafe FakeStruct LoadFromObject(Component com, DataBuffer buffer)
        {
            var ae = com.GetComponent <CompositeCollider2D>();

            if (ae == null)
            {
                return(null);
            }
            FakeStruct             fake = new FakeStruct(buffer, CompositeColliderData.ElementSize);
            CompositeColliderData *data = (CompositeColliderData *)fake.ip;

            if (ae.sharedMaterial != null)
            {
                data->sharedMaterial = buffer.AddData(ae.sharedMaterial.name);
            }
            data->offset          = ae.offset;
            data->usedByComposite = ae.usedByComposite;
            data->usedByEffector  = ae.usedByEffector;
            data->isTrigger       = ae.isTrigger;
            data->density         = ae.density;
            data->geometryType    = ae.geometryType;
            data->generationType  = ae.generationType;
            data->vertexDistance  = ae.vertexDistance;
            return(fake);
        }
Ejemplo n.º 27
0
        protected void LoadHImage(FakeStruct fake, HImage tar)
        {
            HImageData tmp = new HImageData();

            unsafe
            {
                HImageData *src = &tmp;
                ImageHelper.LoadData((byte *)src, fake.ip);
                Sprite = fake.buffer.GetData(src->Sprite) as string;
            }
            if (Sprite != null)
            {
                tar.Sprite = ElementAsset.FindSprite(asset, MainTexture, Sprite);
            }
            else
            {
                tar.Sprite = null;
                if (MainTexture != null)
                {
                    tar.MainTexture = ElementAsset.FindTexture(asset, MainTexture);
                }
            }
            tar.m_spriteType     = tmp.spriteType;
            tar.m_fillAmount     = tmp.fillAmount;
            tar.m_fillCenter     = tmp.fillCenter;
            tar.m_fillClockwise  = tmp.fillClockwise;
            tar.m_fillMethod     = tmp.fillMethod;
            tar.m_fillOrigin     = tmp.fillOrigin;
            tar.m_pixelsPerUnit  = tmp.pixelsPerUnit;
            tar.m_preserveAspect = tmp.preserveAspect;
        }
Ejemplo n.º 28
0
        /// <summary>
        /// 将假结构体中的数据载入到组件实体中
        /// </summary>
        /// <param name="fake">假结构体数据</param>
        /// <param name="com">unity组件</param>
        /// <param name="initializer">初始化器,用于反射</param>
        public unsafe override void LoadToObject(FakeStruct fake, Component com, Initializer initializer)
        {
            //TransfromData src = new TransfromData();
            //unsafe { transHelper.LoadData((byte*)&src,fake.ip); }
            var src   = (TransfromData *)fake.ip;
            var buff  = fake.buffer;
            var trans = com as Transform;

            com.name = buff.GetData(src->name) as string;
            com.tag  = buff.GetData(src->tag) as string;
            trans.localEulerAngles = src->localEulerAngles;
            trans.localPosition    = src->localPosition;
            trans.localScale       = src->localScale;
            trans.gameObject.layer = src->layer;

            Int16[] chi = fake.buffer.GetData(src->child) as Int16[];
            if (chi != null)
            {
                for (int i = 0; i < chi.Length; i++)
                {
                    var fs = buff.GetData(chi[i]) as FakeStruct;
                    if (fs != null)
                    {
                        var go = gameobjectBuffer.CreateNew(fs.GetInt64(0));
                        if (go != null)
                        {
                            go.transform.SetParent(trans);
                            this.LoadToObject(fs, go.transform, initializer);
                        }
                    }
                }
            }

            Int16[] coms = buff.GetData(src->coms) as Int16[];
            if (coms != null)
            {
                for (int i = 0; i < coms.Length; i++)
                {
                    int index = coms[i];
                    i++;
                    int type = coms[i];
                    var fs   = buff.GetData(index) as FakeStruct;
                    if (fs != null)
                    {
                        var loader = gameobjectBuffer.GetDataLoader(type);
                        if (loader != null)
                        {
                            loader.initializer = initializer;
                            loader.LoadToComponent(fs, com, fake);
                        }
                    }
                }
            }

            if (initializer != null)
            {
                initializer.Initialiezd(fake, trans);
                initializer.AddContext(trans, src->insID);
            }
        }
Ejemplo n.º 29
0
        void StartCountdown()
        {
            Countdown--;
            if (Countdown <= 0)
            {
                RoomState = State_HairCards;
                Countdown = 10;
                landlord.ReStart();
                for (int i = 0; i < 3; i++)
                {
                    var cards = landlord.GamerCards[i];
                    gamers[i].Cards = new List <int>(cards);
                    var linker = gamers[i].linker;
                    if (linker != null)
                    {
                        DataBuffer db   = new DataBuffer();
                        var        fake = new FakeStruct(db, Req.Length);
                        fake[Req.Cmd]  = RpcCmd.HairCards;
                        fake[Req.Type] = MessageType.Rpc;
                        fake.SetData(Req.Args, cards);
                        db.fakeStruct = fake;

                        //linker.Send(AES.Instance.Encrypt(db.ToBytes()), EnvelopeType.AesDataBuffer);
                    }
                }
            }
            else
            {
                BroadcastCountdown();
            }
        }
Ejemplo n.º 30
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="uiRoot"></param>
        /// <returns></returns>
        public static DataBuffer GetPrefab(Transform uiRoot)
        {
            var ui = uiRoot.GetComponent <Helper.HGUI.UIContext>();

            if (ui != null)
            {
                DataBuffer db     = new DataBuffer(1024);
                string     tn     = ui.GetType().Name;
                var        loader = GameBuffer.FindDataLoader(tn);
                var        root   = loader.SaveUI(ui, db);
                FakeStruct fake   = new FakeStruct(db, 3);
                fake[0] = db.AddData(root);
                var     list = AddDataTable(db);
                int     c    = list.Count;
                Int16[] arr  = new Int16[c];
                for (int i = 0; i < arr.Length; i++)
                {
                    arr[i] = (Int16)db.AddData(list[i]);
                }
                fake[1]       = db.AddData(arr);
                fake[2]       = db.AddData(Version);
                db.fakeStruct = fake;
                return(db);
            }
            return(null);
        }