我列出了这个会议室,但我不知道该怎么办。我还有其他脚本,但是我不知道我是否应该为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.
}
}
}
}
}
答案 0 :(得分:3)
似乎您缺少此扩展方法的某些“使用”或某些实现。
我会假设这是来自https://github.com/Mckenon/Unity-Utils/blob/master/Utils/Transform.cs
您可以使用整个库,也可以使用单个类Transform.cs
,也可以根据需要编写自己的扩展类和方法:
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));
}
}