unity MonoBehaviour组件的查找封装
·
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()
{
}
}
更多推荐
所有评论(0)