Unity DOTween 物体移动到指定位置(动图解析) |
您所在的位置:网站首页 › 年轻人有肺部结节正常吗女性 › Unity DOTween 物体移动到指定位置(动图解析) |
物体运动的位移(Transform.Position方面的拓展)
目录 物体运动的位移(Transform.Position方面的拓展) 在世界坐标系下改变(相当于改变transform.position) 1. DOMove 第三个参数默认为 false 情况 第三个参数为 true 的情况 2. DOMoveX/DOMoveY/DOMoveZ 第三个参数默认为 false 情况 (true情况同DOMove) 3. DOBlendableMoveBy 4. DOJump 5. DOPunchPosition elasticity的值等于 0 时 elasticity的值等于 1 时 6. DOShakePosition fadeOut为True fadeOut为False 在局部坐标系下改变(相当于改变transform.localPosition) 1. DOLocalMove 2. DOLocalMoveX/DOLocalMoveY/DOLocalMoveZ 3. DOBlendableLocalMoveBy 4. DOLocalJump 在世界坐标系下改变(相当于改变transform.position) 1. DOMove 移动物体沿直线运动到指定位置。DOMove( Vector3 endValue, float duration, bool snapping = false); endValue:需要物体移动到的终点位置。 duration:物体动画的运动时间。 snapping:如果设置为 true 那么移动过程不是平滑移动,而是按照整数取值进行移动。 第三个参数默认为 false 情况 [Header("点位1")] [SerializeField] private Transform point1; [Header("点位2")] [SerializeField] private Transform point2; // Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.F)) { transform.DOMove(point2.position, 2f); } if (Input.GetKeyDown(KeyCode.D)) { transform.DOMove(point1.position, 2f); } }第三个参数为 true 的情况 void Update() { if (Input.GetKeyDown(KeyCode.F)) { transform.DOMove(point2.position, 2f, true); } if (Input.GetKeyDown(KeyCode.D)) { transform.DOMove(point1.position, 2f); } } 注意看 Position 的变化 2. DOMoveX/DOMoveY/DOMoveZ 移动物体沿着X/Y/Z方向运动到指定位置。以 DOMoveX 为例子。 DOMoveX(float endValue, float duration, bool snapping = false); endValue:需要物体改变的X轴的终点位置(Y坐标和Z坐标保持不变)。 duration:物体动画的运动时间。 snapping:如果设置为 true 那么移动过程不是平滑移动,而是按照整数取值进行移动。 第三个参数默认为 false 情况 (true情况同DOMove) private void Update() { if (Input.GetKeyDown(KeyCode.F)) { transform.DOMoveX(5f, 2f); } if (Input.GetKeyDown(KeyCode.D)) { transform.DOMoveX(-7f, 2f); } }DOMoveY/DOMoveZ :分别对物体的Y轴和Z轴进行运动 3. DOBlendableMoveBy 物体沿直线运动到指定位置物体移动的终点 = 物体起始位置 + byValue 的值。多个DOBlendaleMoveBy可以协同运行(本例子中两个此方法协同运行)DOBlendableMoveBy(Vector3 byValue, float duration, bool snapping = false); byValue:物体位置的增量 duration:物体动画的运动时间 snapping:如果设置为 true 那么移动过程不是平滑移动,而是按照整数取值进行移动。 private void Update() { if (Input.GetKeyDown(KeyCode.F)) { text1.text = "点击F"; transform.DOBlendableMoveBy(new Vector3(2, 0, 0), 1f); transform.DOBlendableMoveBy(new Vector3(0, 0, 4), 1f); } if (Input.GetKeyDown(KeyCode.D)) { text1.text = "点击D"; transform.DOBlendableMoveBy(new Vector3(-2, 0, 0), 1f); transform.DOBlendableMoveBy(new Vector3(0, 4, 0), 1f); } } 4. DOJump 向终点位置进行跳跃(方向为起点位置到endValue的矢量)DOJump(Vector3 endValue, float jumpPower, int numJumps, float duration, bool snapping = false) endValue:跳跃终点位置。 jumpPower:跳跃的强度。 numJumps:跳跃的次数。 duration:跳跃的持续时间 snapping:如果设置为 true 那么移动过程不是平滑移动,而是按照整数取值进行移动。 private void Update() { if (Input.GetKeyDown(KeyCode.F)) { text1.text = "点击F"; transform.DOJump(new Vector3(2, 1, 1), 3, 3, 2); } } 5. DOPunchPosition 物体向终点多次往返运动物体振动终点 = 物体起始位置 + pubch 的值。DOPunchPosition(Vector3 punch, float duration, int vibrato = 10, float elasticity = 1, bool snapping = false); punch:物体运动的增量。 duration:物体运动时间。 vibrato:物体振动幅度 elasticity:等于 0 时,在起点和终点间往返运动 等于 1 时 ,在终点和起点到终点的反方向的一段距离间运动,最终停止在起点。 snapping:如果设置为 true 那么移动过程不是平滑移动,而是按照整数取值进行移动。 private void Update() { if (Input.GetKeyDown(KeyCode.F)) { text1.text = "点击F"; transform.DOPunchPosition(new Vector3(6, 3, 3), 5, 2, 1); } } elasticity的值等于 0 时 elasticity的值等于 1 时 6. DOShakePosition 在范围内进行振动DOShakePosition(float duration, float strength = 1, int vibrato = 10, float randomness = 90, bool snapping = false, bool fadeOut = true); duration:物体运动时间。 strength:振动的强度。 vibrato:震动幅度。 randomness:振动的随机性(可输入0 - 180) 官方告示:大于90可能效果糟糕。 snapping:如果设置为 true 那么移动过程不是平滑移动,而是按照整数取值进行移动。 fadeOut:如果是真则会平稳的缓动退出。 fadeOut为True fadeOut为False 在局部坐标系下改变(相当于改变transform.localPosition)标号与上面的相对应 1. DOLocalMove 2. DOLocalMoveX/DOLocalMoveY/DOLocalMoveZ 3. DOBlendableLocalMoveBy 4. DOLocalJump |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |