Unity DOTween 物体移动到指定位置动图
物体运动的位移(Transform.Position方面的拓展)
目录
物体运动的位移(Transform.Position方面的拓展)
在世界坐标系下改变(相当于改变transform.position)
第三个参数默认为 false 情况 (true情况同DOMove)
在局部坐标系下改变(相当于改变transform.localPosition)
2. DOLocalMoveX/DOLocalMoveY/DOLocalMoveZ
在世界坐标系下改变(相当于改变transform.position)
1. DOMove
- 移动物体沿直线运动到指定位置。
DOMove( Vector3 endValue, float duration, bool snapping = false);
endValue:需要物体移动到的终点位置。
duration:物体动画的运动时间。
snapping:如果设置为 true 那么移动过程不是平滑移动,而是按照整数取值进行移动。
第三个参数默认为 false 情况
-
[]
-
[]
-
private Transform point1;
-
[]
-
[]
-
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
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfhckhk
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01