Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.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# 统一:游戏对象重复实例化问题_C#_Debugging_Unity3d_Infinite Loop_Instantiation - Fatal编程技术网

C# 统一:游戏对象重复实例化问题

C# 统一:游戏对象重复实例化问题,c#,debugging,unity3d,infinite-loop,instantiation,C#,Debugging,Unity3d,Infinite Loop,Instantiation,每次调用NewSpawn()时,我都试图实例化一个僵尸预制,这是reSpawn变量变为“true”(通过inspector)的时候。然而,一旦我实例化一个僵尸,它就会无限循环克隆僵尸。[克隆克隆的克隆]如何将每个方法调用限制为一个僵尸实例化?(我想做10个僵尸,而不是10000个。 非常感谢。 使用系统集合; 使用System.Collections.Generic; 使用UnityEngine; 公共类僵尸:单一行为{ 公共游戏对象僵尸预制; 公共转换点; 私人职位转换; 公共bool re

每次调用NewSpawn()时,我都试图实例化一个僵尸预制,这是reSpawn变量变为“true”(通过inspector)的时候。然而,一旦我实例化一个僵尸,它就会无限循环克隆僵尸。[克隆克隆的克隆]如何将每个方法调用限制为一个僵尸实例化?(我想做10个僵尸,而不是10000个。 非常感谢。

使用系统集合;
使用System.Collections.Generic;
使用UnityEngine;
公共类僵尸:单一行为{
公共游戏对象僵尸预制;
公共转换点;
私人职位转换;
公共bool reSpawn=false;
private bool lastToggle=false;
//用于初始化
无效开始(){
spawnPositions=zombieSpawnPoint.GetComponentsInChildren();
}
私有void NewSpawn()//新僵尸的繁殖位置
{
实例化(僵尸预置、transform.position、transform.rotation);
int i=Random.Range(1,spawnPositions.Length);
transform.position=prownpositions[i].transform.position;
}
void Update(){//T-toggle
如果(重生!=lastToggle)
{
新闻兵();
重生=虚假;
}
其他的
lastToggle=重生;
}
}
只需在按钮单击事件中调用
NewSpawn()
,而不是将
reSpawn
设置为true

此外,这没有任何意义:

else
{
   lastToggle = reSpawn;
}

它们已经相等了。

好吧,我想出来了,这是因为正在实例化的预置有僵尸脚本。当我删除它时,它是单一实例化的。但是,我遇到了一个问题,僵尸预置不接受场景的玩家变换,当我放置玩家预置时,它们不再向玩家运行。我怎么才能让僵尸跑到一个僵尸玩家面前,而不是玩家场景呢?@ BenSmith,这是一个完全不同的话题。考虑为这个问题做一个新的问题。我会尽力帮助你。
else
{
   lastToggle = reSpawn;
}