首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据特定视场检测播放器

根据特定视场检测播放器
EN

Stack Overflow用户
提问于 2019-04-24 16:06:56
回答 1查看 78关注 0票数 0

我正在研究基本的人工智能,希望我的人工智能能够通过特定的视野来检测玩家。它附加在AI和AI头上的脚本确实与它的动画师一起听到了。

我能够让AI在直接面对玩家的时候检测到玩家,但感觉不现实?

公共GameObject播放器;公共bool isFacingPlayer;

void Update(){

代码语言:javascript
运行
复制
    // check if AI is facing player
    Vector3 dir = Player.transform.position - transform.position;
    if (Vector3.Dot(dir, transform.forward) > 0.0f) {

        isFacingPlayer = true;

    } else {

        isFacingPlayer = false;

    }


}

我想要一个具体的视野,比如说310。但是不确定如何得到它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-24 16:13:37

嗯,我真的不知道为什么我会问这个问题,如果我能用真正的逻辑自己解决这个问题。无论如何,如果它对任何人有帮助,这里有一个解决方案:

代码语言:javascript
运行
复制
Vector3 targetDir = Player.transform.position - transform.position;
        float angleToPlayer = (Vector3.Angle (targetDir, transform.forward));

        if (angleToPlayer >= -90 && angleToPlayer <= 90) { // 180 FOV
            isFacingPlayer = true;
        } else {
            isFacingPlayer = false;
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55825197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档