(只是让你知道,我是一个新手,所以如果你认识一些代码,它可能来自教程,因为我不懂C#,只知道类似于arduino和java的部分;教程中的一些代码被编辑过,所以我不能通过查看它们来排除故障;我已经浏览了网络)
此外,它使用的是资产商店的Sunnyland和免费平台资产包,因为我不是一个艺术家。
所以,我试图为教程关卡制作一个死亡屏障(这是平台游戏中唯一的一个关卡,在写作的时候),它并没有真正的工作,所以我调整了代码,直到我得到这个。
public Transform respawnArea;
public GameObject player;
void OnTriggerEnter2D(Collider2D other) {
Debug.Log("the player has died"); //this is how i noticed the problem
player.transform.position = respawnArea.transform.position;
}
在那之后,我测试了它,然后它似乎没有工作, 但后来一些进一步的测试证明,精灵是跌过障碍物,但碰撞被传送到应该去的地方。我用debug测试了一下,当玩家掉下去的时候,它报告给debug,但是我试着向左走(撞到墙上),看了一下debug,什么也没发生,但是当我跳过墙的时候,看不见的hitbox又掉到了死亡屏障上,它又给了我一个debug。(再次强调,我是一个unity和C#的新手,所以这可能是正常的,与问题无关)
Unity版本:2019.4.0f1 Unity hub已安装免费版。
对于这一点,你应该有一个带有2D碰撞器的玩家对象来触发(检查器上的小框 "IsTrigger")。另外,死亡屏障大概应该有那个复选框的标记。