unity如果敌人射线发现角色,则角色三秒内头顶有一个感叹号!的脚本
时间: 2024-03-23 13:42:14 浏览: 77
这个功能可以通过在角色头顶添加一个UI元素来实现。具体步骤如下:
1. 在角色头顶位置创建一个空GameObject,将其命名为"WarningIcon"。
2. 在"WarningIcon"对象下创建一个Image组件,用于显示感叹号图标。将图标图片设置为感叹号图标。
3. 创建一个名为"WarningController"的脚本,并将其挂载在角色对象上。在脚本中定义一个变量"warningIcon",并在Start函数中初始化该变量为"WarningIcon"对象。
4. 在敌人射线检测的代码中,如果检测到角色,就启动一个协程,在协程中调用"ShowWarningIcon"函数并传入参数3,表示显示3秒钟。
代码示例:
```
public class WarningController : MonoBehaviour
{
public GameObject warningIcon;
void Start()
{
warningIcon.SetActive(false);
}
public void ShowWarningIcon(float duration)
{
StartCoroutine(ShowIconCoroutine(duration));
}
IEnumerator ShowIconCoroutine(float duration)
{
warningIcon.SetActive(true);
yield return new WaitForSeconds(duration);
warningIcon.SetActive(false);
}
}
public class EnemyController : MonoBehaviour
{
public WarningController warningController;
void Update()
{
RaycastHit hit;
if (Physics.Raycast(transform.position, transform.forward, out hit))
{
if (hit.collider.CompareTag("Player"))
{
warningController.ShowWarningIcon(3f);
}
}
}
}
```
在上述代码中,"WarningController"脚本中的"ShowWarningIcon"函数用于显示警告图标,"EnemyController"脚本中的"Update"函数用于检测敌人射线是否发现角色。如果检测到角色,则调用"ShowWarningIcon"函数并传入参数3,表示显示3秒钟。
阅读全文