C# Unity实例化根本不起作用,代码中没有错误,但仍然不起作用
我试图在循环中实例化一个预置,但是第一次调用实例化函数时,代码会无缘无故地跳出函数。我在VisualStudio中使用过步进工具,但不明白为什么它会这样做。我想这可能是因为我的Unity版本,但我刚刚更新到2019.3.0f6,问题仍然存在。有人有什么建议吗C# Unity实例化根本不起作用,代码中没有错误,但仍然不起作用,c#,for-loop,unity3d,instantiation,C#,For Loop,Unity3d,Instantiation,我试图在循环中实例化一个预置,但是第一次调用实例化函数时,代码会无缘无故地跳出函数。我在VisualStudio中使用过步进工具,但不明白为什么它会这样做。我想这可能是因为我的Unity版本,但我刚刚更新到2019.3.0f6,问题仍然存在。有人有什么建议吗 public void GotTickets(FBTicket[] tickets) { if (ticketHolders.Count < tickets.Length) { int amountNe
public void GotTickets(FBTicket[] tickets)
{
if (ticketHolders.Count < tickets.Length)
{
int amountNeeded = tickets.Length - ticketHolders.Count;
for (int i = 0; i < amountNeeded; i++)
{
TicketHolder ticketHolder = Instantiate(ticketHolderPrefab, ticketHolderParent).GetComponent<TicketHolder>();
ticketHolders.Add(ticketHolder);
}
}
for (int i = 0; i < ticketHolders.Count; i++)
{
ticketHolders[i].gameObject.SetActive(false);
}
for (int i = 0; i < tickets.Length; i++)
{
ticketHolders[i].SetTicket(tickets[i].jackpot, tickets[i].numbers);
}
}
公共票据(FBTicket[]票据)
{
if(ticketHolders.Count
是否启用了所有首次机会例外?在VS 2019中,转到调试>窗口>异常设置。检查所有公共语言运行时异常
再试一次,您可能会得到一个有用的异常
我没有答案,但是您的代码的第一部分可以大大简化:
while(ticketHolders.Count
不确定您所说的是哪个“循环”。在上次执行for
循环之前,能否使用Debug.Log命令显示ticketHolders.Count
和tickets.Length
的值?还要注意,虽然ticketHolders可能已经有一些元素,但您确定它们都不是null
?这肯定会打断块之后的第一个循环,如果块后面的两个循环不相关,则不会运行实例化点之后的代码。但是票证的长度是不同的,因为测试它的长度是13,而ticketHolders的计数是0。如何引用ticketPrefab?您是否在inspector中设置了公共财产?总是让我感到困惑的是,我制作了这个属性,但忘了在inspector中将预制件拖到其中。另外,如果您将实例化从GetComponent调用中分离出来,它是否能够通过实例化?谢谢您的回答,但是我刚刚尝试了这个,我担心它仍然不起作用。