C# Unity2D克隆的游戏对象不会检测到其他游戏对象的标签
我试着制造一个能产卵的射弹,当它击中玩家时,他就会被摧毁。我必须提到,投射物将通过“实例化”命令生成,使其成为“克隆的游戏对象”。在脚本中我写道,如果射弹击中另一个带有“玩家”标签的游戏对象,它击中的游戏对象将被销毁,但在运行代码后,射弹击中了玩家,他没有被销毁。我查过了,标签上写着“玩家”。我在代码中加入了一个调试命令,并设法发现标记没有被检测到。射弹产卵器的脚本和射弹本身是分开的,所以我只展示射弹脚本,因为它是有问题的脚本。我必须指出,脚本不会产生任何错误,模拟运行良好,除了我上面提到的事情C# Unity2D克隆的游戏对象不会检测到其他游戏对象的标签,c#,unity3d,C#,Unity3d,我试着制造一个能产卵的射弹,当它击中玩家时,他就会被摧毁。我必须提到,投射物将通过“实例化”命令生成,使其成为“克隆的游戏对象”。在脚本中我写道,如果射弹击中另一个带有“玩家”标签的游戏对象,它击中的游戏对象将被销毁,但在运行代码后,射弹击中了玩家,他没有被销毁。我查过了,标签上写着“玩家”。我在代码中加入了一个调试命令,并设法发现标记没有被检测到。射弹产卵器的脚本和射弹本身是分开的,所以我只展示射弹脚本,因为它是有问题的脚本。我必须指出,脚本不会产生任何错误,模拟运行良好,除了我上面提到的事情
public class Bulletboi : MonoBehaviour
{
public float speed;
private Transform player;
private Vector2 target;
public GameObject Elven;
void Start()
{
player = GameObject.FindGameObjectWithTag("player").transform;
target = new Vector2(player.position.x, player.position.y);
}
void Update()
{
transform.position = Vector2.MoveTowards(transform.position, target, speed * Time.deltaTime);
if(transform.position.x == target.x && transform.position.y == target.y)
{
DestroyProjectile();
}
}
void OnEnterTrigger2D(Collision2D other)
{
if (other.gameObject.tag.Equals("player"))
{
Debug.Log("bbbb");
DestroyProjectile();
Destroy(other.gameObject);
}
}
void DestroyProjectile()
{
Destroy(gameObject);
}
}
没关系,我决定稍微修改一下脚本,然后把它放在播放机上,让它检测到投射物的标签,现在它工作了。你确定它满足所有碰撞要求吗?我很抱歉没有提到我是unity和programming的新手,但是,您能否指定代码必须满足哪些要求才能正常工作?