脚本给出类似 _content.DestroyChildren() 的错误

Script gives error like _content.DestroyChildren()

我列出了这个房间,但我不知道该如何处理这个错误。我还有其他脚本,但我不知道是否应该为 DestroyChildren 或其他脚本编写一个。我应该删除 DestroyChildren 吗?或者我应该用什么来改变它?或者添加一些东西来工作?我在开始游戏时也遇到创建房间的错误,我应该在检查器中添加什么?

using Photon.Pun;
using Photon.Realtime;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class RoomListingsMenu : MonoBehaviourPunCallbacks
{
    [SerializeField]
    private Transform _content;
    [SerializeField]
    private RoomListing _roomListing;

    private List<RoomListing> _listings = new List<RoomListing>();
    private RoomsCanvases _roomsCanvases;


    public void FirstInitialize(RoomsCanvases canvases)
    {
        _roomsCanvases = canvases;
    }

    public override void OnJoinedRoom()
    {
        _roomsCanvases.CurrentRoomCanvas.Show();
        _content.DestroyChildren();
        _listings.Clear();
    }

    public override void OnRoomListUpdate(List<RoomInfo> roomList)
    {
        foreach (RoomInfo info in roomList)
        {
            //Removed from rooms list.
            if (info.RemovedFromList)
            {
                int index = _listings.FindIndex(x => x.RoomInfo.Name == info.Name);
                if (index != -1)
                {
                    Destroy(_listings[index].gameObject);
                    _listings.RemoveAt(index);
                }
            }
            //Added to rooms list.
            else
            {
                int index = _listings.FindIndex(x => x.RoomInfo.Name == info.Name);
                if (index == -1)
                {
                    RoomListing listing = Instantiate(_roomListing, _content);
                    if (listing != null)
                    {
                        listing.SetRoomInfo(info);
                        _listings.Add(listing);
                    }
                }
                else
                {
                    //Modify listing here.
                    //_listings[index].dowhatever.
                }
            }
        }
    }
}

您似乎缺少一些 'using' 或此扩展方法的某些实现。

我假设这个来自 https://github.com/Mckenon/Unity-Utils/blob/master/Utils/Transform.cs

您可以使用整个库,或者单个 class Transform.cs 或者编写您自己的扩展 class 和方法,如果您愿意的话:

using UnityEngine;

public static class TransformExtensions
{
    public static void DestroyChildren(this Transform t)
    {
        for (int i = t.childCount - 1; i >= 0; i--)
            MonoBehaviour.Destroy(t.GetChild(i));
    }
}