Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Unity实例化根本不起作用,代码中没有错误,但仍然不起作用_C#_For Loop_Unity3d_Instantiation - Fatal编程技术网

C# Unity实例化根本不起作用,代码中没有错误,但仍然不起作用

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

我试图在循环中实例化一个预置,但是第一次调用实例化函数时,代码会无缘无故地跳出函数。我在VisualStudio中使用过步进工具,但不明白为什么它会这样做。我想这可能是因为我的Unity版本,但我刚刚更新到2019.3.0f6,问题仍然存在。有人有什么建议吗

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调用中分离出来,它是否能够通过实例化?谢谢您的回答,但是我刚刚尝试了这个,我担心它仍然不起作用。