【问题标题】:Fix compiler error with ; expected always etc用 ; 修复编译器错误总是期望等
【发布时间】:2017-02-27 19:05:53
【问题描述】:

我真的需要帮助来解决这个问题,但我不知道如何解决这个问题 代码

namespace ns0
{
using System;
using UnityEngine;

public sealed class GClass2
{
    private static System.Random random_0 = new System.Random();
    private static string string_0 = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

    public static string smethod_0(int int_0, int int_1)
    {
        string str = "";
        int num = random_0.Next(int_0, int_1);
        for (int i = 0; i < num; i++)
        {
            int index = random_0.Next(string_0.Length - 1);
            str = str + string_0.ToCharArray()[index];
        }
        return str;
    }

    public static Texture2D smethod_1(float float_0, float float_1, float float_2, float float_3)
    {
        Texture2D textured = new Texture2D(1, 1);
        textured.SetPixel(0, 0, new Color(float_0, float_1, float_2, float_3));
        textured.Apply();
        return textured;
    }

    public static Vector3 smethod_2(Vector3 vector3_0, Vector3 vector3_1, Quaternion quaternion_0) =>
        (((Vector3) (quaternion_0 * (vector3_0 - vector3_1))) + vector3_1);
}
}

错误在一行

public static Vector3 smethod_2(Vector3 vector3_0, Vector3 vector3_1, Quaternion quaternion_0) =>
    (((Vector3) (quaternion_0 * (vector3_0 - vector3_1))) + vector3_1);

where => character is then there is always ;预期错误 还有其他错误

错误 12 找不到类型或命名空间名称“vector3_1”(您是否缺少 using 指令或程序集引用?) C:\Users\user\Desktop\spoofid1\MonoInjector\GClass21.cs 32 54 managed

找不到vector3_0和vector3_1和quaternion_0 还有

类、结构或接口成员声明中的标记“)”无效
相同的错误,但带有 '-' 和 '('

【问题讨论】:

  • Unity 不适用于 C# 6.0+,您必须重做您的方法才能不使用 lambda 表达式。
  • 表达式体函数成员是 C# 6.0 中引入的一项新功能。尝试将smethod_2 重写为常规方法。 编辑: 他说了什么。
  • 将其编辑为 'public static Vector3 smethod_2(Vector3 vector3_0, Vector3 vector3_1, Quaternion quaternion_0) { return quaternion_0 * (vector3_0 - vector3_1) + vector3_1; }' 并修复了问题

标签: c# unity3d


【解决方案1】:

您不能在 Unity 项目中使用 C# 6.0,除非您将使用第三方插件 https://bitbucket.org/alexzzzz/unity-c-5.0-and-6.0-integration/src

引用以上链接:

我可以在 Unity 中使用 C# 5/6/7 吗?

是的,你可以。

Unity 已经坚持使用 CLR 2.0 很长时间了,但几乎所有最新的 C# 功能都不需要最新版本的 CLR。如果您明确要求 Microsoft 和 Mono 编译器为 CLR 2.0 编译 C# 5/6/7 代码,他们可以这样做。 C# 4.0 附带的后期绑定(动态)功能在 Unity 中仍然不可用。

要让您的代码在 C# 3 中运行,您需要更改方法 smethod_2

public static Vector3 smethod_2(Vector3 vector3_0, Vector3 vector3_1, Quaternion quaternion_0) 
{ 
    return (((Vector3) (quaternion_0 * (vector3_0 - vector3_1))) + vector3_1);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-23
    • 1970-01-01
    • 2021-11-17
    • 1970-01-01
    相关资源
    最近更新 更多