我已经搞砸了一段时间,似乎无法找到如何做到这一点。 问题是,当我启动一个MotionControl时,它总是会在第一个航点处产生空间并从那里移动。 但是,我真的需要让空间和动作从用户定义的航点开始(例如:航路点10)并从那里开始。
你可以帮忙吗?由于
答案 0 :(得分:0)
我在MotionEvent
中找到的实际更改音轨位置的唯一方法是setTime(float)
。
Sane值介于0.0f
(0%)和initialDuration
(100%)之间。
每次向MotionPath
添加航点时,它都会更新基础Spline
,其总长度和每个航段的长度。
使用此信息,您可以计算航路点的相应“时间标记”:
public float calcWaypointTime(MotionPath path, MotionEvent motionEvent, int waypointIndex) {
// Distance between start and waypoint
float wpDistance = 0;
// Sum up segment lengths until waypoint is reached
List<Float> segLen = path.getSpline().getSegmentsLength();
for(int i=0; i<segLen.size() && i<waypointIndex; ++i)
wpDistance += segLen.get(i);
// Transform distance to time
return (wpDistance / path.getSpline().getTotalLength()) * motionEvent.getInitialDuration();
}