首页 > 解决方案 > Sublime 不会自动完成统一代码

问题描述

我决定在统一的 Windows 编程中使用 sublime text 3。根据这段视频,我正确安装了所有东西:https ://youtu.be/z7na1MuMDRg 。也就是我安装了 Mono、Omnisharp、unity3d 包。c# 代码突出显示并自动完成,统一语法也突出显示,但不是自动完成。为什么?根据教程,一切都应该工作。

标签: c#unity3dsublimetext3

解决方案


注意:在阅读本说明时,我将 Sublime Text 3 称为“Sublime”

先决条件:

- 下载并安装 Unity。

-已经创建了一个您愿意分配给这些指令集的 Unity 3D 项目。

- 这个 Unity 3D 项目最好是一个测试项目,以免破坏重要的东西。

请小心并严格按照说明进行操作。您可能会在此过程中遇到问题,但请尽可能坚持!

  1. 下载并安装适用于 OS X/Windows 的 Sublime Text 3

  2. 使用官方网站下载最新版本的 Mono 包(请勿使用 Homebrew!)。该链接转到 windows 下载,因此如果您有一台 32 位计算机,请从 32 位链接下载,反之亦然。

  3. 对于第 2 步,如果您有 mac,请单击 macOS 并下载 Visual Studio 频道(我没有尝试过稳定频道,也不打算尝试,应该可以)。

  4. 一旦您认为 Mono 已完全安装,请通过命令提示符(windows)或终端(mac)检查 Mono 是否实际存在于本地。

  5. 为此,在 Mac/Windows 中,您可以在终端或命令提示符下键入mono以查看文件结构,这应该很好。如果您更习惯使用 finder 或文件资源管理器,请在您的计算机中使用 find mono。

  6. 提醒 - 查找终端或命令提示符,使用聚光灯功能搜索(mac - cmd+空格),或搜索应用程序功能(Windows 10 - 右下角)

  7. 在 Sublime Text 编辑器中,按 cmd+shift+p 或 ctrl+shift+p 键的顺序打开命令面板。(您可以随时单击 esc 键退出调色板)。键入 Install Package Control,然后按 enter(Mac 上的返回键)。

  8. 退出 Sublime 并再次打开它。这将刷新更改。

  9. 再次打开命令面板并输入Package Control: Install Package

  10. 输入,然后输入Unity3D并按 Enter。

  11. 重复步骤 6 和 7 以安装OmnisharpUnity3D Shader Highlighter 以及 SnippetsTabnine

(Omnisharp 是一个工具包和系统,允许 c# 错误检查和自动完成等。我们需要 mono,这就是我们之前安装它的原因)

(Tabnine 是一个很棒的基于人工智能的工具,据我所知,它会分析您编写的代码,并根据您拥有的内容快速得出可以添加的方法和属性。在这种情况下,它会立即知道语法是基于 Unity 的 C#方法。它迎合了 Sublime 真是太棒了,而且它对我们需要的东西是免费的!)

  1. 完成安装这些软件包后,退出(完全)并刷新 Sublime。当您重新打开 sublime 时,您应该会看到一个空白的无标题文件。如果没有,只需创建一个新文件,就可以了。

  2. 单击“文件”>“打开”>“您的 Unity 项目文件夹”>“打开”(这是基于 Mac 的 - 窗口应该是不言自明的)

  3. 您应该会看到所有资产和脚本文件夹,但您面前会有一个空白的未经编辑的文本文件。单击另存为并将此文件命名为“SLN_PROJECT_NAME”.sublime-editor(下一句更多)。理想情况下,您的 Unity 项目文件夹中应该有一个 YOUR_PROJECT_NAME.sln 文件,因此请将提供的“SLN_PROJECT_NAME”重命名为 YOUR_PROJECT_NAME。

  4. 保存刚刚重命名的 .sublime-project 文件并将其放入Unity 项目的Library文件夹中

  5. 进入 Sublime 中的“SLN_PROJECT_NAME”.sublime-editor 文件并粘贴以下文本(您需要为您在 Sublime 中移植的每个 Unity 项目执行此操作):

    {
     "folders":
     [
      {
      "follow_symlinks": true,
      "path": "Assets/Scripts",
       "file_exclude_patterns":
       [
        "*.dll",
        "*.meta"
       ]
      }
     ],
     "solution_file": "./ProjName.sln"
    }
    
  6. 从您正在使用的统一文件夹中将 ProjName 部分更改为您正在使用的 .sln 的确切名称(类似于您创建该无标题文件以将其写入其中时)。

  7. 关闭 Sublime 并退出。在 Unity 中打开你想要使用 Sublime 的项目

  8. 单击 Unity > Preferences > External Script Editor > 将脚本编辑器更改为 Sublime Text Application(Mac) 或 Sublime Text .exe(Windows)

  9. 在 Unity Preferences 选项卡中,找到 External Script Editor Args,其右侧有一个文本框。将 "$(File)":$(Line) 粘贴到其中。

  10. 关闭 Unity 并在 Sublime Text 3 中重新打开您的 Unity 项目。现在在 Sublime Text 3 窗口的底部,您应该(理想情况下)看到类似“Omnisharp Server Starting”或“Omnisharp Project Loaded”之类的内容,并写有“Tabnine”在它的旁边。

一个好主意是单击 Sublime Text > Preferences > Settings - Syntax Specific 并粘贴以下文本以允许在标点符号后自动完成。

{
    "auto_complete": true,
    "auto_complete_selector": "source - comment",
    "auto_complete_triggers":
    [
        {
            "characters": ".<",
            "selector": "source.cs"
        }
    ],
    "extensions":
    [
        "cs"
    ]
}

现在,您应该能够使用错误检测工具获得无缝代码完成,而无需Omnisharp 覆盖 Unity 特定方法。


推荐阅读