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); } }
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); } } }
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); }