如何解决统一逐步执行条件
当我执行第一个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,则该方法将再次调用并从顶部开始执行。它不只是从上次中断的地方继续。
如果您想要这种行为,则必须添加额外的逻辑,例如跟踪过去与哪些标签发生冲突。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。