听觉感知可以用一个球星区域来模拟。另一种方法是党声音被创建时,为它加上一个强度属性,随着传播距离的增加,声音强度会衰减,而每个AI角色也有自己的听觉阈值,如果声音小于这个阈值,AI角色就听不到这个声音。
这种具有特定生命周期的触发器,都可以从下面的TriggerlimitedLifetime类派生出来
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TriggerLimitedLifetime : Trigger {
//触发器的持续时间
protected int lifetime;
public override void Updateme()
{
//持续时间倒计时,如果剩余持续时间小于等于0,那么将它标记为需要移除;
if (--lifetime <= 0)
{
toBeRemoved = true;
}
}
// Use this for initialization
void Start () {
base.Start();
}
// Update is called once per frame
void Update () {
}
}
例如,当武器开火时,在开火的位置会创建一个SoundTrigger,它的半径可以设置为与武器的声音大小成正比。此时,在一定范围内,具有声音感知器的感知体就能够“听到”这个声音,并做出反应。
using Sys