首页 > 解决方案 > Unity 播放器控制器脚本不起作用

问题描述

我正在尝试制作一个有玩家的游戏,一旦你点击他就可以控制他。如果您再次单击他,您将无法再控制他,但这不起作用。

C#:

{
    private float verticalInput;
    private float horizontalInput;
    private float speed = 20f;
    private Vector3 movement;
    private bool mouseClicked = false;

    // Update is called once per frame.
    void Update() {
        verticalInput Input.GetAxisRaw("Vertical");
        horizontalInput = Input.GetAxisRaw("Horizontal");
        movement = new Vector3(verticalInput, o, -horizontalInput);
        if (mouseClicked) {
            transform. Translate (movement * speed * Time.deltaTime);
        }
    }

    void OnMouseDown() {
        if (mouseClicked = false) {
            mouseClicked = true;
        } else if (mouseClicked) {
            mouseClicked =false;
        }
    }

标签: c#unity3dvisual-studio-code

解决方案


if 语句的条件错误。你忘了再加一个=

更改if(mouseClicked = false)if(mouseClicked == false)应该工作。对于您的错误代码,mouseClicked将永远不会更改,因为mouseClicked = false将始终false在 if 条件下进行评估。

你不需要写这个多余的 if-else。只需这样做:

mouseClicked = !mouseClicked;

推荐阅读