서론 

Intellisense란?

 매개 변수 정보나 필드 정보, 함수 정보등을 보여주는 것이 intellisense의 역할이다.

 

문제점
 나는 VS code의 Go to Definition이 안되는 문제였는데, 이 기능을 지원해주려면 intellisense기능이 제대로 동작되어야 한다.

 

 

해결법

1. 우선 아래 링크를 기준으로 VScode에서 Unity를 사용할 수 있는 세팅을 한다.

 

VS Code를 사용해서 Unity 개발하기 (mac 세팅 포함)

VS Code를 사용해서 Unity 개발하기 (mac 세팅 포함) 유니티의 경우 안드로이드 스튜디오(안드로이드 개발 시 사용)와 XCode(os x, ios 앱 개발 시 사용)와 달리 게임 구성 편집 밀 빌드를 담당하는 '유니

jungpaeng.tistory.com

 

그리고 세팅을 할 때 가장 중요한 것은 개인적으로 익스텐션의 자동업데이트를 해제하는 것이니, 빠뜨리지 말고 하는 것을 추천한다. (이 자동업데이트 해제를 해주지 않으면, 닷넷 버전이 맞지 않다고 VScode에서 계속 푸쉬알림을 띄어주는 경우가 생긴다.) 


1.1 설치한 닷넷 버전이 맞지 않을 때
 웬만해서 이 부분은 스킵하고 2번으로 넘어가도 될 것이다. 게다가 이미 설치된 .net SDK가 있다면 intellisene는 잘 작동할 것이다. 그렇지만, VScode를 킬때마다 닷넷 버전이 안맞다고 알람이 뜨면 화가난다. 해결법은 Visula Studio로 들어가면 자연스럽게 닷넷 버전을 추천해주지 않을까 싶어서 들어갔더니 다행히 닷넷버전 관련된 알림이 떠서 확인 후 버전 변경을 했다. 나는 닷넷이 4.6.x버전 이었는데 4.7.1 버전으로 바꾸었다.

 

닷넷 버전을 맞추는 과정 요약

  1. VScode에서 Go To Definition 또는 ctrl + 마우스 왼쪽클릭이 안 먹는다. 
  2. Visual Studio(Vsiaul Studio 2019버전임)를 유니티 내부에서 스크립트를 클릭하여 들어가면 필요한 닷넷버전과 현재 설치되어 있는 닷넷 버전이 다르다고 뜬다.
  3. 추천해주는 닷넷버전으로 타겟팅 빌드?를 하겠다고 선택하고 확인을 누르면 닷넷프레임워크 다운로드 사이트가 열린다. (안 나오면 .NET Framework의 해당하는 버전을 웹사이트에서 찾아 들어가면 된다.)
  4. .NET Framework DevleloperPack을 맞는 버전으로 설치해주는데 (필자는 4.7.1) (이 부분이 중요)한국어 버전으로 다운받으면 안되고 영어 버전으로 다운받아야 한다. 
  5. VScode 및 Visual Studio를 재시작해준다.

 

 

2. Sln초기화 해주기

 처음 유니티 프로젝트를 생성한 것이라면, C# 스크립트를 생성하고 VScode를 키면 처음에 위에 프로젝트 초기화를 하라고 나온다. 그리고 위 sln초기화가 뜨는데 약간의 시간이 걸리는데, 그 사이에 키보드입력같은걸 해버리면 위 창이 닫혀버리니까 주의해야한다. 잘못하고 꺼버렸다면 VScode를 끄고 다시 아무 C#스크립트나 눌러서 들어오면 위에 뜬다.

 

저 상태에서 .sln을 선택해서 초기화 해주면 그 뒤로 intellisense가 작동한다. C# Extension이 Unity의 C# 프로젝트를 인식못해서 저런 초기화 과정이 필요하다고 들은 것 같긴한데.. 잘모르겠다.

 

(예전에는 저런거 안해줬던 것 같은데.. 뭔진 모르겠지만 저렇게 해서 해결했다.)

 

2.1 혹시나 초기화가 뜨지 않는다면

 

1. ctrl + ,   를 눌러 settings 창을 연다.
2. 빨간색의 영역버튼을 눌러 settings.json을 연다.

3. settings.json에 전체를 복사해서 이것을 붙여넣는다.
{
    "files.exclude": {
        "**/.DS_Store": true,
        "**/.git": true,
        "**/.gitignore": true,
        "**/.gitmodules": true,
        "**/*.booproj": true,
        "**/*.pidb": true,
        "**/*.suo": true,
        "**/*.user": true,
        "**/*.userprefs": true,
        "**/*.unityproj": true,
        "**/*.dll": true,
        "**/*.exe": true,
        "**/*.pdf": true,
        "**/*.mid": true,
        "**/*.midi": true,
        "**/*.wav": true,
        "**/*.gif": true,
        "**/*.ico": true,
        "**/*.jpg": true,
        "**/*.jpeg": true,
        "**/*.png": true,
        "**/*.psd": true,
        "**/*.tga": true,
        "**/*.tif": true,
        "**/*.tiff": true,
        "**/*.3ds": true,
        "**/*.3DS": true,
        "**/*.fbx": true,
        "**/*.FBX": true,
        "**/*.lxo": true,
        "**/*.LXO": true,
        "**/*.ma": true,
        "**/*.MA": true,
        "**/*.obj": true,
        "**/*.OBJ": true,
        "**/*.asset": true,
        "**/*.cubemap": true,
        "**/*.flare": true,
        "**/*.mat": true,
        "**/*.meta": true,
        "**/*.prefab": true,
        "**/*.unity": true,
        "build/": true,
        "Build/": true,
        "Library/": true,
        "library/": true,
        "obj/": true,
        "Obj/": true,
        "ProjectSettings/": true,
        "temp/": true,
        "Temp/": true,
        "**/.classpath": true,
        "**/.project": true,
        "**/.settings": true,
        "**/.factorypath": true
    },
    "editor.detectIndentation": false,
    "editor.tabSize": 4,
    "editor.insertSpaces": true,
    "csharp.referencesCodeLens.enabled": false,
    "editor.formatOnPaste": true,
    "editor.formatOnSave": true,
    "editor.suggestSelection": "first",
    "vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue"
}

 

이 과정을 거치면 VScode를 끄고 다시 Unity에서 C# 스크립트를 키면 sln파일을 초기화하라는 명령이 나온다.

 

이것말고도 좋은 방법이 있으면 공유해주시면 정말 감사하겠습니다.


 

드디어 되는군.. ARRayCastManager한번 들어오려고 이 썡고생을..