私は(Unityで)ゲームを作成しています。私は入力処理をゲームロジックから切り離してクロスプラットフォームにできるようにしたいと思います。プラットフォームごとに異なる実装が可能なIInputHandler
という名前のインターフェイスがあります。例えば、Cのインターフェイスのイベントを購読する
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
が見つかりません」
あなたは問題について、いくつかの実際のコードを示してもらえますか?インターフェイスでイベントを定義してから、正確に使用することができます –
確かに。多分私は構文に慣れていないかもしれませんが、私のインタフェースに次のメソッドを置こうとすると、コンパイラは不平を言っています: 'Event ForwardKeyPressed()'。これは、 "型または名前空間' ForwardKeyPressed'が見つかりませんでした "と言います。 – Alex
コードと正確なエラーメッセージで質問を編集してください。これは文法の単なる質問かもしれません。 –