2016-08-07 84 views
0

視頻網址爲便於理解 - http://tinypic.com/r/28jdyyq/9鼠標點擊裏面OnTriggerEnter

在這段視頻中,你可以看到我的問題,當劍觸碰敵人的敵人..被打爛。但是我想,當我點擊鼠標(或擊中),那麼只有..enemy應該銷燬..

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

     } 
    } 

這是我的代碼,我有敵人和玩家劍(與對撞機),一切都是完美的,我希望當我點擊mousebutton那麼只有劍應該殺敵人,

但是,發生了什麼w如果我把我的玩家(帶着劍)接近敵人,並且劍與敵人接觸,那麼在我沒有被劍擊中的情況下它正在殺死敵人。

我嘗試了下面的代碼,在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"); 
     } 

打到這裏是觸發動畫控制器,使過渡到動畫剪輯

+0

我想摧毀鼠標點擊敵人將其設置爲。 (我有一個有劍的玩家,鼠標點擊時玩家只是揮動劍)。我想在劍點擊鼠標時擊中敵人,然後敵人就會死亡。但是用我的第一個代碼,當我把玩家帶到敵人附近並且接觸到劍(未擊中)敵人時,它就會死亡。我想敵人只會在我點擊 – amulbhatia

+0

時死亡,劍沒有殭屍。我可以添加它,但接下來呢?那麼 – amulbhatia

+0

是的,它只是代碼。實際上,當我使用第一個代碼時,敵人會被摧毀..我希望敵人應該只在鼠標點擊時摧毀..(意味着當玩家擊中時) – amulbhatia

回答

0

可以使用Animation Events,使真正的布爾當劍在動畫中上升並在劍下降時將其變爲假,並在調用OnTriggerEnter時檢查布爾值
使得像這樣的變量通過動畫事件

public bool hit; 

void OnTriggerEnter(Collider col) 
    { 

     if (hit){ 

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

        Destroy(col.gameObject); 
       } 

     }