我需要一段在unity中使物体A沿x轴直线运动的c#代码,要求速度1.2mm/s,每走5cm都要等待5s再返回,并记录时间,到了8分钟停止
时间: 2024-01-07 08:05:18 浏览: 23
好的,以下是符合您要求的代码:
```csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MoveObject : MonoBehaviour
{
public float speed = 0.0012f; // 速度为1.2mm/s
public float waitTime = 5.0f; // 每走5cm等待5s
public float totalTime = 480.0f; // 总时间为8分钟
private float startTime;
private Vector3 startPos;
private bool isMoving = false;
void Start()
{
startTime = Time.time;
startPos = transform.position;
isMoving = true;
}
void Update()
{
if (isMoving)
{
float distCovered = (Time.time - startTime) * speed;
float fracJourney = distCovered / 0.05f; // 每走5cm
transform.position = Vector3.Lerp(startPos, startPos + Vector3.right * 0.05f, fracJourney);
if (fracJourney >= 1.0f)
{
isMoving = false;
StartCoroutine(WaitAndReturn());
}
}
}
IEnumerator WaitAndReturn()
{
yield return new WaitForSeconds(waitTime);
startTime = Time.time;
startPos = transform.position;
isMoving = true;
if (Time.time - startTime >= totalTime)
{
isMoving = false;
}
}
}
```
这段代码会让物体A沿着x轴直线运动,速度为1.2mm/s,每走5cm会等待5s再返回,总时间为8分钟。同时会记录运动的时间,并在到达总时间后停止运动。