我正在使用 Unity 和 C#。
在我的游戏中,敌人被反复实例化并以线性路径向玩家移动。我想让敌人在经过特定时间后以正弦波移动,以使游戏更加艰难。
运动会立即发生变化,但我希望这种变化从新(下一个)敌人的实例化而不是当前存在的敌人的实例化生效。
我能做什么?
EnemySpawner 脚本 -
private void Start()
{
timeelapsed = 0f;
StartCoroutine(SpawnEnemies(delay));
}
private void Update()
{
timeelapsed += Time.deltaTime;
}
private IEnumerator SpawnEnemies(float delay)
{
while (true)
{
SpawnNewEnemy();
yield return new WaitForSeconds(delay);
}
}
private void SpawnNewEnemy()
{
if (!enemyclone)
{
enemyclone = Instantiate(enemy, enemySpawner.transform.position + offset, Quaternion.identity);
}
}
Enemy Movement 脚本:
private void Update()
{
t = Time.time;
if (EnemySpawner.timeelapsed > 0f && EnemySpawner.timeelapsed <= 20f)
{
enemy.transform.Translate(Vector3.forward * speed * Time.deltaTime);
}
if (EnemySpawner.timeelapsed > 20f && EnemySpawner.timeelapsed <= 40f)
{
enemy.GetComponent<Rigidbody>().velocity = Vector3.forward * 5 + Vector3.left * 3 * Mathf.Sin(10f * t);
}
}
富国沪深
慕村9548890
相关分类