Unity Scripts edited in Visual studio don't provide autocomplete

前端 未结 26 1487
半阙折子戏
半阙折子戏 2020-11-22 10:02

When I want to edit C# Unity scripts, they open in Visual Studio. It is supposed to provide auto complete for all Unity related code, but it doesn\'t work.

Here you c

相关标签:
26条回答
  • 2020-11-22 10:26

    For Windows or macOS:

    Download/Install the Visual Studio IDE (with Unity Tools)

    When installing, make sure you include installation of

    Game development with Unity

    Then using Unity (you can double click one of your C# files), open a new C# project and the Visual Studio IDE should open with your new project structure.

    From there, you should be able to see what you are looking for.

    For example:

    For Linux (suggestion):

    Try Monodevelop - Additional Information, it provides code completion/hints.

    0 讨论(0)
  • 2020-11-22 10:26

    Try pressing Ctrl + Alt + Space (which toggles between suggestion and standard completion modes)

    0 讨论(0)
  • 2020-11-22 10:27

    There is no auto-completion because the script says "Miscellaneous Files" instead of the of the name of the Project. Take a look at the image below that came from the video in your question:

    The "Miscellaneous Files" message can happen for many reasons:

    1. It can happen when you open your Unity C# file from another folder instead of opening it from Unity Editor.

    2. This can also happen because Unity crashed while Visual Studio is still open therefore corrupting some files.

    3. It can happen because Unity was closed then re-opened but is no longer connected to Visual Studio. When Visual Studio is opened you get "Miscellaneous Files" and no auto-completion.

    4. This can happen when Visual Studio Tools for unity is not installed.

    5. When you create a script from Unity then quickly open it before Unity finish processing it or before the round icon animation stuff finish animating.


    Most of the times, restarting Unity and Visual Studio should fix this.

    I can't tell which one is causing the problem but I will cover the most likely solution to fix this.

    Fix Part 1:

    1. Download and Install Visual Studio Tools for unity from this link. Do this while Unity and Visual Studio are both closed.

    2. From Unity Editor, go to EditPreferences... → External Tools. On the External Script Editor drop down menu, change that to Visual Studio 2015.


    Fix Part 2:

    If newly created C# files are coming up as Miscellaneous then follow the instruction below:

    1. From Visual Studio, go to ToolsOptions...Tools for UnityMiscellaneous. Under Show connectivity icon, set it to true then restart Visual Studio.

    2. When you re-start, connection icon should now be available in Visual Studio. Click it then choose the Unity instance to connect to. The red 'x' icon should now turn into a brown checkmark icon. Now, when you create a new C# file in Unity, it should open without saying Miscellaneous.


    Fix Part 3:

    Still not fixed?

    Re-import project then open C# Project.

    1. Close Visual Studio.

    2. From Unity, re-import project by going to AssetsReimport All.

    3. Now, open the project in Visual Studio by going to AssetsOpen C# Project. This will reload the project and fix possible solution file problems.


    Fix Part 4:

    Still not fixed?

    Fix each C# file individually.

    1. Click on Show All Files icon.

    2. Select the script that doesn't do auto-complete then right-click and select Include In Project.


    Fix Part 5:

    Not fixed yet?

    Credit goes to chrisvarnz for this particular solution which seems to have worked for multiple people.

    1. Close Visual Studio

    2. Go your project directory and delete all the generated Visual Studio files.

      These are the files extensions to delete:

      • .csproj
      • .user
      • .sln

      Example:

      Let's say that the name of your Project is called Target_Shoot, these are what the files to delete should look like:

      • Target_Shoot.csproj
      • Target_Shoot.Editor.csproj
      • Target_Shoot.Editor.csproj.user
      • Target_Shoot.Player.csproj
      • Target_Shoot.Player.csproj.user
      • Target_Shoot.sln

      Do not delete anything else.

    3. Double click on the script again from Unity which should generate new Visual Studio file then open Visual Studio. This may solve your problem.


    Fix Part 6:

    If not working, check if you are having this error:

    The "GetReferenceNearestTargetFrameworkTask" task was not found

    1. Install Nuget PackageManager from here.

    2. Restart Visual Visual.

    See this answer for more information.

    0 讨论(0)
  • 2020-11-22 10:28

    i found my solution by creating the .cs file from visual studio itself instead of unity editor

    • right click on project folder in solution explorer
    • add > new item
    • type "unity" on the search field on the top right
    • select "CSharp MonoBehaviour"
    • name your script on the bottom and click Add
    0 讨论(0)
  • 2020-11-22 10:29
    1. Select project in Visual Studio
    2. Click "Refresh" button

    0 讨论(0)
  • 2020-11-22 10:30

    None of the above solutions worked for me. However I opened the ProjectName.CSPROJ file and manually added the new file and it worked like charm

    0 讨论(0)
提交回复
热议问题