この質問ではUnity3Dについて言及しますが、一般的にC#で適用されます。私はC#インターフェイスを拡張しても、電話をかけることはできますか?
Unity3Dは、これまでのところ、このようになりますインターフェイス..
public class SomeRobot:MonoBehaviour, IPointerDownHandler
{
public void OnPointerDown(PointerEventData data)
{
Debug.Log("Gets called whenever someone touches the screen...");
}
問題ありませんがあります。
私は自分のインターフェイスを作る。..
public interface IFUHandler:IPointerDownHandler
{
void OnBlah (PointerEventData data);
}
は、私はインターフェイスの消費者のためOnBlahを呼び出しデーモンまたは何を持っていると仮定します。
public class SomeRobot:MonoBehaviour, IFUHandler
{
public void OnBlah(PointerEventData data)
{
Debug.Log("Gets called when blah happens...");
}
これまでのところ問題ありません。 BUT
public class SomeRobot:MonoBehaviour, IFUHandler
{
public void OnBlah(PointerEventData data)
{
Debug.Log("Gets called when blah happens...");
}
public void OnPointerDown(PointerEventData data)
{
Debug.Log("this DOES still get called also...");
}
実際にはOnPointerDown
が呼び出されます。どちらが理にかなっている。
しかし、私のインタフェースには、OnPointerDownへの呼び出しを食べる方法はありますか?
実際にIFUHandler
に加入している消費者がOnPointerDown
からの呼び出しを取得しないように?
(しかし、もちろん、私のOnBlah
のコールを取得します。)
または私はちょうど "TMIOOK" の考え方に苦しんでいますか?
で封止さ抽象クラスを作成します。私はこれが可能なのかどうかを試してみる。 – Programmer
[PointerEventData](https://docs.unity3d.com/ScriptReference/EventSystems.PointerEventData.html)には[使用](https://docs.unity3d.com/ScriptReference/EventSystems.AbstractEventData-used.html)のメンバーがあります。あなたはそれに反応する何かを止めるためにそれを 'true'に設定できますか? – ChrisF
こんにちは@ChrisF - まあ..私は、どこですか? (また、それは - 私が推測する - "一般的なC#の質問"の状況では本当に助けにはならないだろうと思う...) – Fattie