using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Explicit)]
public class OverlapEvents
public EventCapture Target;
public class EventCapture
public event Action OnClick;
public void SimulateClick()
private void InvokeClicked()
Console.WriteLine("Event intercepted");
public static void Main()
var input = new VRInput();
input.OnClick += AClicked;
var o = new OverlapEvents { Source = input };
o.Target.SimulateClick();
Console.WriteLine("Clicked");
public event Action OnClick;
private void InvokeClicked()