![](/img/trans.png)
[英]C# Events / Interfaces - Getting Callbacks without subscribing in every class that's using the interface
[英]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.