当两个不同的玩家对象同时在门的触发器内时,如何更改场景?

时间:2018-11-05 11:57:51

标签: c# unity3d scene-manager

有些玩家GameObjects必须具有不同的标签:“ Player1”和“ Player2”。有一个门GameObject,如果两个玩家都在门的触发器内,则场景将发生变化。

1 个答案:

答案 0 :(得分:0)

您可能有2个布尔值,每个玩家一个,在进入门锁时会变为true,在退出时会变为false。

然后在脚本的Update()中,包含一个if语句,当两个布尔值都为true时执行SceneManager功能。

希望我回答了您的问题,这是我制作的脚本,并在以下情况下测试了您的情况:

public class DoorController : MonoBehaviour {

    bool p1IsTouching = false;
    bool p2IsTouching = false;

    void Update() {
        if (p1IsTouching && p2IsTouching) {
            //do SceneManager stuff
        }
    }

    void OnTriggerEnter2D(Collider2D other) {
        if (other.gameObject.tag == "Player1") { p1IsTouching = true; }
        if (other.gameObject.tag == "Player2") { p2IsTouching = true; }
    }

    void OnTriggerExit2D(Collider2D other) {
        if (other.gameObject.tag == "Player1") { p1IsTouching = false; }
        if (other.gameObject.tag == "Player2") { p2IsTouching = false; }
    }
}