Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.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#_Unity3d_Gameobject - Fatal编程技术网

C# 在Unity中销毁实例化游戏对象的问题

C# 在Unity中销毁实例化游戏对象的问题,c#,unity3d,gameobject,C#,Unity3d,Gameobject,我实例化了Gameobject,现在我想销毁它,但不知什么原因我找不到方法。当我检查对象的位置是否小于某个数字时,即使它较小,也不会执行if语句中的代码:下面是代码,如果有人知道如何销毁这些实例化对象: [序列化字段] 游戏对象Jabuka; [序列化字段] 游戏对象克鲁斯卡; [序列化字段] 游戏对象brisacDonji; [序列化字段] 游戏对象Brisackornji; 公共浮动速度=3f; 公共游戏对象Spankerodozgo; 公共游戏对象Spankerodozdo; 游戏对象UI

我实例化了
Gameobject
,现在我想销毁它,但不知什么原因我找不到方法。当我检查对象的位置是否小于某个数字时,即使它较小,也不会执行if语句中的代码:下面是代码,如果有人知道如何销毁这些实例化对象:

[序列化字段]
游戏对象Jabuka;
[序列化字段]
游戏对象克鲁斯卡;
[序列化字段]
游戏对象brisacDonji;
[序列化字段]
游戏对象Brisackornji;
公共浮动速度=3f;
公共游戏对象Spankerodozgo;
公共游戏对象Spankerodozdo;
游戏对象UIjabuka;
游戏对象尤克鲁斯卡;
Rigidbody2D jabukaRig;
刚体2d kruskaRig;
浮点最小值=-2f;
浮点最大值x=2f;
浮动vrijemeSpawna=2f;
float nextSpawn=0f;
斯塔瓦提国际酒店;
int-grawngoreilidole;
浮动位置POS;
公共交通工具;
私有向量2屏幕边界;
//在第一帧更新之前调用Start
void Start()
{
screenBounds=Camera.main.ScreenToWorldPoint(新矢量3(Screen.width,Screen.height,Camera.main.transform.position.z));
}
//每帧调用一次更新
无效更新()
{
veclocityI=随机范围(2,6);
位置位置=随机范围(最小值,最大值);
SpawnGoreILidole=Random.Range(1,3);
开关(SpawnGoreILidole)
{
案例1:
spawnOdozgo();
打破
案例2:
spawnOdozdo();
打破
}
}
void FixedUpdate()
{
}
公共空间
{
如果(Time.Time>nextSpawn)
{
staSpawnati=随机范围(1,3);
Debug.Log(“sta”+sta);
开关(Stati)
{
案例1:
UIjabuka=实例化(Jabuka,新向量3(positionPos,spawnerOdozgo.transform.position.y,1),transform.rotation);
jabukaRig=UIjabuka.GetComponent();
jabukaRig.velocity=新向量2(0,-veclocityI);
if(UIjabuka.transform.position.ynextSpawn)
{
staSpawnati=随机范围(1,3);
Debug.Log(“sta”+sta);
开关(Stati)
{
案例1:
UIjabuka=实例化(Jabuka,新向量3(Random.Range(minx,maxx),spawnerOdozdo.transform.position.y,1),transform.rotation);
jabukaRig=UIjabuka.GetComponent();
jabukaRig.velocity=新向量2(0,向量locityi);
打破
案例2:
UIkruska=实例化(kruska,新向量3(Random.Range(minx,maxx),spawnerOdozdo.transform.position.y,1),transform.rotation);
kruskaRig=UIkruska.GetComponent();
kruskaRig.velocity=新矢量2(0,veclocityI);
打破
}
nextSpawn=Time.Time+vrijemeSpawna;
}
}

我没有足够的时间查看您的全部代码。但如果switch语句的大小写不是1,那么if语句将永远不会执行。如果要销毁对象,需要确保变量:
staSpawnati
设置为1。

根据上面发布的代码,需要满足3个条件才能达到销毁功能

  • SpawnGoreILidole必须为1才能满足第一个开关大小写并输入spawnOdozgo()
  • staSpawnati必须为1才能满足第二个开关情况,并输入销毁所在的代码部分
  • UIjabuka.transform.position.y必须小于brisacDonji.transform.position.y,然后销毁将在UIjabuka游戏对象上执行

  • 在我看来,这段代码毫无意义,因为你将摧毁你在上面4行创建的游戏对象。但这些是执行销毁所需的条件。

    UI jabuke的位置为f.e-20,brisacDonji的位置为-10,即使位置较低,if语句的代码也不会执行。如果您的staSpawnati不是1,则switch语句不会执行if语句