首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何销毁导航网格代理

如何销毁导航网格代理
EN

Stack Overflow用户
提问于 2018-04-17 23:28:19
回答 1查看 776关注 0票数 0

我正在创建一个fps游戏,玩家必须通过射击杀死敌人。我在用光线投射攻击敌人。我想在光线投射击中敌人的时候摧毁导航网格代理。我有一个播放器脚本附加到播放器(不是导航网格代理)抛出光线投射。

如何从播放器脚本中销毁AI代理?

EN

回答 1

Stack Overflow用户

发布于 2018-04-17 23:57:45

如果我没理解错的话,你希望敌人的物体在用你的播放器脚本中的光线投射时被摧毁。这段光线投射片段是从https://docs.unity3d.com/ScriptReference/Physics.Raycast.html无耻地复制和略微修改而来的

代码语言:javascript
复制
    // Bit shift the index of the layer (8) to get a bit mask
    int layerMask = 1 << 8;

    // This would cast rays only against colliders in layer 8.
    // But instead we want to collide against everything except layer 8. The ~ operator does this, it inverts a bitmask.
    layerMask = ~layerMask;

    RaycastHit hit;
    // Does the ray intersect any objects excluding the player layer
    if (Physics.Raycast(transform.position, transform.TransformDirection(Vector3.forward), out hit, Mathf.Infinity, layerMask))
    {
        Destroy(hit.transform.gameObject)
    }

在这种情况下,如果光线投射命中一个对象,您将通过" hit“变量获得对该命中和相应数据的引用。从那里,您可以引用跳转回到碰撞对象的gameObject。目前,此代码将简单地销毁光线投射命中的任何内容。这几乎肯定是不可取的。您必须添加逻辑以使其更具判别性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49882088

复制
相关文章

相似问题

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