问题录屏如下: 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;
}
}