【问题标题】:Operator '&&' cannot be applied to operands of type 'bool' and 'void [closed]运算符“&&”不能应用于“bool”和“void”类型的操作数 [关闭]
【发布时间】:2021-09-14 15:06:34
【问题描述】:

unity3d 出现错误, 这是代码的一部分:

        if (Input.GetKey(KeyCode.Tab) && OpenInventory() = true)
    {
        CloseInventory();
    }

我关注了一些关于堆栈溢出和unityanswers的问题,我尝试了这个,

        if (Input.GetKey(KeyCode.Tab) && OpenInventory() == true)
    {
        CloseInventory();
    }

现在它得到了错误: 不能应用于“void”和“bool”类型的操作数 有人可以帮我吗?谢谢!

【问题讨论】:

  • 什么是OpenInventory?请提供其代码。

标签: c# unity3d


【解决方案1】:

如果 OpenInventory() 返回 void(例如 void OpenInventory() { ...}),则您无法将其与布尔值进行比较。确保 OpenInventory() 返回 bool 并且您的代码可以正常工作。

【讨论】:

  • void OpenInventory() { Cursor.visible = true; Cursor.lockState = CursorLockMode.None;这就是 openinveotry() 是什么
  • OpenInventory 的目的是什么?似乎您正在尝试在关闭库存之前检查库存是否处于打开状态,但您的 OpenInventory 方法并不代表库存的状态。我建议创建一个表示库存是否打开的新属性,然后您可以将您的 OpenInventory() == true 检查替换为 IsInventoryOpen 和一个隐式的真实检查。然后,在每个 OpenInventory() 和 CloseInventory() 方法中,将 IsInventoryOpen 设置为正确的状态值。
  • 对不起,我是编程 idk 的新手,你的意思是什么,你能给我举个例子吗?谢谢!
  • void 表示您的方法 OpenInventory() 不返回任何内容,但您正尝试将其与布尔值 true 进行比较。关于属性,我建议您多阅读/观看 C# 语言,并按照一些教程开始。 Here is a guide to properties.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-21
  • 1970-01-01
  • 1970-01-01
  • 2015-01-25
  • 2011-04-03
  • 2014-10-13
  • 1970-01-01
相关资源
最近更新 更多