Beispiel #1
0
    void Start()
    {
        Application.targetFrameRate = 60;
        GRoot.inst.SetContentScaleFactor(1136, 640);
        Stage.inst.onKeyDown.Add(OnKeyDown);

        UIPackage.AddPackage("UI/Guide");

        _mainView = UIPackage.CreateObject("Guide", "Main").asCom;
        _mainView.fairyBatching = true;
        _mainView.SetSize(GRoot.inst.width, GRoot.inst.height);
        _mainView.AddRelation(GRoot.inst, RelationType.Size);
        GRoot.inst.AddChild(_mainView);

        _guideLayer = UIPackage.CreateObject("Guide", "GuideLayer").asCom;
        _guideLayer.SetSize(GRoot.inst.width, GRoot.inst.height);
        _guideLayer.AddRelation(GRoot.inst, RelationType.Size);

        GObject bagBtn = _mainView.GetChild("bagBtn");

        bagBtn.onClick.Add(() =>
        {
            _guideLayer.RemoveFromParent();
        });

        _mainView.GetChild("n2").onClick.Add(() => {
            Rect rect = bagBtn.LocalToGlobal(new Rect(0, 0, bagBtn.width, bagBtn.height));
            GRoot.inst.AddChild(_guideLayer);             //!!Before using GlobalToLocal, the object must be added first
            rect = bagBtn.TransformRect(new Rect(0, 0, bagBtn.width, bagBtn.height), _guideLayer);

            GObject window = _guideLayer.GetChild("window");
            window.size    = new Vector2((int)rect.size.x, (int)rect.size.y);
            window.TweenMove(new Vector2((int)rect.position.x, (int)rect.position.y), 0.5f);
        });
    }
Beispiel #2
0
    void Start()
    {
        Application.targetFrameRate = 60;
        Stage.inst.onKeyDown.Add(OnKeyDown);

        _mainView = this.GetComponent <UIPanel>().ui;

        _guideLayer = UIPackage.CreateObject("Guide", "GuideLayer").asCom;
        _guideLayer.SetSize(GRoot.inst.width, GRoot.inst.height);
        _guideLayer.AddRelation(GRoot.inst, RelationType.Size);

        GObject bagBtn = _mainView.GetChild("bagBtn");

        bagBtn.onClick.Add(() =>
        {
            _guideLayer.RemoveFromParent();
        });

        _mainView.GetChild("n2").onClick.Add(() =>
        {
            GRoot.inst.AddChild(_guideLayer);             //!!Before using GlobalToLocal, the object must be added first
            Rect rect = bagBtn.TransformRect(new Rect(0, 0, bagBtn.width, bagBtn.height), _guideLayer);

            GObject window = _guideLayer.GetChild("window");
            window.size    = new Vector2((int)rect.size.x, (int)rect.size.y);
            window.TweenMove(new Vector2((int)rect.position.x, (int)rect.position.y), 0.5f);
        });
    }
Beispiel #3
0
	//------------------------------
	private void PlayDragDrop()
	{
		GComponent obj = _demoObjects["Drag&Drop"];
		obj.GetChild("a").draggable = true;

		GButton b = obj.GetChild("b").asButton;
		b.draggable = true;
		b.onDragStart.Add((EventContext context) =>
		{
			//Cancel the original dragging, and start a new one with a agent.
			context.PreventDefault();

			DragDropManager.inst.StartDrag(b, b.icon, b.icon, (int)context.data);
		});

		GButton c = obj.GetChild("c").asButton;
		c.icon = null;
		c.onDrop.Add((EventContext context) =>
		{
			c.icon = (string)context.data;
		});

		GObject bounds = obj.GetChild("n7");
		Rect rect = bounds.TransformRect(new Rect(0, 0, bounds.width, bounds.height), GRoot.inst);

		//---!!Because at this time the container is on the right side of the stage and beginning to move to left(transition), so we need to caculate the final position
		rect.x -= obj.parent.x; 
		//----

		GButton d = obj.GetChild("d").asButton;
		d.draggable = true;
		d.dragBounds = rect;
	}
    public Rect getFirstBranch()
    {
        GObject firstItem = _branches.GetChildAt(0);
        Rect    rect      = firstItem.TransformRect(new Rect(0, 0, firstItem.width, firstItem.height), GRoot.inst);

        _branches.EnsureBoundsCorrect();

        Vector2 center   = _branches.LocalToGlobal(new Vector3(firstItem.position.x + firstItem.width / 2, firstItem.position.y + firstItem.height / 2, 0));
        Rect    trueRect = new Rect(center.x - rect.size.x / 2 - 4, center.y - rect.size.y / 2, rect.size.x + 4, rect.size.y + 4);

        //GuideManager.getInstance ()._guideLayer.setMark (GuideManager.getInstance ()._guideLayer.GlobalToLocal(center));
        return(trueRect);
    }
Beispiel #5
0
    public void showGuide(GObject target, string hint = "select one of branches", string arrowPos = "rt")
    {
        if (!init)
        {
            Init();
        }
        _guideLayer.setWindowUntouchable();
        GRoot.inst.AddChild(_guideLayer);         //!!Before using TransformRect(or GlobalToLocal), the object must be added first
        //Rect rect = target.TransformRect(new Rect(0, 0, target.width, target.height), _guideLayer);
        Rect rect = target.TransformRect(new Rect(0, 0, target.width, target.height), GRoot.inst);

        if (arrowPos == "rt")
        {
            _guideLayer.setStyleRt();
        }
        else
        {
            _guideLayer.setStyleLb();
        }

        _guideLayer.setWindow(rect);
        _guideLayer.setHint(hint);
    }
Beispiel #6
0
        public override object getAttr(string attrName)
        {
            if (gObject != null)
            {
                switch (attrName)
                {
                case "name":
                    return(string.IsNullOrEmpty(gObject.name) ? gameObject.name : gObject.name);

                case "type":
                    return(gObject.GetType().Name.Substring(1));

                case "visible":
                    return(gObject.onStage && gObject.visible);

                case "pos":
                {
                    float x = 0f, y = 0f;
                    float sizeX = 0f, sizeY = 0f;
                    //锚点左上角修正居中到Center,为了点击更加精确
                    if (gObject.pivotX == 0.5f && gObject.pivotY == 0.5f)
                    {
                        Rect rect = gObject.TransformRect(new Rect(0, 0, gObject.width, gObject.height), null);
                        sizeX = rect.width / (float)Screen.width;
                        sizeY = rect.height / (float)Screen.height;
                        //Debug.LogFormat(string.Format("<color=yellow>ancherPoint is not center,Need modeify sizeX:{0} sizeY:{1} gObject:{2}</color>", 0.5 * sizeX, 0.5 * sizeY, gObject.name));
                    }
                    Vector2 vec2 = gObject.LocalToGlobal(Vector2.zero);
                    x = vec2.x / (float)Screen.width + 0.5f * sizeX;
                    y = vec2.y / (float)Screen.height + 0.5f * sizeY;
                    return(new float[] { x, y });
                }

                case "size":
                {
                    //Debug.Log("gObject:" + gObject + " width:" + gObject.width + " height:"+gObject.height);
                    Rect rect = gObject.TransformRect(new Rect(0, 0, gObject.width, gObject.height), null);
                    //Debug.Log("rect:" + rect);
                    return(new float[] { rect.width / (float)Screen.width, rect.height / (float)Screen.height });
                }

                case "scale":
                    return(new List <float>()
                    {
                        1.0f, 1.0f
                    });

                case "anchorPoint":
                    return(new float[] { gObject.pivotX, gObject.pivotY });

                case "zOrders":
                    return(GameObjectzOrders());

                case "clickable":
                    return(gObject.touchable);

                case "text":
                    return(gObject.text);

                case "components":
                    return(components);

                case "texture":
                    return((gObject.displayObject != null && gObject.displayObject.graphics != null && gObject.displayObject.graphics.texture != null && gObject.displayObject.graphics.texture.nativeTexture != null) ? gObject.displayObject.graphics.texture.nativeTexture.name : null);

                case "tag":
                    return(GameObjectTag());

                case "layer":
                    return(GameObjectLayerName());

                case "_ilayer":
                    return(GameObjectLayer());

                case "_instanceId":
                    return(gameObject.GetInstanceID());

                default:
                    return(null);
                }
            }
            else
            {
                switch (attrName)
                {
                case "name":
                    return(gameObject.name);

                case "type":
                    return(displayObject != null?displayObject.GetType().Name : DefaultTypeName);

                case "visible":
                    return(displayObject != null ? (displayObject.stage != null && displayObject.visible) : true);

                case "pos":
                    return(new float[] { 0.0f, 0.0f });

                case "size":
                    return(new float[] { 0.0f, 0.0f });

                case "scale":
                    return(new List <float>()
                    {
                        1.0f, 1.0f
                    });

                case "anchorPoint":
                    return(new float[] { 0.0f, 0.0f });

                case "zOrders":
                    return(new Dictionary <string, object>()
                    {
                        { "local", 0 }, { "global", 0 }
                    });

                case "clickable":
                    return(false);

                case "components":
                    return(components);

                case "tag":
                    return(GameObjectTag());

                case "layer":
                    return(GameObjectLayerName());

                case "_ilayer":
                    return(GameObjectLayer());

                case "_instanceId":
                    return(gameObject.GetInstanceID());

                default:
                    return(null);
                }
            }
        }
Beispiel #7
0
        public override object getAttr(string attrName)
        {
            if (gObject != null)
            {
                switch (attrName)
                {
                case "name":
                    return(string.IsNullOrEmpty(gObject.name) ? gameObject.name : gObject.name);

                case "type":
                    return(gObject.GetType().Name.Substring(1));

                case "visible":
                    return(gObject.onStage && gObject.visible);

                case "pos":
                {
                    Vector2 vec2 = gObject.LocalToGlobal(Vector2.zero);
                    return(new float[] { vec2.x / (float)Screen.width, vec2.y / (float)Screen.height });
                }

                case "size":
                {
                    Rect rect = gObject.TransformRect(new Rect(0, 0, gObject.width, gObject.height), null);
                    return(new float[] { rect.width / (float)Screen.width, rect.height / (float)Screen.height });
                }

                case "scale":
                    return(new List <float>()
                    {
                        1.0f, 1.0f
                    });

                case "anchorPoint":
                    return(new float[] { gObject.pivotX, gObject.pivotY });

                case "zOrders":
                    return(GameObjectzOrders());

                case "clickable":
                    return(gObject.touchable);

                case "text":
                    return(gObject.text);

                case "components":
                    return(components);

                case "texture":
                    return((gObject.displayObject != null && gObject.displayObject.graphics != null && gObject.displayObject.graphics.texture != null && gObject.displayObject.graphics.texture.nativeTexture != null) ? gObject.displayObject.graphics.texture.nativeTexture.name : null);

                case "tag":
                    return(GameObjectTag());

                case "layer":
                    return(GameObjectLayerName());

                case "_ilayer":
                    return(GameObjectLayer());

                case "_instanceId":
                    return(gameObject.GetInstanceID());

                default:
                    return(null);
                }
            }
            else
            {
                switch (attrName)
                {
                case "name":
                    return(gameObject.name);

                case "type":
                    return(displayObject != null?displayObject.GetType().Name : DefaultTypeName);

                case "visible":
                    return(displayObject != null ? (displayObject.stage != null && displayObject.visible) : true);

                case "pos":
                    return(new float[] { 0.0f, 0.0f });

                case "size":
                    return(new float[] { 0.0f, 0.0f });

                case "scale":
                    return(new List <float>()
                    {
                        1.0f, 1.0f
                    });

                case "anchorPoint":
                    return(new float[] { 0.0f, 0.0f });

                case "zOrders":
                    return(new Dictionary <string, object>()
                    {
                        { "local", 0 }, { "global", 0 }
                    });

                case "clickable":
                    return(false);

                case "components":
                    return(components);

                case "tag":
                    return(GameObjectTag());

                case "layer":
                    return(GameObjectLayerName());

                case "_ilayer":
                    return(GameObjectLayer());

                case "_instanceId":
                    return(gameObject.GetInstanceID());

                default:
                    return(null);
                }
            }
        }