我在 C# 中遇到了一些意想不到的行为。我基本上是在尝试将一个操作分配给另一个操作的引用,以便我可以在以后订阅/取消订阅引用操作的方法。我不想知道实现引用操作的类。
问题是,应该指向我想听的动作的动作似乎实际上并没有指向它。我认为每当提出引用的操作时它都会引发,但显然情况并非如此。
我可能对代表有一些误解。有人可以告诉我我做错了什么吗?我想要实现的目标有解决方案吗?
我感谢任何回应!
public class WaitForActionProcess : IProcess
{
public Action Finished { get; set; }
Action actionHandler;
public WaitForActionProcess(ref Action action)
{
actionHandler = action;
}
public void Play()
{
actionHandler += RaiseFinished;
}
public void RaiseFinished()
{
actionHandler -= RaiseFinished;
if(Finished != null)
{
Finished();
}
}
}
使用示例:
public class ReturnToMainMenuFrame : TutorialEventFrame
{
[SerializeField]
TutorialDialogueData dialogueData;
[SerializeField]
PointingArrowData arrowData;
[SerializeField]
TutorialDialogue tutorialDialogue;
[SerializeField]
PointingArrow arrow;
[SerializeField]
MainView mainView;
public override void StartFrame()
{
frameProcesses.Add(new ShowPointToUIProcess(arrow, arrowData));
frameProcesses.Add(new ShowDialogueProcess(tutorialDialogue, dialogueData));
frameProcesses.Add(new WaitForActionProcess(ref mainView.OnViewShown));
frameProcesses.Add(new HideDialogueProcess(tutorialDialogue, this));
frameProcesses.Add(new HidePointToUIProcess(arrow,this));
base.StartFrame();
}
}
Qyouu
相关分类