Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/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_Collision - Fatal编程技术网

C# 当敌人与玩家Unity碰撞时加载场景

C# 当敌人与玩家Unity碰撞时加载场景,c#,unity3d,collision,C#,Unity3d,Collision,统一2D。当敌人与我的玩家相撞时,我试图加载EndGameSecene,但我似乎无法让它工作 我的标签是“玩家”和“敌人”。 这是最新的 代码: 有一种更好的方法可以进行碰撞: 在此处更改名称if(collision.gameObject.name==“敌军”) 如果(collision.gameObject.tag==“敌人”) 然后转到你场景中的敌人,将敌人标签添加到他们身上我是Unity的新手(自从上次使用它以来已经有一段时间了),因此此检查表可能不完整,但仍然值得一试: 在OnColl

统一2D。当敌人与我的玩家相撞时,我试图加载EndGameSecene,但我似乎无法让它工作

我的标签是“玩家”和“敌人”。 这是最新的

代码:


有一种更好的方法可以进行碰撞: 在此处更改名称
if(collision.gameObject.name==“敌军”)
如果(collision.gameObject.tag==“敌人”) 然后转到你场景中的敌人,将敌人标签添加到他们身上

我是Unity的新手(自从上次使用它以来已经有一段时间了),因此此检查表可能不完整,但仍然值得一试:

  • 在OnCollisionCenter函数的末尾放置一个
    Debug.Log(“it Collishes!”)
    ,这样您就可以确保它确实在检测碰撞
如果没有打印任何内容:

  • 检查你是否在玩家和敌人身上都使用了对撞机
  • 玩家的碰撞器应该选中“Is trigger”复选框,以便触发OncollitionEnter事件
如果它打印消息:

  • 检查打印机消息下是否有错误消息,可能是找不到场景
  • 确保您键入的敌人名称/标签正确(我想脚本在您的播放器上)

此脚本已附加到玩家,对吗?我已将其附加到玩家和3个敌人。我应该把它附加到玩家身上吗?你应该只把它附加到玩家身上,除非你想让游戏在敌人互相碰撞时结束。还要检查场景的名称。All caps GAME OVER并不是一个传统的名称。您好@drewb33,您应该发布代码而不是动画,特别是如果它是一个外部图像,这可能在将来不可用。我确保它只添加到一个播放器中,将场景名称切换到EndGame场景,并在我的EndGame评论中发布代码。仍然没有勒克塔格绝对是这里的出路。这是错误的。一个很好的经验法则是,名称用于标识特定对象,标记用于标识对象类型。
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class EndGame : MonoBehaviour
{
    void OnCollisionEnter(Collision collision)
    {

        if (collision.gameObject.name == "enemy")
        {

            SceneManager.LoadScene("EndGameScene");

        }
    }
}