【问题标题】:How can I see the actual code used in a C# library?如何查看 C# 库中使用的实际代码?
【发布时间】:2023-02-24 02:41:27
【问题描述】:

我想要一个名为的库中使用的实际代码:

使用 UnityEngine.Advertisements;

查看

但是当我按下 Ctrl+Enter 时

只定义了方法而不是它们的代码,例如:

        public static void Initialize(string gameId, bool testMode);

你能看到使用的原始代码吗?

【问题讨论】:

  • bing.com/search?q=c%23+decompiler+visual+studio 找到了一些工具......不太确定你用什么来编辑代码,所以很难提出任何具体的建议。
  • 如果代码已编译则不会。您可以尝试使用反编译器对其进行逆向工程(可能违反他们的 EULA),但这仍然不会为您提供确切的原始源代码。
  • @DaveS “代码已被编译”与在调试/浏览代码时能够看到匹配的原始代码之间确实没有关联......授予原始代码需要可用并与程序集正确关联,就像它完成的那样.Net 代码本身。

标签: c# unity3d unityads


【解决方案1】:

Unity 是一个具有 C# 层的 C++ 引擎。

许多 C# 库代码实际上只是一种允许游戏制作者访问该 C++ 代码的方式。所以简而言之,您将无法查看大部分实际代码。我说“实际”,因为在 C# 中还有一些逻辑处理引擎的“结果”(缺少更好的词)部分。

此外,无论如何,有关 Unity 服务的代码大部分都在服务器上。大厅管理和货币化之类的事情在服务器端进行,C#(可能还有 C++)客户端只处理游戏和 Unity 服务器之间的交互。

这也适用于 .NET、Mono、Java 等。例如,即使您获得了反编译器并解压了大部分库,您也不会看到返回运行它的当前操作系统用户名的代码,因为它位于本机层。 这类似于 UnrealEngine 1、2 和 3 游戏采用的相同方法,当您可以访问 UnrealScript 代码时,它的一部分在 C++ 中调用本机函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-15
    • 2013-12-03
    • 2023-04-01
    • 2010-12-17
    • 2011-05-23
    • 1970-01-01
    • 2018-10-08
    • 1970-01-01
    相关资源
    最近更新 更多