Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.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#_Unity3d - Fatal编程技术网

C# 重新启动的预制实例不会在碰撞时销毁

C# 重新启动的预制实例不会在碰撞时销毁,c#,unity3d,C#,Unity3d,我和Unity2D相处了大约3天,我一直在破坏一个重生的预制件实例 这是一个关于这个问题的例子 下面是我目前的代码 公共游戏对象效果; 公共游戏对象objj; 公共交通; void Start() { 实例化(objj,新向量3(0,3,-1),四元数.identity); } void FixedUpdate() { 旋转(新矢量3(0,0,Time.deltaTime*速度)); } 无效OnTiggerEnter2D(碰撞的R2D其他) { 如果(其他比较标记(“玩家”)) { 实例化(e

我和Unity2D相处了大约3天,我一直在破坏一个重生的预制件实例

这是一个关于这个问题的例子

下面是我目前的代码

公共游戏对象效果;
公共游戏对象objj;
公共交通;
void Start()
{
实例化(objj,新向量3(0,3,-1),四元数.identity);
}
void FixedUpdate()
{
旋转(新矢量3(0,0,Time.deltaTime*速度));
}
无效OnTiggerEnter2D(碰撞的R2D其他)
{
如果(其他比较标记(“玩家”))
{
实例化(effect、pl.position、Quaternion.identity);
实例化(objj,新向量3(0,3,-1),四元数.identity);
销毁(其他游戏对象);
}
}
控制台中没有错误

编辑

根据这些评论,我想澄清:

1) pl是玩家的变换(用于获取坐标以启动死亡效果)

2) objj是玩家的游戏对象(使用它在碰撞后实例化玩家游戏对象)

3) sphere确实有玩家标签,否则它不会第一次重生

同时

我知道我可以禁用组件或更改其坐标以生成,但如果我知道如何在修复此问题的情况下重新实例化对象,那就更好了

我的问题


为什么玩家的预制实例在第一个玩家实例被销毁并重生后不会再次销毁?

为什么在与玩家碰撞时会再次实例化你的objj?你的问题是什么?为什么玩家在第二次接触时没有被摧毁?重生的玩家是否被标记为“玩家”?objj是否有标签
player
?作为旁注,我建议如果你只是在玩家死亡时重生玩家,你应该改变转换的位置(并将游戏对象设置为非活动状态,或者如果你想让渲染器短暂消失,则禁用渲染器)。不必要的重复实例化和销毁调用似乎会产生大量垃圾,而且通常效率低下。@在这种特定情况下,它只适用于一个或两个单个对象,并且不经常执行,因此在这里没有问题。当然,总的来说你是对的;)什么是
pl
,如果将其用于效果繁殖位置。。为什么你不为其他的后代起诉它?为什么你在与玩家碰撞时再次实例化你的objj?你的问题是什么?为什么玩家在第二次接触时没有被摧毁?重生的玩家是否被标记为“玩家”?objj是否有标签
player
?作为旁注,我建议如果你只是在玩家死亡时重生玩家,你应该改变转换的位置(并将游戏对象设置为非活动状态,或者如果你想让渲染器短暂消失,则禁用渲染器)。不必要的重复实例化和销毁调用似乎会产生大量垃圾,而且通常效率低下。@在这种特定情况下,它只适用于一个或两个单个对象,并且不经常执行,因此在这里没有问题。当然,总的来说你是对的;)什么是
pl
,如果将其用于效果繁殖位置。。你为什么不为其他后代起诉它呢?