using UnityEngine; using UnityEngine.Events; using UnityEngine.UI; public class SimMonoBehaviour : MonoBehaviour { protected T findComponent<T>(Transform parent, string path) where T : Component { if (parent == null) return null; Transform transform = parent.Find(path); if (transform == null) return null; T component = transform.GetComponent<T>(); return component; } protected T addComponent<T>(Transform parent) where T : Component { return addComponent<T>(parent, ""); } protected T addComponent<T>(GameObject obj) where T : Component { return addComponent<T>(obj.transform, ""); } protected T addComponent<T>(string path) where T : Component { return addComponent<T>(this.transform, path); } protected T addComponent<T>(Transform parent, string path) where T : Component { if (parent == null) return null; Transform transform = parent.Find(path); if (transform == null) return null; T component = transform.GetComponent<T>(); if (component == null) component = transform.gameObject.AddComponent<T>(); return component; } protected T findComponent<T>(string path) where T : Component { return findComponent<T>(this.transform, path); } protected Button findButton(Transform parent, string path, UnityAction action) { Button button = findComponent<Button>(parent, path); if(button != null && action != null) { button.onClick.AddListener(action); } return button; } protected Button findButton(string path, UnityAction action) { return findButton(this.transform, path, action); } protected virtual void Awake() { } protected virtual void OnEnable() { } protected virtual void Start() { } protected virtual void FixedUpdate() { } protected virtual void Update() { } protected virtual void LateUpdate() { } protected virtual void OnDisable() { } protected virtual void OnDestroy() { } }
unity MonoBehaviour组件的查找封装
最新推荐文章于 2025-04-07 22:20:05 发布