diff --git a/Assets/Cryville/Crtr/InputProxy.cs b/Assets/Cryville/Crtr/InputProxy.cs index dfb3eb7..81a1020 100644 --- a/Assets/Cryville/Crtr/InputProxy.cs +++ b/Assets/Cryville/Crtr/InputProxy.cs @@ -43,8 +43,10 @@ namespace Cryville.Crtr { if (_use[proxy.Target] > 0) throw new InvalidOperationException("Input already assigned"); if (proxy.Source != null) { - proxy.Source.Value.Handler.OnInput -= OnInput; // Prevent duplicated hooks, no exception will be thrown - proxy.Source.Value.Handler.OnInput += OnInput; + if (_judge != null) { + proxy.Source.Value.Handler.OnInput -= OnInput; // Prevent duplicated hooks, no exception will be thrown + proxy.Source.Value.Handler.OnInput += OnInput; + } _tproxies.Add(proxy.Target, proxy); _sproxies.Add(proxy.Source.Value, proxy); IncrementUseRecursive(name); @@ -53,7 +55,7 @@ namespace Cryville.Crtr { } void Remove(InputProxyEntry proxy) { var name = proxy.Target; - proxy.Source.Value.Handler.OnInput -= OnInput; + if (_judge != null) _tproxies[name].Source.Value.Handler.OnInput -= OnInput; _sproxies.Remove(_tproxies[name].Source.Value); _tproxies.Remove(name); DecrementUseRecursive(name);