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区间的任何数据,都会看向路径移动。
不知是不是还有别的关联?

猜你喜欢

转载自blog.csdn.net/qq_33789001/article/details/114632958