已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题吗?**通过editing this post添加详细信息并阐明问题。
去年关闭了。
Improve this question
public const ??? jump = Input.GetKey(KeyCode.Space);
用什么来替换问号?
已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题吗?**通过editing this post添加详细信息并阐明问题。
去年关闭了。
Improve this question
public const ??? jump = Input.GetKey(KeyCode.Space);
用什么来替换问号?
3条答案
按热度按时间66bbxpm51#
正如this answer已经解释得完全正确:不管是什么类型(
bool
)你都不能!您不能简单地将一个在runtime上确定的方法返回值赋给一个
const
,它需要是编译时常量。然而,如果我没有完全错的话,您的实际目标似乎是为该调用提供某种快捷方式别名。
在这种情况下,您可以使用property,如
然后到处使用,例如
得双曲余切值.
如果这有任何进一步的使用超过只是使用
Input.GetKey(KeyCode.Space)
虽然是非常值得怀疑的...oknwwptz2#
Input.GetKey
和所有相关的方法都是bool
类型,它们告诉你 * 在特定的帧上 * 是否按下了某个键。你不能将它们赋给常量,因为常量必须在编译代码时定义,你不能将任何变量或方法赋给常量。如果你去掉常量,只写
public bool jump
,那么你会得到一个变量,它被设置成你赋予它的帧上的Input.GetKey
,所以要么它永远不会改变,要么它只是一个额外的操作,做的和写Input.GetKey()
一样的事情。你说你希望能够从另一个类调用它,但是你可以从任何地方调用
Input
方法,它们是静态的。如果你试图同步当你在脚本之间按下空格键时发生的事情,那么你可以在两个脚本的Update
方法中选中Input.GetKey
。所有的更新都会运行每个激活脚本的每个帧,所以他们看到的Input
的值总是相同的。rsaldnfx3#
我已经检查了方法的签名。它是
公共静态bool GetKey(字符串名称)
所以我会告诉你,你错过了一个布尔类型来代替???:)