【发布时间】:2019-05-01 13:16:51
【问题描述】:
我必须将对象从 -10 移动到 +10 x 位置。但是我想从零开始我的对象 x.point 移动,我怎样才能在中间位置开始我的 lerp?
Edit2:对象应该从 x = 0 位置开始,移动到 +10 x 位置,然后转到 -10 x 位置,然后再次 +10 x,-10 x 像一个循环。
Vector3 pos1, pos2, pos0, pos3;
void Start()
{
pos0 = transform.position;
pos1 = pos0 + new Vector3(10, 0, 0);
pos2 = pos0 - new Vector3(10, 0, 0);
pos3 = pos1;
}
float time = 0.5f;
void FixedUpdate()
{
time += Mathf.PingPong(Time.time * 0.5f, 1.0f);
transform.position = Vector3.Lerp(pos2, pos1, time);
}
【问题讨论】:
-
确保x开头为0?它的种类是因为你的东西是从它开始的地方开始的 -10 到 10 .. 你可能不想要 time.time 但 time.deltatime ..
-
transform.position.x 开始时为 0,但当我启动 Lerp(从 -10 到 +10)时,transform.position.x 变为 -10 并开始变为 +10。跨度>
-
那么只是 Lerp 从 0 到 10?当游戏对象为零时,为什么要尝试从 -10 开始 Lerp?只需将您的 Lerp 调用修改为从 0 到 10 并调整时间以获得您想要的。尝试以这种方式做这件事只是 hacky。
-
我说它要么像 Tolga 所建议的那样,要么你对 time.time * 0.5 pingponed 的想法,你没有得到你想的值..
-
@BugFinder 我调试了几个小时,但找不到合适的解决方案,只需要帮助解决问题,我没有从别人那里得到好处。