【问题标题】:CS1012´´Too many characters in character literal´´CS1012´´字符文字中的字符过多´´
【发布时间】:2016-02-28 16:29:04
【问题描述】:

我是 C# 的初学者。我在编写我的第一个游戏时遇到错误:字符文字中的字符过多。如何解决?

if (Input.GetAxisRaw('Horizontal') < 0.5f)                
{         
    transform.Translate(new Vector3(Input.GetAxisRaw('Horizontal' * moveSpeed * Time.deltaTime)));
}

【问题讨论】:

标签: c#


【解决方案1】:

我发现有两件事不对。

首先,Input.GetAxisRawstring 作为参数和字符串文字,使用双引号 "" 而不是单引号 ''。单引号用于char 类型。这就是为什么你应该这样做;

Input.GetAxisRaw("Horizontal")

其次,该方法返回float,如果您对此进行一些计算,正确的语法应该是

Input.GetAxisRaw("Horizontal") * moveSpeed * Time.deltaTime

不是

Input.GetAxisRaw('Horizontal' * moveSpeed * Time.deltaTime))

【讨论】:

  • 好吧,至少这是对 字符串乘法运算符的合理解释
  • @Steve 字符串乘法运算符 不错:)
  • 哦,我以为我是原创的,但还有一个问题:Can I “multiply” a string (in C#)?
【解决方案2】:

你应该使用双引号来代替:

if (Input.GetAxisRaw("Horizontal") < 0.5f);
{
    transform.Translate(new Vector3(Input.GetAxisRaw("Horizontal") * moveSpeed * Time.deltaTime));
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-02
    • 1970-01-01
    • 1970-01-01
    • 2013-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-22
    相关资源
    最近更新 更多