public override void OnEndDrag(PointerEventData eventData)
    {
        if (routeToParent)
        {
            parentScrollRect?.OnEndDrag(eventData);
        }
        else
        {
            base.OnEndDrag(eventData);
        }

        routeToParent = false;
    }
Exemplo n.º 2
0
    public void ShowSide(bool move)
    {
        int index = 0;

        unLockData = HeroMgr.GetSingleton().Heros;

        if (move)
        {
            maxHeight = (unLockData.Length + 0.5f) * (glg.spacing.y + glg.cellSize.y);
            maxWidth  = (glg.spacing.x + glg.cellSize.x);
            Vector2 v = rect.sizeDelta;
            v.x            = maxWidth;
            v.y            = maxHeight;
            rect.sizeDelta = v;
        }
        for (int i = 0; i < unLockData.Length; ++i)
        {
            GameObject go;
            HeroData   data = unLockData[i];
            if (instantiate.ContainsKey(data))
            {
                go = instantiate[data];
            }
            else
            {
                go = Instantiate(headGo, LeftContent_obj.transform, false);
                instantiate.Add(data, go);
            }
            if (data.HeroId == heroData.HeroId)
            {
                index = i;
                sideselect_trf.SetParent(go.transform);
                sideselect_trf.localPosition = Vector3.zero;
                if (move)
                {
                    Vector2 v2 = sr.content.anchoredPosition;
                    v2.y = -maxHeight + index * glg.cellSize.y;
                    sr.content.anchoredPosition = v2;
                }
            }
            EventListener.Get(go).OnClick = e =>
            {
                if (isOnDrag)
                {
                    return;
                }
                Close();
                sideselect_trf.SetParent(e.transform);
                sideselect_trf.localPosition = Vector3.zero;
                Open(data.HeroId, showType, false);
            };
            EventListener.Get(go).BegineDragEvent = e =>
            {
                isOnDrag = true;
                sr.OnBeginDrag(e);
            };
            EventListener.Get(go).DragEvent = e =>
            {
                sr.OnDrag(e);
            };
            EventListener.Get(go).EndDragEvent = e =>
            {
                isOnDrag = false;
                sr.OnEndDrag(e);
            };

            HeroHeadView hhv = go.GetComponent <HeroHeadView>();
            hhv.Init();
            hhv.SetHeroInfo(data.HeroId, data.Rare, data.Star, data.Level);
        }
        //算法还没有
        Power_txt.text     = "583138";
        LeftLevel_txt.text = heroData.Level.ToString();
        int needExp = JsonMgr.GetSingleton().GetExpByID(Mathf.Max(1, heroData.Level)).NeedHero;

        Exp_slider.value = (heroData.Exp * 100 / needExp * 100) * 0.01f;
        Exp_txt.text     = heroData.Exp + "/" + needExp;
        if (showType == EHEROSHOWTYPE.Card)
        {
            ShowCard();
        }
        else if (showType == EHEROSHOWTYPE.Divination)
        {
            ShowDivination();
        }
        else if (showType == EHEROSHOWTYPE.Detail)
        {
            ShowDetail();
        }
    }
Exemplo n.º 3
0
 public void OnEndDrag(PointerEventData eventData)
 {
     MainScroll.OnEndDrag(eventData);
 }
Exemplo n.º 4
0
 public void OnPointerUp(PointerEventData eventData)
 {
     parent.OnEndDrag(eventData);
 }
Exemplo n.º 5
0
 public void OnEndDrag(PointerEventData e)
 {
     dragStat        = 0;
     scrRct.vertical = true;         // scrollRsctの再開
     transform.DoParentEventSystemHandler <IEndDragHandler>((parent) => { scrRct.OnEndDrag(e); });
 }
Exemplo n.º 6
0
    public void OnEndDrag(PointerEventData eventData)
    {
        if (passTouchToFallback)
        {
            fallbackTouchObject.OnEndDrag(eventData);
            return;
        }
        if (status != TableStatus.Touch)
        {
            return;
        }
        SetStatus(TableStatus.Fling);

        flingVelocityCalculate.addPoint(eventData.position, Time.deltaTime);
        Vector2 velocity = flingVelocityCalculate.computeCurrentVelocity();

        if (KSDebug.enableLog)
        {
            KSDebug.Log("fling velocity = " + velocity.ToString());
        }
        flingVelocityCalculate.Reset();

        float targetRadian;

        if (isGearScrollMode)
        {
            //齿轮滚动模式
            targetRadian = FliterRotationRadian(roundTableRotationRadian + GearFlingVelocity2RotationRadian(velocity));
        }
        else
        {
            //惯性滚动模式
            //松手后要滚动的距离
            float xf = velocity.x == 0 ? 1 : velocity.x / Mathf.Abs(velocity.x);
            float yf = velocity.y == 0 ? 1 : velocity.y / Mathf.Abs(velocity.y);
            float xs = xf * Mathf.Pow(velocity.x, 2) / (2 * flingResistance);
            float ys = yf * Mathf.Pow(velocity.y, 2) / (2 * flingResistance);
            targetRadian = roundTableRotationRadian + TouchDelat2RotationRadian(xs, ys);
            targetRadian = FliterRotationRadian(targetRadian);
        }

        //停靠到最进的一个弧度上
        float maxNearRandian;
        float minNearRandian;

        if (targetRadian >= 0)
        {
            minNearRandian = ((int)(targetRadian / eachRadian)) * eachRadian;
            maxNearRandian = minNearRandian + eachRadian;
        }
        else
        {
            maxNearRandian = ((int)(targetRadian / eachRadian)) * eachRadian;
            minNearRandian = maxNearRandian - eachRadian;
        }



        float toRandian;

        if (maxNearRandian >= maxRotationRadian)
        {//达到顺时针的边界
            toRandian = minNearRandian;
        }
        else if (minNearRandian <= minRotationRadian)
        {//达到逆时针边界
            toRandian = maxNearRandian;
        }
        else
        {
            toRandian = Mathf.Abs(targetRadian - maxNearRandian) > Mathf.Abs(minNearRandian - targetRadian) ? minNearRandian : maxNearRandian;
        }

        if (Mathf.Abs(toRandian - roundTableRotationRadian) < 0.01)
        {
            roundTableRotationRadian = toRandian;
            SetStatus(TableStatus.Idle);
        }
        else
        {
            //记录fling目标,在后续update中进行动画滚动
            flingToTargetRandian = toRandian;
        }
    }