鼠标在 OnTriggerEnter 内单击

问题描述 投票:0回答:1

视频网址方便理解 -

http://tinypic.com/r/28jdyyq/9

在这个视频中,你可以看到我的问题,当剑接触敌人时..敌人被摧毁..但我想当我点击鼠标(或击中)时,那么只有..敌人应该摧毁..

void OnTriggerEnter(Collider col)
{
    if (col.GetComponent<Collider>().tag == "enemy")
    {
        Destroy(col.gameObject);
    }
}

这是我的代码,我有敌人和带有剑的玩家(带有碰撞器),一切都很完美,我希望当我单击鼠标按钮时只有剑才能杀死敌人,

但是,当我让我的玩家(带着剑)靠近敌人并且剑接触敌人时,会发生什么,它会杀死敌人而不会被剑击中。

我还通过在 Trigger 内添加鼠标单击事件尝试了以下代码,但没有任何反应。有什么想法请

void OnTriggerEnter(Collider col)
{
    if (Input.GetButtonDown("Fire1")){
        if (col.GetComponent<Collider>().tag == "enemy"){
            Destroy(col.gameObject);
        }
    }
}

这是 Swing 的代码 -

if (Input.GetButtonDown("Fire1"))
{
    anim.SetTrigger("hit");
}

这里点击是在动画控制器中触发并过渡到动画剪辑

c# unity-game-engine
1个回答
0
投票

您可以使用 Animation Events 在动画中剑升起时将布尔值设置为 true,并在剑下降时将其设置为 false,并在调用 OnTriggerEnter 时检查该布尔值
创建像

hit
这样的变量,通过 animation Event 将其设置为 truefalse

public bool hit;

void OnTriggerEnter(Collider col)
    {

        if (hit){

                if (col.GetComponent<Collider>().tag == "enemy"){

                    Destroy(col.gameObject);
                }

        }
© www.soinside.com 2019 - 2024. All rights reserved.