// Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.Alpha1)) { LocalSignalContainer.AddListener <SignalA>(GetSignalA); LocalSignalContainer.AddListener <SignalB>(GetSignalB); } if (Input.GetKeyDown(KeyCode.Alpha2)) { LocalSignalContainer.RemoveListener <SignalA>(GetSignalA); LocalSignalContainer.RemoveListener <SignalB>(GetSignalB); //error //LocalSignalContainer.RemoveListener<SignalC>(GetSignalC); } if (Input.GetKeyDown(KeyCode.A)) { LocalSignalContainer.DispatchSignal(new SignalA() { msg = "A msg broadcast" }); } if (Input.GetKeyDown(KeyCode.B)) { LocalSignalContainer.DispatchSignal(new SignalB() { msg = "B msg broadcast" }); //error //LocalSignalContainer.DispatchSignal(new SignalC() { msg = "C msg broadcast" }); } }
private void Update() { if (Input.GetKeyDown(KeyCode.A)) { localsignalContainer.DispatchSignal(new SignalA { msg = "Test A Success!" }); } if (Input.GetKeyDown(KeyCode.R)) { Pool.Clear(); } if (Input.GetKeyDown(KeyCode.Alpha1)) { localsignalContainer.AddListener <SignalA>(OnReceiveSignalA); } if (Input.GetKeyDown(KeyCode.Alpha2)) { localsignalContainer.RemoveListener <SignalA>(OnReceiveSignalA); } }