Unity3d Dotween DOPath 设置了SetLookAt物体未看向路径的各种问题

存在问题

在这里插入图片描述

在物体延路径移动的过程中,物体会有一定的旋转或者翻转的情况,并不是我们想要的面朝路径的方向。网上查询的是,设置0时会看向路径,即使是我们SetLookAt(0)的情况下,还是有问题。经过一些测试发现了更多的问题和结论。

解决办法

这种问题应该是模型的前向不对引起的,这里提供三种解决方法。

一、外套节点修正

这个方式就是通过外面套一层节点,通过设置子节点的rotation来修正这种旋转问题。

二、设置forwardDirection

设置前的方向,通过设置SetLookAt的第二个参数forwardDirection 来实现,例如:

SetLookAt(0,Vector3.right)

三、改模型的前向坐标

这种方式应该得需要建模的人员帮忙,不帮的话找领导协调一下了。

深入分析

查看源码

查看插件的源码可以看到:

        public static TweenerCore<Vector3, Path, PathOptions> SetLookAt(this TweenerCore<Vector3, Path, PathOptions> t, Transform lookAtTransform, Vector3? forwardDirection = null, Vector3? up = null);
        public static TweenerCore<Vector3, Path, PathOptions> SetLookAt(this TweenerCore<Vector3, Path, PathOptions> t, Vector3 lookAtPosition, Vector3? forwardDirection = null, Vector3? up = null);
        public static TweenerCore<Vector3, Path, PathOptions> SetLookAt(this TweenerCore<Vector3, Path, PathOptions> t, float lookAhead, Vector3? forwardDirection = null, Vector3? up = null);

有以上三种重载。第一个参数有 Transform ,Vector3 和float ,三种类型,前两个好理解,就是看向一个对象和看向一个位置点。

最后一个的说明是:
lookAhead:
//要使用的前向百分比(0到1)

这个看向前方的百分比,其实就是看朝路径方向的百分比映射成0–1的区间。

小疑问

按上面的说明,应该是100%看向路径才是看向路径也就是说 SetLookAt(1)才是看向路径,难道网上的说法 SetLookAt(0)看向路径是错的?

测试SetLookAt( 0 – 1)

这里是通过一个方块和一个球,通过设置球的偏移给出对象的前方向。
在这里插入图片描述

### 不设置SetLookAt

if (Input.GetKeyUp(KeyCode.A)) {
            doObj.DOPath(wps, dura).SetEase(Ease.Linear);
        }

不会看向路径,方向也不会变

### SetLookAt(0)

 if (Input.GetKeyUp(KeyCode.A)) {
            doObj.DOPath(wps, dura).SetLookAt(0).SetEase(Ease.Linear);
        }

在这里插入图片描述

会看向路径移动

### SetLookAt(1)

 if (Input.GetKeyUp(KeyCode.A)) {
            doObj.DOPath(wps, dura).SetLookAt(1).SetEase(Ease.Linear);
        }

也会看向路径移动!
效果同“SetLookAt(0)”

### SetLookAt(0.5f)

 if (Input.GetKeyUp(KeyCode.A)) {
            doObj.DOPath(wps, dura).SetLookAt(0.5f).SetEase(Ease.Linear);
        }

也会看向路径移动!!!
效果同“SetLookAt(0)”

改成其他的参数也也会看向路径移动。

DOPath.SetLookAt结论

经过测试发现不过设置0--1区间的任何数据,都会看向路径移动。
不知是不是还有别的关联?

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十幺卜入

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值