Qiita · Unity 开发社区· 来源· renren1027·· 1 小时前AI 评分1
Unity 中使用 UniTask 实现物体往复移动的方法
[Unity] 物体を往復させたい時用の簡単な方法
正文 · AI 翻译
转到点赞用户列表
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
注册为新用户,更便捷地使用 Qiita
- 获取符合您需求的文章
- 您可以高效地回顾有用的信息
- 您可以使用深色主题
前往查看点赞用户的列表
0
删除文章
已删除的文章无法恢复。
该文章的草稿也将被删除。
您确定要删除此文章吗?
来源:Qiita · Unity 开发社区 · qiita.com