Update Cryville.Input.Unity.Builtin.

This commit is contained in:
2023-12-02 17:31:07 +08:00
parent b1b9dbdb77
commit 42c3ed8ca8

View File

@@ -8,25 +8,27 @@ namespace Cryville.Input.Unity {
/// </summary> /// </summary>
/// <typeparam name="T">The GUI event receiver type.</typeparam> /// <typeparam name="T">The GUI event receiver type.</typeparam>
public class UnityGuiInputHandler<T> : InputHandler where T : UnityGuiEventReceiver { public class UnityGuiInputHandler<T> : InputHandler where T : UnityGuiEventReceiver {
GameObject _receiver; readonly GameObject _receiver;
T _recvComp; readonly T _recvComp;
/// <summary> /// <summary>
/// Creates an instance of the <see cref="UnityGuiInputHandler{T}" /> class. /// Creates an instance of the <see cref="UnityGuiInputHandler{T}" /> class.
/// </summary> /// </summary>
public UnityGuiInputHandler() { } public UnityGuiInputHandler() {
/// <inheritdoc />
protected override void Activate() {
_receiver = new GameObject("__guiRecv__"); _receiver = new GameObject("__guiRecv__");
_recvComp = _receiver.AddComponent<T>(); _recvComp = _receiver.AddComponent<T>();
_recvComp.SetFeedCallback(Feed); _recvComp.SetFeedCallback(Feed);
_recvComp.SetBatchCallback(Batch); _recvComp.SetBatchCallback(Batch);
} }
/// <inheritdoc />
protected override void Activate() {
_recvComp.enabled = true;
}
/// <inheritdoc /> /// <inheritdoc />
protected override void Deactivate() { protected override void Deactivate() {
if (_receiver) GameObject.Destroy(_receiver); if (_recvComp) _recvComp.enabled = false;
} }
/// <inheritdoc /> /// <inheritdoc />