我用unity做我的第一个2D游戏(我是个无名小卒),我试着做一个死亡屏障,将传送chharecter回到起点。

问题描述 投票:0回答:1

(只是让你知道,我是一个新手,所以如果你认识一些代码,它可能来自教程,因为我不懂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已安装免费版。

c# unity3d visual-studio-code
1个回答
0
投票

对于这一点,你应该有一个带有2D碰撞器的玩家对象来触发(检查器上的小框 "IsTrigger")。另外,死亡屏障大概应该有那个复选框的标记。

© www.soinside.com 2019 - 2024. All rights reserved.