跳到正文
Qiita · Unity 开发社区· 来源· renren1027·· 1 小时前AI 评分1

Unity 中使用 UniTask 实现物体往复移动的方法

[Unity] 物体を往復させたい時用の簡単な方法

正文 · AI 翻译

0

转到点赞用户列表

0

在 X (Twitter) 上分享

在 Facebook 上分享

添加到 Hatena Bookmark

删除文章

已删除的文章无法恢复。

本文草稿也将被删除。

您确定要删除这篇文章吗?

前提是已引入 UniTask。

[Header("片道の長さ")]
[Selializefield]private float _length = 3f;
[Header("速さ")]
[Selializefield]private float _speed = 2f;

private async UniTask PingPongMove()
{
    float time = 0;
    Vector3 firstDistance = transform.position;

    while(true)
    {
    time += _speed * Time.deltaTime;
    var offset = Mathf.PingPong(time, _length);
    var currentDistance = firstDistance.x + offset;
    transform.position = new(currentDistance, firstDistance.y, firstDistance.z);
    await UniTask.Yield(PlayerLoopTiming.Update, this.GetCancellationTokenOnDestroy());
    }  
}

想要让某物往返移动时可以使用的代码。
_speed中填入移动速度,_length中填入往返时单程的长度。
之后在任意位置调用PingPongMove.Forget();即可。

0

转到点赞该内容的用户列表

0

注册为新用户,更便捷地使用 Qiita

  1. 获取符合您需求的文章
  2. 您可以高效地回顾有用的信息
  3. 您可以使用深色主题

注册后您可以做什么

0

前往查看点赞用户的列表

0

删除文章

已删除的文章无法恢复。

该文章的草稿也将被删除。

您确定要删除此文章吗?

来源:Qiita · Unity 开发社区 · qiita.com