Esempio n. 1
0
    public void AddItemInBagUI(GameObject item)
    {
        ItemElement itemscript = item.GetComponent <ItemElement>();

        if (itemscript != null)
        {
            Destroy(itemscript);
        }

        int childcount = BagUI.childCount;

        item.transform.SetParent(BagUI);
        RectTransform trans = item.transform as RectTransform;
        float         ratio = 120 / trans.rect.width;

        trans.sizeDelta = new Vector2(trans.rect.size.x * ratio, trans.rect.size.y * ratio);

        MoveToCenter moveeffect = item.AddComponent <MoveToCenter>();

        moveeffect.SetLocalPos(GetBagPos(childcount));
        moveeffect.SetSpeed(3f);
        moveeffect.SetCallback(() =>
        {
            trans.localPosition = GetBagPos(childcount);
            item.AddComponent <ItemDragEffect>();
        });
    }
    void AddretrunEffect()
    {
        MoveToCenter moveeffect = GetMoveToCenter();

        moveeffect.SetLocalPos(returnPosition);
        moveeffect.SetSpeed(3f);
    }
    void AddPointMoveCenterEffect(Vector2 centerpos)
    {
        MoveToCenter moveeffect = GetMoveToCenter();

        moveeffect.SetSpeed(6.0f);
        moveeffect.SetLocalPos(centerpos);
    }
    void AddMoveCenterEffect()
    {
        MoveToCenter moveeffect = GetMoveToCenter(dragObject.gameObject);

        moveeffect.SetSpeed(6.0f);
        moveeffect.SetLocalPos(originalLocalPointerPosition);
        originalPanelLocalPosition = originalLocalPointerPosition;
    }
    void RemoveMoveCenterEffect()
    {
        MoveToCenter movescript = GetComponent <MoveToCenter>();

        if (movescript != null)
        {
            Destroy(movescript);
        }
    }
Esempio n. 6
0
 void Start()
 {
     ballData         = GetComponent <BallData>();
     mover            = GetComponent <MoveToCenter>();
     center           = GameObject.FindGameObjectWithTag("Player");
     cCollider        = GetComponent <CircleCollider2D>();
     diagonalDistance = 1.2f;
     straightDistance = 1.2f;
 }
    MoveToCenter GetMoveToCenter(GameObject dropObject)
    {
        MoveToCenter moveeffect = dropObject.gameObject.GetComponent <MoveToCenter>();

        if (moveeffect == null)
        {
            moveeffect = dropObject.gameObject.AddComponent <MoveToCenter>();
        }
        return(moveeffect);
    }
    void MoveToCenter(PointerEventData data)
    {
        GameObject dropObject = GetDropObject(data);

        if (dropObject == null)
        {
            return;
        }
        //如果正在播放动画则不响应点击
        if (!GetLevelManager().isCommonState())
        {
            return;
        }

        ArrayList stateList = GetStateDo(GetLevelManager().GetNowState());
        ArrayList donelist  = new ArrayList();

        //遍历执行所有符合条件的动作
        foreach (StateDo _do in stateList)
        {
            //跳过已经执行过的物体
            if (donelist.Contains(_do.DragName))
            {
                break;
            }
            donelist.Add(_do.DragName);

            if (_do.DragName.CompareTo(dropObject.name) == 0)
            {
                if (ishideitem)
                {
                    dropObject.GetComponent <Image>().color = Color.clear;
                }

                float maxTime = -1;
                animation_index = 0;
                //执行这个State下的多个动作
                maxTime = CheckAnimationList(_do);

                data.pointerDrag = null;
                dropObject.GetComponent <CanvasGroup>().blocksRaycasts = false;
                MoveToCenter effect = GetMoveToCenter(dropObject);
                effect.SetPos(Area.position);
                WaitForCheckAction(maxTime, _do);
            }
        }
    }
Esempio n. 9
0
    void MoveToCenter(PointerEventData data)
    {
        GameObject dropObject = GetDropObject(data);

        if (dropObject == null)
        {
            return;
        }

        ArrayList stateList = GetStateDo(GetLevelManager().GetNowState());
        ArrayList donelist  = new ArrayList();

        //遍历执行所有符合条件的动作
        foreach (StateDo _do in stateList)
        {
            //跳过已经执行过的物体
            if (donelist.Contains(_do.DragName))
            {
                break;
            }
            donelist.Add(_do.DragName);

            if (_do.DragName.CompareTo(dropObject.name) == 0)
            {
                float maxTime = -1;
                //执行这个State下的多个动作
                foreach (AnimationClip action in _do.ActionList)
                {
                    if (action != null)
                    {
                        maxTime = Mathf.Max(maxTime, action.length);
                    }
                    PlayAnimation(action);
                }
                data.pointerDrag = null;
                dropObject.GetComponent <CanvasGroup>().blocksRaycasts = false;
                MoveToCenter effect = GetMoveToCenter(dropObject);
                effect.SetPos(Area.position);
                WaitForCheckAction(maxTime, _do);
            }
        }
    }
 protected override void OnBulletSpawn()
 {
     MoveToCenter.ReinitializeMove(transform.position, SpaceUtil.WorldMap.Center);
 }