C# 我怎样才能检测到“;“碰撞”;当我的玩家在另一个物体内时?
玩家跳到第二张牌。就像马里奥一样。然后他按j键加载另一个场景或其他什么 所以我把一个看不见的物体放在2块瓷砖的上面,所以如果他在那个看不见的物体里面,他可以按j 问题是,只有当我在碰撞时向右按j时,j才起作用。当我在里面的时候,我需要它工作C# 我怎样才能检测到“;“碰撞”;当我的玩家在另一个物体内时?,c#,unity3d,C#,Unity3d,玩家跳到第二张牌。就像马里奥一样。然后他按j键加载另一个场景或其他什么 所以我把一个看不见的物体放在2块瓷砖的上面,所以如果他在那个看不见的物体里面,他可以按j 问题是,只有当我在碰撞时向右按j时,j才起作用。当我在里面的时候,我需要它工作 void OnTriggerStay2D(Collider2D colisor) { if (Input.GetKeyDown("j") && (colide)) { SceneManager.LoadSc
void OnTriggerStay2D(Collider2D colisor)
{
if (Input.GetKeyDown("j") && (colide))
{
SceneManager.LoadScene(Cena3);
Debug.Log("he's in the last scene");
}
}
void OnTriggerEnter2D(Collider2D colisor)
{
colide = true;
Debug.Log("inside");
}
void OnTriggerExit2D(Collider2D colisor)
{
colide = false;
Debug.Log("Outside");
}
您是否可以使用
ontriggereinter2d
和OnTriggerExit2D
来设置/取消设置标志,然后根据该标志将此逻辑移动到Update
…您所说的标志是什么意思?只是一些布尔字段,没有什么特别的,例如bool IsInside
,然后,您可以检查更新方法中的布尔字段……除了将代码从OnTriggerStay2D
移动到update
方法主体之外,您不再需要OnTriggerStay2D
。
void Update()
{
if (Input.GetKeyDown("j") && colide)
{
SceneManager.LoadScene(Cena3);
Debug.Log("he's in the last scene");
}
}
void OnTriggerEnter2D(Collider2D colisor)
{
colide = true;
Debug.Log("inside");
}
void OnTriggerExit2D(Collider2D colisor)
{
colide = false;
Debug.Log("Outside");
}