code

Visual Studio에서 자동 완성이 작동하지 않음

codestyles 2020. 10. 11. 10:35
반응형

Visual Studio에서 자동 완성이 작동하지 않음


스크립트에 약간의 문제가 있습니다. Visual Studio를 사용하여 Unity 용 C # 스크립트를 작성할 때 메모장에서 작업하는 것처럼 보이며 자동 완성 (정확합니까?) 이 없으며 매우 천천히 작성해야합니다.

비디오를 봐주세요. 시작은 정상적인 상황 (튜토리얼에서)이고 두 번째 부분은 내 문제를 보여줍니다.

문제가있는 비디오

예를 들어 transform수업은 제안이나 자동 완성을 표시하지 않습니다.

문제가있는 이미지 :

여기에 이미지 설명 입력

Unity 버전 : 5.5.2f1
Visual Studio 2015
Visual Studio Tools for Unity가 설치됨


스크립트 에 프로젝트 이름 대신 " 기타 파일 " 이 표시되므로 자동 완성이 없습니다 . 질문의 동영상에서 가져온 아래 이미지를 살펴보세요.

여기에 이미지 설명 입력

" Miscellaneous Files "메시지는 여러 가지 이유로 발생할 수 있습니다.

1. Unity 에디터에서 열지 않고 다른 폴더에서 Unity C # 파일을 열 때 발생할 수 있습니다.

2. Visual Studio가 열려있는 동안 Unity가 충돌하여 일부 파일이 손상 되었기 때문에이 문제가 발생할 수도 있습니다.

3. Unity가 닫혔다가 다시 열렸지만 더 이상 Visual Studio에 연결되어 있지 않기 때문에 발생할 수 있습니다. Visual Studio가 열리면 " Miscellaneous Files "가 표시되고 자동 완성이 없습니다.

4. Visual Studio Tools for Unity 가 설치되지 않은 경우에 발생할 수 있습니다 .

5. Unity에서 스크립트를 생성 한 다음 Unity가 처리를 완료하기 전에 또는 원형 아이콘 애니메이션이 애니메이션을 완료하기 전에 스크립트를 빠르게 엽니 다.


대부분의 경우 Unity와 Visual Studio를 다시 시작하면이 문제가 해결됩니다.

어느 것이 문제의 원인인지 알 수 없지만이 문제를 해결할 가능성이 가장 높은 솔루션을 다룰 것입니다.

파트 1 수정 :

1. 링크 에서 Unity 용 Visual Studio Tools를 다운로드하고 설치합니다 . Unity와 Visual Studio가 모두 닫혀있는 동안 이렇게하십시오.

2 피하여, 유니티 에디터로 이동 편집 -> 환경 설정 ... -> 외부 도구 . 외부 스크립트 편집기 것과 드롭 다운 메뉴를 변경 비주얼 스튜디오 2015 .

여기에 이미지 설명 입력


파트 2 수정 :

새로 생성 된 C # 파일이 Miscellaneous 로 표시되는 경우 아래 지침을 따르십시오.

1 피하여, 비주얼 스튜디오로 이동 도구 -> 옵션 ... -> 유니티 도구 -> 기타 . 아래 보기 연결 아이콘 ,로 설정 true다음 Visual Studio를 다시 시작합니다.

여기에 이미지 설명 입력

2. 다시 시작하면 이제 Visual Studio에서 연결 아이콘을 사용할 수 있습니다. 클릭 한 다음 연결할 Unity 인스턴스를 선택합니다. 이제 빨간색 'x'아이콘이 갈색 체크 표시 아이콘으로 바뀝니다. 이제 Unity에서 새 C # 파일을 만들면 Miscellaneous 라는 말없이 열릴 것 입니다.

여기에 이미지 설명 입력


파트 3 수정 :

아직 해결되지 않았나요?

프로젝트를 다시 가져온 다음 C # 프로젝트를 엽니 다.

1. Visual Studio를 닫습니다.

2 피하여, 단결,로 이동하여 다시 가져 프로젝트 자산 -> 다시 가져 오기 모든 .

여기에 이미지 설명 입력

3 부탁해은,로 이동하여 Visual Studio에서 프로젝트를 열 자산 > - 열기 C # 프로젝트 . 그러면 프로젝트가 다시로드되고 가능한 솔루션 파일 문제가 해결됩니다.

여기에 이미지 설명 입력


파트 4 : 수정 :

아직 해결되지 않았나요?

각 C # 파일을 개별적으로 수정합니다.

1. 모든 파일 표시 아이콘을 클릭 합니다.

여기에 이미지 설명 입력

2. 자동 완성을 수행하지 않는 스크립트를 선택한 다음 마우스 오른쪽 버튼을 클릭하고 프로젝트에 포함을 선택 합니다.

여기에 이미지 설명 입력


파트 5 수정 :

아직 해결되지 않았나요?

여러 사람에게 효과가있는 것으로 보이는이 특정 솔루션에 대한 신용은 chrisvarnz 에 있습니다.

1. Visual Studio 닫기

2. 프로젝트 디렉터리로 이동하여 생성 된 모든 Visual Studio 파일을 삭제합니다.

삭제할 파일 확장자는 다음과 같습니다.

  • .csproj
  • .사용자
  • .sln

예:

프로젝트의 이름이 "Target Shoot" 라고 가정 해 보겠습니다. 삭제할 파일은 다음과 같습니다.

  • 대상 Shoot.csproj
  • 타겟 Shoot.Editor.csproj
  • Target Shoot.Editor.csproj.user
  • Target Shoot.Player.csproj
  • Target Shoot.Player.csproj.user
  • 목표 Shoot.sln

다른 것은 삭제하지 마십시오.

3. Unity 에서 스크립트를 다시 두 번 클릭 하여 새 Visual Studio 파일을 생성 한 다음 Visual Studio를 엽니 다. 이것은 당신의 문제를 해결할 수 있습니다.


파트 6 수정 :

작동하지 않는 경우 다음 오류 가 있는지 확인하십시오 .

"GetReferenceNearestTargetFrameworkTask"태스크를 찾을 수 없습니다.

1 .Install Nuget 패키지 매니저 에서 여기 .

2. Visual Visual을 다시 시작합니다.

자세한 내용은 답변을 참조하십시오.


이 문제를보다 편리한 방법으로 해결하는 또 다른 방법을 찾았습니다.

  1. 솔루션 탐색기에서 손상된 파일을 선택합니다.
  2. 속성을 엽니 다.
  3. "Build Action"필드를 "Compile"에서 "None"으로 전환합니다.
  4. 그런 다음 다시 "컴파일"로 전환합니다.

이로 인해 Unity와 Visual Studio 간의 동기화가 중단됩니다.

다음에 Visual Studio가 프로젝트를 다시로드하면 경고 메시지가 표시됩니다. "삭제"를 클릭하십시오.


Visual Studio에서 프로젝트를 언로드하고 다시로드합니다.

  • 솔루션 탐색기 에서 프로젝트를 마우스 오른쪽 단추로 클릭하십시오.
  • 프로젝트 언로드를 선택하십시오.
  • 프로젝트 다시로드를 선택하십시오.

결정된!

문제가 여러 번 발생하면서이 솔루션이 가장 잘 작동한다는 것을 알았습니다.

출처 : https://alexdunn.org/2017/04/26/xamarin-tips-fixing-the-highlighting-drop-in-your-xamarin-android-projects/


  1. Visual Studio에서 프로젝트 선택
  2. "새로 고침"버튼을 클릭하십시오.

여기에 이미지 설명 입력


오늘 Unity 2017과 함께 Visual Studio 2017 15.4.5를 사용하여 동일한 문제가 발생했습니다.

Visual Studio에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 대상 프레임 워크를 3.5에서 4.5로 변경하여 문제를 해결할 수있었습니다.

이것이 비슷한 시나리오의 다른 사람에게 도움이되기를 바랍니다.


두 가지 대체 옵션 :

수정 1

@singleton이 저를이 방향으로 가리 켰습니다. 프로젝트가 자동 생성되므로 Visual Studio에서 대상을 변경하는 대신 Unity에서 변경해야합니다.

먼저 자동 생성 된 Visual Studio 파일을 삭제합니다. .csproj .user .sln

그런 다음 Unity 내에서 PlayerSettings로 이동하고 'Other Settings'에서 'Scripting Runtime Version'을 Stable 3.5에서 Experimental 4.6으로 변경합니다.

그러나 그것은 나를 위해 그것을 고치지 못했습니다.

수정 2

Unity 관련 코드에 대한 모든 참조가 노란색 경고로 표시되었음을 확인했습니다. 오류 로그를 확인하고이 경우인지 확인하십시오. 특히 다음 오류가 발생하는지 확인하십시오. getreferenceNearestTargetframeworkTask

시도하는 경우 : Visual Studio 설치 관리자를 다시 시작합니다.

빌드 도구 2017에서 수정을 클릭합니다.

"Nuget 대상 및 빌드 작업"이 선택되어 있는지 확인합니다. 유니버설 Windows 플랫폼 개발을 클릭하면 선택해야합니다.


Unity 편집기 대신 Visual Studio 자체에서 .cs 파일을 만들어 내 솔루션을 찾았습니다.

  • 솔루션 탐색기에서 프로젝트 폴더를 마우스 오른쪽 버튼으로 클릭하십시오.
  • 추가> 새 항목
  • 오른쪽 상단의 검색 필드에 "unity"를 입력하십시오.
  • "CSharp MonoBehaviour"를 선택합니다.
  • 하단에 스크립트 이름을 지정하고 추가를 클릭합니다.

제 경우에는 PC에 올바른 .net 버전이 설치되지 않았습니다. 나는 내 PC에 .net 3.5를 설치했고 그것은 나를 위해 일했습니다.


내가 직면 한 문제는 C # 프로젝트가 다른 .NET Framework (4.7.2)를 대상으로하는 반면 Unity 프로젝트는 다른 대상 (.NET 3.5)을 대상으로한다는 것입니다.

Unity에서 타겟을 변경하여이 문제를 해결했습니다.

파일-> 빌드 설정-> 플레이어 설정-> 기타 설정-> API 호환성 수준 : 이미 설치 한 .NET 버전으로 설정합니다 ( 여기에서 .NET 버전 확인 ). 제 경우에는 4.x였습니다.

그 후 Visual Studio가 완벽하게 작동하고 자동 수정도 수정되었습니다.


를 눌러보십시오 Ctrl + Alt + Space(제안과 표준 완료 모드간에 전환).


Windows 또는 macOS의 경우 :

Visual Studio IDE 다운로드 / 설치 (Unity 도구 포함)

설치할 때 다음을 포함해야합니다.

Unity를 사용한 게임 개발

여기에 이미지 설명 입력

그런 다음 Unity를 사용하여 (C # 파일 중 하나를 두 번 클릭 할 수 있음) 새 C # 프로젝트를 열면 Visual Studio IDE가 새 프로젝트 구조로 열립니다.

여기에 이미지 설명 입력

거기에서 찾고있는 것을 볼 수 있어야합니다.

예를 들면 :

여기에 이미지 설명 입력

여기에 이미지 설명 입력

Linux의 경우 (제안) :

시도 Monodevelop을 - 추가 정보는 , 그것은 코드 완성 / 힌트를 제공합니다.


Unity 프로젝트에서 구성된 동일한 버전의 .NET을 WIN에 설치하기로 해결했습니다. (플레이어 설정)


Visual Studio Tools for Unity 가 설치되지 않았기 때문에 자동 완성도 작동하지 않았습니다 . 따라서 설치 후 자동 생성 된 Visual Studio 파일을 삭제하십시오. 다른 사람들은 파일을 다시 열면 문제가 해결되었다고 말했지만 그렇지 않습니다.

The trick is: instead of normally double-clicking the file, you need to open the C# file from Unity by right click and then "Open C# Project".


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


  • Go to Options on the Tools menu and then select Documents in the Environment node. (If Documents does not appear in the list, select Show all settings in the Options dialog box.)
  • Put a tick on "Miscellaneous files in Solution Explorer" and Click OK. (This option displays the "Miscellaneous Files" node in Solution Explorer. Miscellaneous files are files that are not associated with a project or solution but can appear in Solution Explorer for your convenience if you tick this option.)
  • Locate your file in the Solution Explorer under "Miscellaneous Files". Then drag and drop your file to where it should belong and voila! This will copy the file to where you drop it. You may now safely delete the older file under Miscellaneous Files folder if you wish to do so

Credits: https://stackoverflow.com/a/47662523/10471480


In case Scripts folder is not visible:

  • Click on "Show all files" in Solution Explorer
  • Locate the Scripts folder.
  • Right Click on Scripts and select "Include in Project"

What worked me is that I copied all the code inside the broken class and removed that file. Then, I opened an empty file and pasted.

Result: beautiful syntax highlights came back!


Try this,

In Unity Editor Go to Menu, Click on Edit -> Preferences -> External Tools -> External Script Editor. Set it to Visual Studio (your installed version of VS).

Now in Menubar go to Edit -> Project Settings -> Player Settings -> Other Settings -> Under Configuration -> Check API Compatibility Level -> Change it to your installed .Net version. In my case I set it to .Net 4.x

Now if Visual Studio is running already go to Visual Studio, it will ask to reload project. Reload the project. Check if it works, if not close Visual Studio. Now Open cs file from Unity Editor, and now it should work.


Keep in mind that if you are using the ReSharper tool, it will override the IntelliSense and show it's own. To change that, on VS, go to Extensions -> ReSharper -> Options -> IntelliSense -> General then choose Visual Studio and not ReSharper.


Before restarting and/or re-installing VS, First try opening any other of your projects to see if Intellisence works, if it does, then issue probably lies with your current project. First, most probable victim would be the NUGET packages with pending updates. To Fix this,

  1. Right click on references
  2. Proceed to Manage NUGET Packages Under NUGET Packages
  3. proceed to updates Install Updates and recheck Intellisence

이 모든 것을 시도했지만 솔루션 탐색기에서 솔루션을 마우스 오른쪽 단추로 클릭하고 기존 항목을 추가하고 Window의 탐색기에서 C # 어셈블리 파일을 찾아야한다는 것을 알게되었습니다. 이 오류를 일으키는 수많은 문제가있는 것 같습니다. 이것이 가장 간단한 해결책 일 것입니다. Unity에서 스크립트를 두 번 클릭하면 어셈블리가 드래그되지 않는 것 같습니다.

참고 URL : https://stackoverflow.com/questions/42597501/autocompletion-not-working-in-visual-studio

반응형