如何用代码进行贝塞尔运动,求简洁例子

原因:由于动效的引导线只能使组件移动到固定的目的坐标,现在目的坐标不是固定的,所以想用代码写
 
看别的帖子里有说到可以用Tweener.SetPath,但是找不到一个很简洁明了的代码例子,basics里的看不太懂
预期:图片n通过贝塞尔曲线运动到点(240,140,0),如图所示
下面是我自己试验的untiy c#代码:

GLoader n = panelCom.GetChild("n6").asLoader;
GPath path = new GPath();
path.Create(new GPathPoint[] {
new GPathPoint(new Vector3(450, 400, 0), new Vector3(200, 400, 0), new Vector3(700, 400, 0)),
});

GTweener tweener = GTween.To(n.position, new Vector3(240, 140, 0), 4f).SetTarget(n, TweenPropType.XY).SetPath(path);
我的理解是GPathPoint中点1对应(450, 400, 0), 点2(控制点)对应(200, 400, 0),点3(控制点)对应(700, 400, 0),都是在容器中的坐标
 
但是实际图片不会做曲线运动,而是直接就到角落了
请问具体用setpath要怎么做自己想要的贝塞尔曲线运动呢,setpath里具体要传入哪些参数才对


 
疑问.png
已邀请:

NLB

赞同来自: ghgh2468

研究了一下曲线运动相关的使用方法,如图所示可以画出想要的曲线了,分享一下方法

sd1840888

赞同来自:

最简单的方法就是通过贝塞尔曲线函数生成路径点集,路点越多就越接近弧线,路点少就变成折线了

谷主

赞同来自:

要带上起点和终点。其实unity第一个demo就演示了怎样使用曲线,你查一下代码。

要回复问题请先登录注册