脚本即使在播放模式下禁用它也能正常工作

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

问题录屏如下: https://youtu.be/WnFuhhiBS7M

有 2 名玩家。每个都有播放器脚本。该脚本负责跳转功能。

现在当我玩游戏并按下跳跃按钮时,两个玩家都按预期跳跃。 但这就是问题所在。

当我关闭其中一名玩家的脚本然后按下跳跃按钮时,两名玩家仍然跳跃。这怎么可能?

我正在使用以下代码在层次结构中“查找”按钮并将跳转功能分配给按钮:

查找按钮

private void Start() {
        characterColliderTrigger = transform.GetComponentInChildren<BoxCollider2D>();
        characterCollider = transform.GetComponent<BoxCollider2D>();

        GameObject[] movementButtons = GameObject.FindGameObjectsWithTag("MovementButtons");
        foreach (GameObject buttonObject in movementButtons)
        {
            Button button = buttonObject.GetComponent<Button>();
            if (button != null)
            {
                if (button.name == "MoveLeftButton")
                {
                    MoveLeftButton = button;
                }
                else if (button.name == "MoveRightButton")
                {
                    MoveRightButton = button;
                }
                else if (button.name == "JumpButton")
                {
                    JumpButton = button;
                }
            }
        }

        StartCoroutine(AssignButtons());
    }

分配按钮

IEnumerator AssignButtons()
    {
        yield return new WaitForSeconds(0.5f);
    //JUMP BUTTON
        EventTrigger jumpEventTrigger = JumpButton.gameObject.AddComponent<EventTrigger>();
        EventTrigger.Entry jumpPointerDown = new EventTrigger.Entry();
        jumpPointerDown.eventID = EventTriggerType.PointerDown;
        jumpPointerDown.callback.AddListener((data) => { Jump(); });
        jumpEventTrigger.triggers.Add(jumpPointerDown);
    
    }

跳跃功能

public void Jump()
    {
        if(canJump && !someoneOnTop)
        {
            rb.velocity = new Vector2(rb.velocity.x,25);
            canJump = false;
        }
    }
unity3d game-physics game-development
© www.soinside.com 2019 - 2024. All rights reserved.