簡體   English   中英

Unity - 動畫師不會讓我和禁用對撞機的代碼。 為什么?

[英]Unity - The Animator won't let not me and not the code to disable a collider. Why?

我有一個角色游戲 object,既有動畫師又有對撞機。

無論何時打開動畫器,在運行時都無法更改碰撞器,但可以通過檢查器在場景編輯模式下更改它。

無論我通過檢查器更改什么動畫屬性,都沒有任何反應。 我試圖修復的功能是無敵幀 - 一個協同程序,禁用角色的命中框幾秒鍾。

我嘗試啟用和禁用對撞機的 isTrigger 屬性,但問題仍然存在 - 當 isTrigger 打開時,角色仍然受到傷害。

代碼:

private IEnumerator ActivateInvincibility()
    {
        // 3 seconds of invincibility
        _hit_zone.enabled = false;  // no effect
        _hit_zone.isTrigger = true;  // no effect either
        yield return new WaitForSeconds(3f);
        _hit_zone.enabled = true;
        _hit_zone.isTrigger = false;;
    }

正常調用,如下所示: StartCoroutine("ActivateInvincibility"); .

編輯:

為了澄清,我想知道的是我遇到的問題的根源,因為我懷疑由於這一根源可能會出現更多問題。

我還編輯了不重要的代碼行。

//Added control flag
private bool isInvincibility = false;

private IEnumerator ActivateInvincibility()
{
    isInvincibility = true;
    //wait time
    isInvincibility = false;
}

void OnCollisionEnter(Collision collision)//or trigger {
     if(!isInvincibility && */Your condition tag name etc/*){
        //Damage ?
     }
}

psd; 調用協程為 StartCoroutine(ActivateInvincibility());。 不要使用字符串名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM