首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Physics不检测冲突

Physics不检测冲突
EN

Stack Overflow用户
提问于 2020-07-19 19:40:08
回答 1查看 577关注 0票数 0

我想在我的玩家的剑上创建一个对撞机,如果他攻击,他会检测到,并通过一个动画事件关闭/打开一个名为(损伤点)的游戏对象,它是一个附加的脚本,将减去敌人的生命。但在某些地方它没有正确检测到。我试图添加OnDrawGizmos函数来查看我的球体对撞机,但即使在将其变大之后,它也无法检测到。

关于我的问题最奇怪的事情是,我对我的怪物箱子和我的幻想玩家使用了相同的代码,但是对于箱子它是有效的,但是对于玩家它不是。

我创建了一个名为PlayerDamage的类,它附加在剑尖上的一个空游戏对象上。

代码语言:javascript
复制
{
        public class PlayerDamage : MonoBehaviour
        public int damageAmount = 2;
        public LayerMask enemyLayer;
    
        void Update()
        {
            Collider[] hits = Physics.OverlapSphere(transform.position, 1.7f, enemyLayer);
            
    
            if (hits.Length > 0)
            {
                if (hits[0].gameObject.tag == MyTags.ENEMY_TAG)
                {
                    print("COLLIDED WITH ENEMY");
                }
            }
        }
    
        private void OnDrawGizmos()
        {
            Gizmos.DrawWireSphere(transform.position, 1.7f);
        }

在另一个直接附加到播放器的名为PlayerScript的脚本中,我有一个名为Attack的函数:

代码语言:javascript
复制
void Attack()
    {
        if (Input.GetKeyDown(KeyCode.K))
        {
            if (!anim.GetCurrentAnimatorStateInfo(0).IsName(MyTags.ATTACK_ANIMATION) || !anim.GetCurrentAnimatorStateInfo(0).IsName(MyTags.RUN_ATTACK_ANIMATION))
            {
                anim.SetTrigger(MyTags.ATTACK_TRIGGER);
            }
        }
    }

在PlayerScript类中还有两个名为ActivateDamagePoint和DeactivateDamagePoint的函数,这两个函数被分配给攻击动画的动画事件。

代码语言:javascript
复制
void ActivateDamagePoint()
    {
        damagePoint.SetActive(true);
    }

    void DeactivateDamagePoint()
    {
        damagePoint.SetActive(false);
    }

我仔细检查了所有东西都在他的层上,标签也没问题,但这并没有解决我的问题。

就像我之前说过的那样,我使用了相同的代码,它是有效的,但不幸的是,它不适用于我的球员。我还有激活和停用DamagePoint的函数,这些函数也被我的胸部攻击动画的动画事件调用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-19 20:36:04

好的,经过一个小时的调试,我终于找到了解决方案:

在MyTags类(所有字符串变量的帮助器类)中,错误是:

代码语言:javascript
复制
public static string ENEMY_TAG = "Enemey";

而不是:

代码语言:javascript
复制
public static string ENEMY_TAG = "Enemy"; 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62979773

复制
相关文章

相似问题

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