关于unity回调函数的引用,一直没怎么用过这个东西,今天写了个测试以防自己忘掉
回调我认为是有助于是有关代码整洁,可以代替频繁的if else
直接上代码和图
using System; using System.Collections; using System.Collections.Generic; using UnityEngine;
public class ActionTest : MonoBehaviour { ? ? public bool _changedValue; ? ? public event Action<bool> CallBack; ? ? public void AddChangeEvent(Action<bool> Event) ? ? { ? ? ? ? CallBack += Event; ? ? }
? ? public void TriggerEvent(bool b) ? ? { ? ? ? ? Debug.Log("-------" + b); ? ? } ? ? public bool changedValue ? ? { ? ? ? ? get { return _changedValue; } ? ? ? ? set ? ? ? ? { ? ? ? ? ? ? if (_changedValue != value) ? ? ? ? ? ? { ? ? ? ? ? ? ? ? CallBack?.Invoke(value); ? ? ? ? ? ? } ? ? ? ? ? ? _changedValue = value; ? ? ? ? } ? ? } ? ? private void Start() ? ? { ? ? ? ? AddChangeEvent(TriggerEvent); ? ? }
? ? public void OnApplicationQuit() ? ? { ? ? ? ? CallBack -= TriggerEvent; ? ? }
? ? void Update() ? ? { ? ? ? ? if (Input.GetKeyDown(KeyCode.Space)) ? ? ? ? { ? ? ? ? ? ? changedValue = !changedValue; ? ? ? ? } ? ? } } ?
|