委托的一种用法

获取组件类

public class ChangeSign : MonoBehaviour{
        public delegate void InputOnFocusOut();
        public InputOnFocusOut inputOnFocusOut;
        
        private GTextInput descInput;

        public override void Start {
              this.descInput = this.GetChild("txt_sign").asTextInput;
              this.descInput.onFocusOut.Add(OnFocusOut);
        }

        private void OnFocusOut(EventContext context) {
            bool isExistEmoji = Utils.ContainEmoji(this.descInput.text);
            if (isExistEmoji) {
                inputOnFocusOut?.Invoke();
            }
        }

    }

调用类

 public sealed class MainScene:MonoBehaviour
{
     private ChangeSign changeSign;

    
    void Start()
    {
          this.changeSign = this.GetContent("ChangeSign") as ChangeSign;
          this.changeSign.inputOnFocusOut += this.ChangeSignInputOnFocusOut;
    }

     private void OnDisable() {
            this.changeSign.inputOnFocusOut -= this.ChangeSignInputOnFocusOut;
     }

     private void ChangeSignInputOnFocusOut() {
            Debug.Log("回调");
     }

}

猜你喜欢

转载自blog.csdn.net/u012909508/article/details/84959207