Exemple #1
0
    Vector2 GetNearestItemCenter()
    {
        // 计算最近的 item 的 rect
        var lockPoint = GetScrollRectCenter();

        var     itemList          = sampleizeScrollRect.ItemList;
        var     shotestDistance   = float.MaxValue;
        Vector2 nearestItemCenter = Vector2.zero;
        var     nearestItemIndex  = -1;

        for (var i = 0; i < itemList.Count; i++)
        {
            var item       = itemList[i];
            var rect       = RectTransformUtil.GetWorldRect(item.GetComponent <RectTransform>());
            var center     = rect.center;
            var distanceP2 = MathUtil.PointDistancePower2(lockPoint, center);
            if (distanceP2 < shotestDistance)
            {
                shotestDistance   = distanceP2;
                nearestItemCenter = center;
                nearestItemIndex  = i;
            }
        }
        Debug.Log(nearestItemIndex);
        return(nearestItemCenter);
    }
    public override void Play(Page oldPage, Page newPage)
    {
        oldPage.Active = true;
        newPage.Active = true;
        // var canvas = UIEngine.Canvas.GetComponent<RectTransform>();
        // var canvasWidth = canvas.rect.width * canvas.localScale.x;
        // var canvasHeight = canvas.rect.height * canvas.localScale.y;
        var canvasRect = RectTransformUtil.GetWorldRect(UIEngine.Canvas.GetComponent <RectTransform>());
        // newPage.rectTransform.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Left, rect.xMin, rect.size.x);
        // newPage.rectTransform.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Bottom, rect.yMin,rect.size.y);
        // var targetPosition = newPage.transform.position;
        //var targetPosition = new Vector2(canvasWidth/2, canvasHeight/2);
        var targetPosition = canvasRect.center;

        Debug.Log(targetPosition);
        var fromPosition = this.rect.center;

        newPage.transform.position = fromPosition;
        newPage.rectTransform.DOMove(targetPosition, DURATION);


        var fromScaleX = 0; //this.rect.width / canvasWidth;
        var fromScaleY = 0; //this.rect.height / canvasHeight;

        newPage.rectTransform.localScale = new Vector2(fromScaleX, fromScaleY);
        newPage.rectTransform.DOScale(Vector2.one, DURATION);
        var cg = TryGetComponent <CanvasGroup>(newPage.gameObject);

        cg.alpha = DURATION;
        cg.DOFade(1, DURATION).OnComplete(() => {
            this.finished  = true;
            oldPage.Active = false;
        });
    }
        private void Update()
        {
            if (!(Viewport != null))
            {
                return;
            }
            viewportRect = RectTransformUtil.GetCanvasRect(Viewport, canvas);
            rectCorners  = RectTransformUtil.GetCanvasCorners(rectTransform, canvas);
            bool flag = CheckMinAndMax;

            for (int i = 0; i < rectCorners.Length; i++)
            {
                if (CheckMinAndMax)
                {
                    if (!isPointContained(viewportRect, rectCorners[i]))
                    {
                        flag = false;
                        break;
                    }
                }
                else if (isPointContained(viewportRect, rectCorners[i]))
                {
                    flag = true;
                    break;
                }
            }
            if (flag != IsVisible)
            {
                IsVisible = flag;
            }
        }
Exemple #4
0
    public Vector2 GetScrollRectCenter()
    {
        var scrollRectTransform = sampleizeScrollRect.GetComponent <RectTransform>();
        var scrollRectWorldRect = RectTransformUtil.GetWorldRect(scrollRectTransform);
        var scrollRectCenter    = scrollRectWorldRect.center;
        var lockPoint           = scrollRectCenter;

        return(lockPoint);
    }
Exemple #5
0
    Vector2 GetCenterOfItem(int index)
    {
        var itemList = sampleizeScrollRect.ItemList;
        var item     = itemList[index];
        var rect     = RectTransformUtil.GetWorldRect(item.GetComponent <RectTransform>());
        var center   = rect.center;

        return(center);
    }
Exemple #6
0
    private void SetRectTransformVerticalListHeight(RectTransform rectTrans, int lenght, float itemHeight, RectTransform minHeight)
    {
        float newHeight    = (itemHeight * lenght);
        float parentHeight = RectTransformUtil.GetHeight(minHeight);

        if (parentHeight > newHeight)
        {
            newHeight = parentHeight;
        }
        RectTransformUtil.SetHeight(rectTrans, newHeight);
    }
Exemple #7
0
    public void OnItemClick(MainPage_Item item)
    {
        AudioManager.PlaySe("button");

        var param = new PicturePageParam();

        param.pageType = item.data.pageType;
        if (item.data.pageType == PicturePageType.Pictype)
        {
            param.picTypeId = item.data.row.Get <string>("id");
        }

        var rt   = item.GetComponent <RectTransform>();
        var rect = RectTransformUtil.GetWorldRect(rt);

        var admission = new Admission_ScaleUpNewPage(rect);

        UIEngine.Forward <PicturePage>(param, admission);

        HeadBarFloating.admission = new Admission_ScaleDownOldPage(rect);

        RadioStation.Brodcast("SELECT_PIC_TYPE");
    }
Exemple #8
0
    public void Update()
    {
        // tween center at frame 2
        lostTime += Time.deltaTime;

        if (lostTime >= 0.3f)
        {
            if (first)
            {
                if (!GuideFloating.guideMode)
                {
                    var b = HasUncompleteGame(PicId);
                    if (b)
                    {
                        var info      = PlayerStatus.TryGetUncompleteOfPicId(PicId);
                        var sliceId   = info.sliceId;
                        var itemIndex = sliceId - 1;
                        TweenItemToCenter(itemIndex);
                    }
                    else
                    {
                        TweenNearestToCenter();
                    }
                }
                else
                {
                    TweenItemToCenter(0);
                }

                first = false;
            }
        }



        // 计算离中心点最近的 item
        var itemList            = sampleizeScrollRect.ItemList;
        var scrollRectTransform = sampleizeScrollRect.GetComponent <RectTransform>();
        var scrollRectWorldRect = RectTransformUtil.GetWorldRect(scrollRectTransform);
        var scrollRectCenter    = scrollRectWorldRect.center;
        var lockPoint           = scrollRectCenter;

        var     shotestDistance   = float.MaxValue;
        Vector2 nearestItemCenter = Vector2.zero;
        var     nearestItemIndex  = -1;

        for (var i = 0; i < itemList.Count; i++)
        {
            var item       = itemList[i];
            var rect       = RectTransformUtil.GetWorldRect(item.GetComponent <RectTransform>());
            var center     = rect.center;
            var distanceP2 = MathUtil.PointDistancePower2(lockPoint, center);
            if (distanceP2 < shotestDistance)
            {
                shotestDistance   = distanceP2;
                nearestItemCenter = center;
                nearestItemIndex  = i;
            }
        }

        // 选中这个 item
        for (var i = 0; i < itemList.Count; i++)
        {
            var item     = itemList[i];
            var itemComp = item.GetComponent <LevelSettingsPage_Item>();
            if (i == nearestItemIndex)
            {
                itemComp.SetBig();
                selectItem = itemComp;
            }
            else
            {
                itemComp.SetSmall();
            }
        }
    }
Exemple #9
0
 public Rect WorldRect()
 {
     return(RectTransformUtil.GetWorldRect(this.GetComponent <RectTransform>()));
 }