递归查找子物体
相关代码:
cs
Transform FindChild(string childName, Transform parent)
{
if (childName == parent.name) {
return parent;
}
if (parent.childCount < 1)
{
return null;
}
Transform obj = null;
for(int i = 0; i < parent.childCount; i++)
{
Transform t = parent.GetChild(i);
obj = FindChild(childName, t);
if (obj != null)
{
break;
}
}
return obj;
}
在Unity上运行,例如:将该部分代码内容所在脚本挂载到 Cube (7)上,查找Cube (5):
cs
void Update()
{
Transform t = FindChild("Cube (5)", transform);
if (t)
{
Debug.Log("t:" + t.name);
}
}
运行结果如下图:
Unity生命周期函数
相关代码:
cs
private void Awake()
{
Debug.Log("Awake");
}
/// <summary>
/// 第二执行的方法
/// 每次当前游戏物体激活都会被调用
/// </summary>
private void OnEnable()
{
Debug.Log("OnEnable");
}
/// <summary>
/// 每次当前游戏物体失活都会被调用
/// </summary>
private void OnDisable()
{
Debug.Log("OnDisable");
}
/// <summary>
/// 只会执行一次
/// </summary>
void Start()
{
Debug.Log("Start");
}
/// <summary>
/// 物理更新写在这里面
/// 更新频率是根据Fixed Timestep来的
/// </summary>
private void FixedUpdate()
{
Debug.Log("FixedUpdate");
}
// Update is called once per frame
void Update()
{
Debug.Log("Update");
}
/// <summary>
/// 在Update后执行,同样也是每一帧都会执行
/// </summary>
private void LateUpdate()
{
Debug.Log("LateUpdate");
}
/// <summary>
/// 游戏物体被销毁时,先调用Disable,然后再调用OnDestory
/// </summary>
private void OnDestroy()
{
Debug.Log("OnDestroy");
}
该系列专栏为网课课程笔记,仅用于学习参考。