繁体   English   中英

如何统一启用/禁用玩家移动?

[英]How to enable / disable player movement in unity?

所以,我正在制作一个游戏,其中一个玩家通过按下 shift 来改变对两个角色的控制,所以,当按下 shift 时,玩家 1 的移动被禁用并且玩家 2 脚本被启用,我通过移动来接近这个速度和跳跃达到数字为零,但是当按下 shift 时,什么也没有发生,我该怎么做才能解决这个问题?

顺便说一句,我将 Fire2 设置为“shift”以澄清,并且还关注“CanPlay”变量,因为这是我认为问题所在。

代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class movimento : MonoBehaviour
{

    public bool CanPlay;

    void Update()
    {
        float h = Input.GetAxisRaw("Horizontal");
        float speedY = PlayerRB.velocity.y;

        PlayerRB.velocity = new Vector2(h * speed, speedY);

        if (Input.GetButtonDown("Jump") && Isgrounded == true)
        {
            PlayerRB.AddForce(new Vector2(0, jumpforce));
        }

        if (h > 0 && IsLookLeft == true)
        {
            Flip();
        }
        else if (h < 0 && IsLookLeft == false)
        {
            Flip();
        }

        if (CanPlay = false)
        {
            speed = 0f;
            jumpforce = 0f;
        } 

        if (CanPlay = true)
        {
            speed = 10f;
            jumpforce = 150f;
        }

        if (Input.GetKeyDown("Fire2"))
        {
            CanPlay = !CanPlay;
        }
    }
}


你的 if 有错误。 它应该是:

if (CanPlay == false)
    {
        speed = 0f;
        jumpforce = 0f;
    }

    if (CanPlay == true)
    {
        speed = 10f;
        jumpforce = 150f;
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM