試圖發送一個UnityAction作爲一個參數爲我的方法之一,比如:傳遞參數與UnityAction
public void PopulateConversationList(string [] fullConversation, string onLastPagePrompt, string npcName, int stage, UnityAction action)
{
conversations.Add(new Conversation(fullConversation, onLastPagePrompt, npcName, stage, action));
}
dialogHolder.PopulateConversationList(stage1, "Okay", _name, 1, QuestManager.Instance().ActivateQuest);
能正常工作,但現在我想下面的行動作爲參數傳遞:
public void ActivateQuest(int questId)
{
Debug.Log("This is the id: " + questId);
}
然而,當我使用的是有一個參數的操作將無法正常工作:
dialogHolder.PopulateConversationList(stage1, "Okay", _name, 1, QuestManager.Instance().ActivateQuest(2));
以上給予s錯誤:Cannot convert from void to UnityAction
。 如何將參數傳遞給UnityAction作爲參數?
我叫Action
在談話中是這樣的:
dialog.OnAccept(ConvList[i].onLastPagePrompt,() =>
{
ConvList[i].action();
dialog.Hide();
});
編輯:我最終的解決方案與打算:
enter dialogHolder.PopulateConversationList(stage1, "Okay", _name, 1,() =>
{
QuestManager.Instance().ActivateQuest(0);
});
這樣我可以調用多種方法爲好。
你甚至懶得顯示'testMethod'函數以及'MyAction'是如何聲明的。這些是必需的,以幫助你。 – Programmer
@Programmer對不起,我試圖讓它更具可讀性,我猜想讓它變得更糟。我編輯了問: – Majs