unity 触发器监测多个敌人
时间: 2023-05-28 22:07:01 浏览: 128
在Unity中,可以使用触发器来监测多个敌人。首先,需要创建一个触发器对象,可以使用Unity中的Collider组件,将其设置为触发器模式。
然后,在触发器的脚本中,可以使用OnTriggerEnter方法来检测进入触发器的对象。可以使用一个List来存储所有敌人的引用,当敌人进入触发器时,将其添加到List中。
代码示例:
```csharp
public class TriggerScript : MonoBehaviour
{
public List<EnemyScript> enemies = new List<EnemyScript>();
private void OnTriggerEnter(Collider other)
{
EnemyScript enemy = other.GetComponent<EnemyScript>();
if (enemy != null && !enemies.Contains(enemy))
{
enemies.Add(enemy);
}
}
private void OnTriggerExit(Collider other)
{
EnemyScript enemy = other.GetComponent<EnemyScript>();
if (enemy != null && enemies.Contains(enemy))
{
enemies.Remove(enemy);
}
}
}
```
在上面的代码中,当敌人进入触发器时,将其添加到enemies列表中。当敌人离开触发器时,将其从列表中删除。
可以通过遍历enemies列表来对所有敌人进行操作。例如,可以在Update方法中对所有敌人进行跟踪、攻击等操作。
代码示例:
```csharp
public class PlayerScript : MonoBehaviour
{
public TriggerScript trigger;
private void Update()
{
foreach (EnemyScript enemy in trigger.enemies)
{
// do something with the enemy
enemy.TrackPlayer(transform.position);
enemy.Attack();
}
}
}
```
在上面的代码中,PlayerScript脚本获取了TriggerScript对象的引用,并在Update方法中遍历了其中的enemies列表,对所有敌人进行了跟踪和攻击操作。
阅读全文