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了的主要内容,如果未能解决你的问题,请参考以下文章

宜搭小技巧|第一时间看到审批进度?消息通知来帮你

IDEA 这么设置 Maven,再也不用担心依赖下载失败了

IDEA 这么设置 Maven,再也不用担心依赖下载失败了

IDEA 这么设置 Maven,再也不用担心依赖下载失败了

IDEA 这么设置 Maven,再也不用担心依赖下载失败了

Unity3D 灵巧小知识点 ☀️ | 获取某个游戏对象下的所有子物体