统一逐步执行条件

问题描述

当我执行第一个if条件时,它不会检查内部if条件。为什么会这样呢?我正在努力让自己成为用户的关注点。他们可能选择b1,然后再选择b2。或者他们可能选择b2,然后再选择b1。但是,当我尝试先选择b1然后选择b2时,如果条件是他们首先选择b2时,它将自动转到第三个。

private void OnTriggerEnter2D(Collider2D collision)
{
  if (collision.gameObject.CompareTag("b1"))
  {
     transform.GetChild(0).gameObject.SetActive(false);
     transform.GetChild(1).gameObject.SetActive(true);

     if (collision.gameObject.CompareTag("b2"))
     {
        transform.GetChild(1).gameObject.SetActive(false);
        transform.GetChild(3).gameObject.SetActive(true);
      }
  }

  if (collision.gameObject.CompareTag("b2"))
  {
     transform.GetChild(0).gameObject.SetActive(false);
     transform.GetChild(2).gameObject.SetActive(true);

     if (collision.gameObject.CompareTag("b1"))
     {
         transform.GetChild(2).gameObject.SetActive(false);
         transform.GetChild(3).gameObject.SetActive(true);
     }

}

解决方法

当我执行第一个if条件时,它不会检查内部if条件

因为那是不可能的。您说的是“如果标签是b1,如果标签是b2”。标签不能同时是b1或b2。

如果用户稍后选择了b2,则该方法将再次调用并从顶部开始执行。它不只是从上次中断的地方继续。

如果您想要这种行为,则必须添加额外的逻辑,例如跟踪过去与哪些标签发生冲突。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...