protected override Tween DOPlay() { if (null == m_Transform) { return(null); } // end if switch (m_MoveType) { case MoveTypeEnum.Move: return(m_Transform.DOLocalMove(m_toPosition, m_duration, m_isSnapping)); case MoveTypeEnum.MoveX: return(m_Transform.DOLocalMoveX(m_toMoveX, m_duration, m_isSnapping)); case MoveTypeEnum.MoveY: return(m_Transform.DOLocalMoveY(m_toMoveY, m_duration, m_isSnapping)); case MoveTypeEnum.MoveZ: return(m_Transform.DOLocalMoveZ(m_toMoveZ, m_duration, m_isSnapping)); default: return(null); } // end switch }
/// <summary> /// 匀速移动到指定节点位置 /// </summary> /// <param name="targetPos">Target position.</param> private void MoveToPosition(Vector3 targetPos) { exploreManager.GetComponent <ExploreManager>().ItemsAroundAutoIntoLifeWithBasePoint(targetPos); // Debug.Log (string.Format ("Player pos:[{0},{1}],target pos:[{2},{3}]", transform.position.x, transform.position.y,targetPos.x,targetPos.y)); Vector3 moveVector = transform.position - targetPos; moveTweener = transform.DOMove(targetPos, moveDuration).OnComplete(() => { // 动画结束时已经移动到指定节点位置,标记单步行动结束 inSingleMoving = false; SetSortingOrder(-(int)transform.position.y); // 将当前节点从路径点中删除 pathPosList.RemoveAt(0); // 移动到下一个节点位置 MoveToNextPosition(); }); // 设置匀速移动 moveTweener.SetEase(Ease.Linear); // 背景图片按照比例移动相应的位移 Transform background = Camera.main.transform.Find("Background"); Vector3 backgroundImageTargetPos = background.localPosition + new Vector3(moveVector.x * 0.3f, moveVector.y * 0.3f, 0); // Debug.LogFormat ("背景层移动目标位置[{0},{1}]", backgroundImageTargetPos.x, backgroundImageTargetPos.y); backgroundMoveTweener = background.DOLocalMove(backgroundImageTargetPos, moveDuration); backgroundMoveTweener.SetEase(Ease.Linear); }