我想让enemy
每2秒移动到-2.4到2.4之间的一个随机X位置,但是他移动得很急,而且移动的距离很小。我怀疑问题出在speed * Time.deltaTime
上,但是我不知道如何修复它
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Random=UnityEngine.Random;
public class EnemyController : MonoBehaviour
{
public Transform enemy;
private float random;
[SerializeField] private float speed = 10f;
void Start()
{
StartCoroutine(MoveEnemy());
}
IEnumerator MoveEnemy()
{
while (!MainGame.lose)
{
yield return new WaitForSeconds(2);
random = Random.Range(-2.4f, 2.4f);
Debug.Log(random);
enemy.transform.position = Vector2.MoveTowards(enemy.position,
new Vector3(random, enemy.position.y),
speed * Time.deltaTime);
}
}
}
1条答案
按热度按时间lmvvr0a81#
你每两秒才移动一次敌人。对我来说,听起来你更想不断地移动敌人,但每两秒才选择一个新的目标位置,所以eidogg。
因此,在最多两秒内,你尝试以恒定的线性运动到达这个随机目标,如果你超过2秒或在此之前到达目标,你将选择一个新的随机目标位置