Unity小技巧 - 自动获取所有子节点,再也不用通过脚本手动链接每个transform了
Posted gamedev˚
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity小技巧 - 自动获取所有子节点,再也不用通过脚本手动链接每个transform了相关的知识,希望对你有一定的参考价值。
有时,游戏场景会使用许多相同类型的游戏对象,例如敌人、路标和障碍物。这些游戏对象可能需要由监督或响应它们的特定脚本来跟踪(例如,寻路脚本可能需要使用所有路标)。可以使用变量来链接这些游戏对象,但是如果必须将每个新路标拖动到脚本中的变量,会使设计过程变得繁琐。同样,如果删除一个路标,则必须删除对丢失游戏对象的变量引用,这很麻烦。此类情况下,可使一组游戏对象成为一个父游戏对象的所有子对象,这种管理多个游戏对象的方式通常会更好。可以使用父游戏对象的变换组件来检索子游戏对象(因为所有游戏对象都具有隐式变换),通过下面的方式隐式拿到子节点,实现自动获取所有子节点。
using System.Collections.Generic;
using UnityEngine;
public class WaypointManager : MonoBehaviour
public Transform[] waypoints;
public Transform Group;
private List<Transform> _theGroup = new List<Transform>();
void Start()
// 将本脚本当前所在的transform中的子结点都实例化到waypoints数组中
waypoints = new Transform[transform.childCount];
int i = 0;
foreach (Transform t in transform)
waypoints[i++] = t;
// 实例化Group下的所有子节点,并保存在一个list集合中
foreach (Transform t in Group)
_theGroup.Add(t);
Debug.Log(t.transform.name);
这样做的好处就是,再也不用将一个个节点挂载在脚本组件下面了,脚本本身能自动获取。
这个自动获取节点的小技巧就介绍到这里。如果对你有帮助欢迎点赞和分享,欢迎查看本系列中的其他文章~
以上是关于Unity小技巧 - 自动获取所有子节点,再也不用通过脚本手动链接每个transform了的主要内容,如果未能解决你的问题,请参考以下文章