Der Versuch, einen UnityAction als Parameter für einen meiner Methoden zu senden, wie so:Pass Parameter mit 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);
das funktioniert gut, aber jetzt möchte ich die folgende Aktion als Parameter zu übergeben:
public void ActivateQuest(int questId)
{
Debug.Log("This is the id: " + questId);
}
Allerdings wird es nicht funktionieren, wenn ich eine Aktion verwenden, die einen Parameter hat:
dialogHolder.PopulateConversationList(stage1, "Okay", _name, 1, QuestManager.Instance().ActivateQuest(2));
Die oben geben s Fehler: Cannot convert from void to UnityAction
. Wie kann ich eine UnityAction mit einem Parameter als Parameter übergeben?
Ich nenne die Action
im Gespräch wie folgt aus:
dialog.OnAccept(ConvList[i].onLastPagePrompt,() =>
{
ConvList[i].action();
dialog.Hide();
});
EDIT: Die Lösung, die ich mit endete gehen:
enter dialogHolder.PopulateConversationList(stage1, "Okay", _name, 1,() =>
{
QuestManager.Instance().ActivateQuest(0);
});
So kann ich auch verschiedene Methoden aufrufen können. Hier
Sie haben sich nicht einmal die 'testMethod' Funktion angesehen und auch wie' MyAction' deklariert wurde. Diese werden benötigt, um Ihnen zu helfen. – Programmer
@Programmer Sorry, ich habe versucht, es lesbarer zu machen, schätze ich habe es nur noch schlimmer gemacht. Ich habe das Q bearbeitet. – Majs