Visual Studio에서 자동 완성 기능이 작동하지 않습니다


151

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

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

문제가있는 비디오

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

문제가있는 이미지 :

여기에 이미지 설명을 입력하십시오

Unity 버전 : 5.5.2f1
Visual Studio 2015
Unity 용 Visual Studio 도구가 설치되었습니다.


1
translate.google.com :) 오류 +1 xd를 설명하기 위해 동영상을 제작하고 YouTube에 업로드
Timon Post

좋아, ll try... I have a Little problem with scripts. When IVisual Studio에서 Unity 용 C # 스크립트를 작성하는 사람은 메모장에서 작업하는 것처럼 보이며 "팁"(올바른?)이 없으며 매우 느리게 작성해야합니다. 비디오를 봐주세요. 시작시 정상적인 상황입니다 (튜토리얼에서), 두 번째 부분은 내 문제입니다.
CorbenDalas

1
툴팁이 아닌 '자동 완성'에 대해 묻는다고 말하고 싶습니다.
Martijn Pieters

어떤 Visual Studio 버전과 어떤 Unity 버전입니까?
프로그래머

Unity 버전 : 5.5.2f1 / Visual Studio 2015 / Unity 용 Visual Studio 도구가 설치됨
CorbenDalas

답변:


342

스크립트 가 프로젝트 이름 대신 " 기타 파일 " 이라고 표시하기 때문에 자동 완성 기능이 없습니다 . 질문의 비디오에서 나온 아래 이미지를 살펴보십시오.

여기에 이미지 설명을 입력하십시오

" 기타 파일 "메시지는 여러 가지 이유로 발생할 수 있습니다.

1. Unity 에디터에서 파일을 여는 대신 다른 폴더에서 Unity C # 파일을 열면 발생할 수 있습니다.

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

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

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

5. Unity에서 스크립트를 생성하면 Unity가 처리를 완료하기 전에 또는 원형 아이콘 애니메이션이 애니메이션 처리를 완료하기 전에 빠르게여십시오.


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

어느 쪽이 문제를 일으키는 지 알 수 없지만이 문제를 해결하기위한 가장 가능성있는 해결책을 다룰 것입니다.

파트 1 수정 :

1. 링크 에서 통일위한 Visual Studio 도구를 다운로드하여 설치 하십시오. Unity와 Visual Studio가 모두 닫힌 상태에서이 작업을 수행하십시오.

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

여기에 이미지 설명을 입력하십시오


수정 파트 2 :

새로 만든 C # 파일이 Miscellaneous 로 나오면 아래 지침을 따르십시오.

1 피하여, 비주얼 스튜디오로 이동 도구 -> 옵션 ... -> 유니티 도구 -> 기타 . 연결 아이콘 표시 아래에서 trueVisual Studio를 다시 시작 하도록 설정하십시오 .

여기에 이미지 설명을 입력하십시오

2. 다시 시작할 때 Visual Studio에서 연결 아이콘을 사용할 수 있습니다. 클릭 한 다음 연결할 Unity 인스턴스를 선택하십시오. 빨간색 'x'아이콘이 이제 갈색 확인 표시 아이콘으로 바뀌어야합니다. 이제 Unity에서 새 C # 파일을 만들 때 Miscellaneous 라고 말하지 않고 파일을 열어야 합니다.

여기에 이미지 설명을 입력하십시오


수정 부분 3 :

여전히 수정되지 않았습니까?

프로젝트를 다시 가져온 다음 C # 프로젝트를여십시오.

1. Visual Studio를 닫습니다.

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

여기에 이미지 설명을 입력하십시오

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

여기에 이미지 설명을 입력하십시오


파트 4 수정 :

여전히 수정되지 않았습니까?

각 C # 파일을 개별적으로 수정하십시오.

1 에 .Click 모든 파일 표시 아이콘입니다.

여기에 이미지 설명을 입력하십시오

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

여기에 이미지 설명을 입력하십시오


수정 부분 5 :

아직 수정되지 않았습니까?

크레딧은 여러 사람에게 효과가 있었던 것으로 보이는이 특정 솔루션에 대해 chrisvarnz 에게 갑니다 .

1. Visual Studio 닫기

2. 프로젝트 디렉토리로 이동하여 생성 된 모든 Visual Studio 파일을 삭제하십시오.

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

  • .csproj
  • .사용자
  • .sln

예:

프로젝트 이름이 "Target Shoot" 이고 다음과 같은 파일을 삭제해야합니다.

  • 대상 Shoot.csproj
  • 대상 촬영. 편집기 .csproj
  • 대상 촬영. 편집기 .csproj.user
  • 대상 촬영 .Player.csproj
  • 대상 촬영 .Player.csproj.user
  • 대상 촬영 .sln

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

3. Unity 에서 스크립트를 다시 두 번 클릭 하면 새 Visual Studio 파일이 생성되고 Visual Studio가 열립니다. 문제가 해결 될 수 있습니다.


수정 부분 6 :

작동하지 않으면 오류 가 있는지 확인하십시오 .

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

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

2. Visual Visual을 다시 시작하십시오.

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


4
기타 파일 포인터에 감사드립니다! VS를 닫고 VS 프로젝트와 sln을 삭제 한 다음 Unity에서 스크립트를 두 번 클릭 (따라서 프로젝트 파일을 재생성하고 VS를 다시 열 때)하여 해결했습니다. "모두 다시 가져 오기"버튼을 사용하기 전에 평범하지 않은 프로젝트의 점심 / 밤 시간에 시도해 보는 것이 좋습니다.
chrisvarnz

2
좋은 조언입니다. 이것을 읽는 사람이라면
프로그래머

이것은 대부분 새 스크립트를 생성하거나 Unity 내의 다른 폴더로 이동하여 발생합니다. 다시 시작 유니티와 VS가 해결되지 않을 때마다, 나는 simoly 또한 삭제 *.csproj*.sln파일과보다 유니티를 시작합니다. 이것은 일반적으로 작동합니다
derHugo

1
@ chrisvarnz 솔루션은 이러한 다른 제안을 모두 시도한 후에 저에게 효과적이었습니다.
gollumullog

1
@gollumullog 좋아요. 그것이 여러 사람들에게 효과가 있었기 때문에 나는 그것을 포함하도록 내 대답을 업데이트했습니다.
프로그래머

38

이 시도,

Unity 에디터에서 메뉴로 이동하여 편집-> 환경 설정-> 외부 도구-> 외부 스크립트 편집기를 클릭하십시오. Visual Studio (설치 한 VS 버전)로 설정하십시오.

이제 메뉴 표시 줄에서 편집-> 프로젝트 설정-> 플레이어 설정-> 기타 설정-> 구성-> API 호환성 수준 확인-> 설치된 .Net 버전으로 변경하십시오. 필자의 경우 .Net 4.x로 설정했습니다.

Visual Studio가 이미 실행중인 경우 Visual Studio로 이동하면 프로젝트를 다시로드하라는 메시지가 표시됩니다. 프로젝트를 다시로드하십시오. Visual Studio를 닫지 않으면 작동하는지 확인하십시오. 이제 Unity Editor에서 cs 파일을 열면 작동합니다.


저도 마찬가지입니다. 감사합니다! 모든 것을 시도했지만 이것 만 수정했습니다.
Shadowmak

1
이것이 실제 답변입니다. 맨 위에 있어야합니다!
Mark Purnell

이것은 나에게도 효과가있었습니다. 또한 Unity 2020.2.0a13에서 한 가지 추가 작업은 선택 취소하고 편집 / 프로젝트 설정 / 플레이어 / 기타 설정 : 자동 그래픽 API에서 마크를 다시 확인하십시오. Visual Studio를 다시 시작한 후 자동 완성이 다시 시작되었습니다 .D
Ant100

14

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

  1. 솔루션 탐색기에서 손상된 파일을 선택하십시오.
  2. 속성을여십시오.
  3. "빌드 조치"필드를 "컴파일"에서 "없음"으로 전환하십시오.
  4. 그런 다음 다시 "컴파일"로 전환하십시오.

이것은 어떻게 든 Unity와 Visual Studio 간의 동기화를 중단시킵니다.

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


7

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

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

결정된!

이 솔루션이 문제를 여러 번 실행하면서 가장 잘 작동하는 것으로 나타났습니다.

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


도와 주셔서 감사합니다! 이것은 효과가 있었지만 90 년대로 돌아가서 Windows를 다시 시작해야한다고 생각합니다. 이번에는 VS 2017입니다.
user3053247

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

여기에 이미지 설명을 입력하십시오


1
우와! 다른 도움은 없었습니다. VS를 다시 설치하고 Unity를 다시 설치하여 VS를 다시 설치하여 .sln 및 .cjsproj 파일을 삭제하여 다시 생성했습니다. 아무것도 도움이되지 않았습니다 .. 그러나 마침내 폴더를 보여주기 위해 솔루션 탐색기에서 간단한 클릭은 그것을하는 것처럼 보였다 : o
antont

3

위의 모든 작업을 수행했지만 여전히 작동하지 않는 경우 다음을 시도하십시오. 참고 : VS를 업데이트해야합니다. Visual Studio의 스크린 샷

Unity> 편집> 환경 설정> 외부 도구> 외부 스크립트 편집기로 이동하십시오. 유니티 스크린 샷 어쨌든 나는 외부 스크립트 편집기로 "visual studio"를 선택하지 않았고 작동하지 않았습니다. 내가 이것을 선택하고 unity에서 c # 파일을 두 번 클릭하자마자 작동하기 시작했습니다.

나는 그것이 당신에게도 도움이되기를 바랍니다.


2

Unity 2017에서 Visual Studio 2017 15.4.5를 사용하여 오늘도 같은 문제가 발생했습니다.

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

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


2

두 가지 대안 옵션 :

수정 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 Installer를 다시 시작하십시오.

Build Tools 2017에서 수정을 클릭합니다.

"너겟 대상 및 빌드 작업"이 선택되어 있는지 확인하십시오. Universal Windows Platform 개발을 클릭하면이 표시가 나타납니다.


1

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

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

1
이미 스크립트를 작성했지만 갑자기이 문제가 발생하면 모든 스크립트를 삭제하고 Visual Studio에서 다시 작성 하시겠습니까?
프로그래머

@Programmer 잘 난 이미 오류가 스크립트를 해결하기 위해 제 4 부 솔루션을 사용 싶지만 솔루션 중 누구도 내가 비주얼 스튜디오에서 파일을 생성하지 않는 오류가 발생에서 새 스크립트를 중단하지 않기 때문에 나는 항상 새로운 스크립트를 생성하는 비주얼 스튜디오를 사용
프레디 Rommy을 Sianturi

1

제 경우에는 올바른 .net 버전이 PC에 설치되지 않았습니다. 내 PC에 .net 3.5를 설치하면 효과가 있습니다.


귀하의 답변에 따라 Unity Player 설정의 API 호환성 수준을 .Net 2.0에서 .Net 4.x로 변경하라는 아이디어가 나왔습니다. 그런 다음 Visual Studio에서 프로젝트를 다시로드하십시오. 이제 모든 것이 잘 작동합니다.
Juned Khan Momin

1

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

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

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

그 후 Visual Studio는 완벽하게 작동했으며 자동 고침도 수정되었습니다.


이것은 나를 위해 일했습니다. API Compatibilty Level을 .Net 4.x로 변경 한 다음 Visual Studio에서 프로젝트를 다시로드하도록 요청했습니다. 프로젝트를 다시로드했습니다. 그런 다음 Visual Studio를 닫고 Unity 편집기에서 열린 cs 파일을 열면 모든 것이 잘 작동합니다.
Juned Khan Momin 2016 년


0

Windows 또는 macOS의 경우 :

Unity 도구와 함께 Visual Studio IDE 다운로드 / 설치

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

Unity를 통한 게임 개발

여기에 이미지 설명을 입력하십시오

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

여기에 이미지 설명을 입력하십시오

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

예를 들면 다음과 같습니다.

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

Linux의 경우 (제안) :

Monodevelop - Additional Information을 사용해보십시오 . 코드 완성 / 힌트를 제공합니다.


0

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


0

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

트릭은 : 일반적으로 파일을 두 번 클릭하는 대신 마우스 오른쪽 단추를 클릭 한 다음 "Open C # Project"를 통해 Unity에서 C # 파일을 열어야합니다.


0

위의 해결책 중 어느 것도 나를 위해 일하지 않았습니다. 그러나 ProjectName.CSPROJ 파일을 열고 수동으로 새 파일을 추가했으며 매력처럼 작동했습니다.


0
  • 도구 메뉴에서 옵션으로 이동 한 다음 환경 노드에서 문서를 선택하십시오. 문서가 목록에 없으면 옵션 대화 상자에서 모든 설정 표시를 선택하십시오.
  • "솔루션 탐색기의 기타 파일"에 체크 표시를하고 확인을 클릭하십시오. 이 옵션은 솔루션 탐색기에 "기타 파일"노드를 표시합니다. 기타 파일은 프로젝트 또는 솔루션과 관련이 없지만이 옵션을 선택하면 편의를 위해 솔루션 탐색기에 나타날 수있는 파일입니다.
  • 솔루션 탐색기에서 "기타 파일"아래에서 파일을 찾으십시오. 그런 다음 파일을 원하는 위치로 끌어다 놓으십시오. 파일을 놓은 위치로 파일이 복사됩니다. 원하는 경우 기타 파일 폴더 아래에서 이전 파일을 안전하게 삭제할 수 있습니다.

크레딧 : https://stackoverflow.com/a/47662523/10471480


스크립트 폴더가 보이지 않는 경우 :

  • 솔루션 탐색기에서 "모든 파일 표시"를 클릭하십시오
  • 스크립트 폴더를 찾으십시오.
  • 스크립트를 마우스 오른쪽 버튼으로 클릭하고 "프로젝트에 포함"을 선택하십시오.

0

내가 일한 것은 깨진 클래스 내부의 모든 코드를 복사하고 해당 파일을 제거했다는 것입니다. 그런 다음 빈 파일을 열고 붙여 넣었습니다.

결과 : 아름다운 구문 하이라이트가 다시 나타났습니다!


0

ReSharper 도구를 사용하는 경우 IntelliSense를 재정의하고 자체 도구를 표시합니다. VS에서 변경하려면 확장-> ReSharper-> 옵션-> IntelliSense-> 일반으로 이동 한 다음 ReSharper가 아닌 Visual Studio를 선택하십시오.


0

VS를 다시 시작하거나 다시 설치하기 전에 먼저 다른 프로젝트를 열어 인텔리전스가 작동하는지 확인하고 문제가있는 경우 현재 프로젝트에 문제가있을 수 있습니다. 첫째, 가장 가능성있는 피해자는 업데이트가 보류중인 NUGET 패키지 일 것입니다. 이 문제를 해결하려면

  1. 참조를 마우스 오른쪽 버튼으로 클릭
  2. NUGET 패키지에서 NUGET 패키지 관리를 진행하십시오
  3. 업데이트 설치를 진행하고 Intellisence를 다시 확인하십시오.

0

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


0

위의 방법 중 하나가 저에게 효과적이며 방금이 문제에 대한 해결책을 찾았습니다
. 1. 먼저 프로젝트 디렉토리로 이동하여 .sln파일을 삭제 하십시오
. 2. 둘째, unity로 이동하여 스크립트를 두 번 클릭하십시오. 그런 다음 Visual Studio가 오류와 함께 열립니다. 여기에 이미지 설명을 입력하십시오

  1. 그런 다음 확인을 클릭하고 Visual Studio 편집기를 닫습니다.
  2. 마지막으로 Windows Defender를 끄고 프로젝트 디렉토리로 이동하면 .csproj파일 이 있습니다 . Visual Studio 편집기에서 두 번 클릭하여 열면 자산 폴더 내부의 스크립트 폴더를 열고 스크립트를 열면 자동 완성이 완벽하게 작동합니다.

0

Visual Studio Community 2019 및 Unity 2019.3으로 2020 업데이트 :

1) 관리자 권한으로 Visual Studio Installer를 열고 현재 설치를 수정하고 "Game development for Unity"를 추가하도록 선택하십시오.

2) Unity에서 새 c # 스크립트를 추가하고 Visual Studio에서 자동으로 열면 창 상단에 "기타"로 표시되지 않고 "Assembly-CSharp"가 있으며 자동 완성 기능이 작동합니다.


0

또 다른 가능한 수정 :

  1. 프로젝트 창에서 Assets 폴더를 클릭하십시오
  2. 마우스 오른쪽 버튼을 클릭하고 만들기-> C # 스크립트
  3. 두 번 클릭하고 기다리십시오.

어떤 이유로 든이 작업이 가능합니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.