簡體   English   中英

訂閱C#中的接口事件

[英]Subscribing to an interface's events in C#

我正在創建一個游戲(在Unity中)。 我希望將輸入處理與游戲邏輯分離,以便可以跨平台使用。 我有一個名為IInputHandler的接口,可以IInputHandler每個平台以不同的方式實現。 例如,

public class AndroidInputHandler : IInputHandler

要么

public class PcInputHandler : IInputHandler

我想要此界面的原因是可以執行以下操作:

public class PlayerController {

     private IInputHandler _inputHandler;
     private Player _myPlayer;
     // ... 
     _inputHandler.ForwardKeyPressed += _myPlayer.MoveForward();

如您所見,我想要一個我可以訂閱其方法的界面,以便無論何時按下“向前移動”鍵,無論是PC上的“ W”鍵還是Android(我的Player屏幕上的水龍頭前進。 我嘗試在IInputHandler接口中使用delegates ,但委托和接口似乎不能很好地配合使用。 我如何才能實現自己的目標?

編輯:我已經嘗試:

public interface IInputHandler {

    event ForwardKeyPressed();

錯誤消息:“ ForwardKeyPressed類型或名稱空間ForwardKeyPressed 。”

您必須聲明事件的類型。

舉個例子,

public interface IInputHandler 
{
    event EventHandler<ForwardKeyPressedEventArgs> ForwardKeyPressed;
}

暫無
暫無

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

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