第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

當(dāng)一個(gè)變量被一個(gè)腳本激活而不是另一個(gè)腳本激活時(shí),if 語(yǔ)句起作用

當(dāng)一個(gè)變量被一個(gè)腳本激活而不是另一個(gè)腳本激活時(shí),if 語(yǔ)句起作用

C#
叮當(dāng)貓咪 2023-09-16 16:20:16
本質(zhì)上,我使用的是 Unity C#(我很新,所以我可能會(huì)遺漏一些明顯的東西),并且我有一個(gè)腳本,它使用 Raycast 與 NPC“對(duì)話”。本質(zhì)上,它所做的就是 Raycast 拾取與其碰撞的物體,然后打開該對(duì)象內(nèi)的“NPC”腳本。我這樣做是為了區(qū)分 NPC,因?yàn)閷砦铱梢允褂眯蛄谢牟煌?NPC 的代碼。好吧,根據(jù)我的調(diào)試,這也可以正常工作,我的問題似乎正在進(jìn)一步發(fā)生。然后,這個(gè) NPC 腳本會(huì)激活另一個(gè)名為“DialogueActive”的“NPCMaster”腳本上的變量。根據(jù)我的調(diào)試,這也有效,問題是,盡管我的兩個(gè) NPC 幾乎完全相同,并且都正確激活了這個(gè)變量,但其中一個(gè)不會(huì)激活 if 語(yǔ)句檢查“DialogueActive”== true 。奇怪的是,當(dāng)我將它們的名字更改為相同的名稱,或者完全更改它們的名稱,或者刪除并復(fù)制預(yù)制件時(shí),損壞的 NPC 就會(huì)發(fā)生變化。然而,一旦我放置它們,一個(gè) NPC 就會(huì)被破壞,而另一個(gè)則不會(huì),這并不取決于我首先與誰交談或其他任何事情。我可以與未損壞的 NPC 交談任意多次,而且它總是有效的。我嘗試過很多事情,我嘗試過更改激活變量的方式(盡管它不是問題開始的地方)我嘗試過刪除它們,復(fù)制它們,使它們具有相同的名稱,但隨后損壞的 NPC 將只是交換位置。就像我說的,我對(duì) C# unity 很陌生,而且總體上對(duì)編碼很陌生,所以問題可能是由于我的無知造成的。//出現(xiàn)問題的if語(yǔ)句。void Update(){    if (DialogueActive == true)    {        Debug.Log("Test2");        panelexist.enabled = true;        maintext.text = dialogue;    }    else    {        panelexist.enabled = false;        maintext.text = "";     }}//激活“DialogueActive”變量的變量。void Update(){    if (Interacting == true)    {        Debug.Log("Test1");        obj.GetComponent<NPCMasterScr> ().DialogueActive = true;    }    else     {        obj.GetComponent<NPCMasterScr> ().DialogueActive = false;    }    if (Input.GetKeyUp("escape"))    {        Interacting = false;        obj.GetComponent<NPCMasterScr> ().DialogueActive = false;    }}我期望 if (DialogueActive == true) 語(yǔ)句激活其下面的代碼,它在一種情況下做到了,但在另一種情況下則不然。
查看完整描述

1 回答

?
SMILET

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊

看起來你的腳本做了一些相互沖突的事情。


這部分:


 if (Interacting == true)

    {

        Debug.Log("Test1");

        obj.GetComponent<NPCMasterScr> ().DialogueActive = true;

    }

    else 

    {

        obj.GetComponent<NPCMasterScr> ().DialogueActive = false;

    }

這將在層次結(jié)構(gòu)中較高的腳本上正常工作。當(dāng)?shù)诙€(gè)腳本嘗試在 if = true 時(shí)執(zhí)行某些操作時(shí),第一個(gè)腳本會(huì)通過其else. 因此,當(dāng)?shù)诙€(gè)腳本嘗試執(zhí)行時(shí)obj.GetComponent<NPCMasterScr> ().DialogueActive = true;,第一個(gè)腳本就會(huì)執(zhí)行obj.GetComponent<NPCMasterScr> ().DialogueActive = false;。


更新1: 以下代碼可能有助于理解問題。


void Update()

{

    if (Interacting == true)

    {

        Debug.Log("Test1");

        obj.GetComponent<NPCMasterScr> ().DialogueActive = true;

    }

    if (Input.GetKeyDown("escape"))

    {

        Interacting = false;

        obj.GetComponent<NPCMasterScr> ().DialogueActive = false;

    }

}

如何使用:

  • 與第一個(gè)對(duì)象交互

  • 停止互動(dòng)

  • 按 Esc(執(zhí)行此步驟之前應(yīng)停止交互?。?/p>

  • 與第二個(gè)對(duì)象交互

...以及DialogueActive每個(gè)步驟的控制狀態(tài)


查看完整回答
反對(duì) 回復(fù) 2023-09-16
  • 1 回答
  • 0 關(guān)注
  • 127 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)