2023. 2. 7. 19:21ㆍ프로그래밍/Unity
간혹 코딩중에 마주하는 XXXXX "이름이 컨텍스트에 없습니다" 에러
구글링을 해보면 대부분 초보적인 실수로 에러가 생긴 경우만 알려주고 있다.
그런 실수가 아니라, 정상동작하는데 빨간줄만 나오는 경우라면 바로 3번을 보세요!
1. 네임스페이스 선언하기
> 사용할 변수나 클래스가 작성된 네임스페이스를 using 하거나, 네임스페이스부터 타고들어가 접근하라고 알려주는 경우
구글링 결과 대부분이 이런 내용이다.
뭔가 거창한걸 알려주나 하고 보면 거의 다 오탈자이거나 네임스페이스 선언을 하지 않았다거나 범위에 없는 이름이어서 그러니 선언부를 살펴보라는 내용...
여기까지 서칭을 하고 들어오신 분은 해당내용을 수도없이 거치고 왔을것으로 생각된다.
( 퍼오기, 간단한 정보 등 똑같은 내용의 필요없는 지식만 100페이지가량 뒤져보고 나니, 웹이 정보의 쓰레기장이 되고 있다는 표현을 실감하는 요즘이다. 내가 오래전에 작성했던 글들도 그런류의 중복정보 쓰레기더미가 되어 있을지도 모르겠다. 그래서 오랜만에 블로그를 쓰는중.)
이 내용이 문제였다면 다른 글들 많으니, 뒤로가기 누르시길...
2. 모호한 접근
> 사용하려는 내용이 여러군데에서 같은이름을 쓰고 있어서 모호한 접근일 경우,
예를들어,
using A;
using B;
를 사용하는데,
A.act()
B.act()
두 군데 이상에서 동일한 함수를 보유중이라,
act() 로만 접근하면 A에서 부를지, B에서 부를지 모호하다는 케이스
요즘엔 이런 경우 모호한 접근이라는 에러문구로 나오는 경우도 있어, 에러케이스를 분류할 수 있을것 같다.
정확하게 어떤 네임스페이스의 것을 사용할지 차근히 접근하면 해결된다. A.act()로 사용하기
물론 이것도 원하는 정보가 아닐것이다.
대부분 이 오류를 검색하는 경우는 정말 코딩 입문자여서, 기본적인 내용을 몰라 검색하는 경우이거나...
알만큼 아는 개발자이고, 위의 두가지 정도는 이미 체크도 해봤는데, 빨간줄이 뜨는 경우일것이기 때문에...
3. 폴더링 문제
> 아마 이 문제를 겪는 분들은 실행시 실행은 잘 되는데, 코드에만 빨간줄이 나고 접근이 안되는 경우일 것이다.
당연히 F12 정의참조도 안먹고, 정보도 뜨지 않아서 코딩하는데 거슬리고 불편한 상황...
그런데 검색하면 자꾸 위의 1,2번 해결책만 떠서 노이로제 걸릴지경...(나도 그랬으니까 ㅠ)
잘 찾아오셨습니다.
아마도 유니티라면, 빨간줄이 나고 못 찾는 클래스 접근은, 플러그인 폴더에 있는 스크립트일 가능성이 크다.
플러그인 폴더에 묶인 스크립트들과 내가 따로 스크립트 폴더링을 해서 사용중인 스크립트들과 서로 singleton이든 static이든 사용하려고 접근할 때...
유니티를 실행시키면 당연히 프로젝트 내부에 있는 스크립트니까 정상적으로 동작하지만,
코드에서는 왠지 모르게 잘 찾아가질 못하는 경우다.
> 복잡하게 얽힌 코드가 아니라면 그냥 플러그인에 있는 코드를 나의 스크립트폴더쪽으로 이동시켜라.
>거짓말처럼 빨간줄이 사라짐...
정확한 이유는 모르겠지만,
유니티 폴더구조로 보면 에셋폴더(프로젝트 루트폴더) 에서 1단계 하위 폴더가 각 파트를 담당하는 폴더인 느낌이다.
(Resources, Plugins, StreamingAssets 처럼 해당계층이 중요폴더인 듯)
플러그인 안에 코드끼리 잘 읽어지고,
내가 만든 폴더 안에끼리 잘 읽어지고 하더라..
4.프로젝트가 커졌다면, 메모리 문제일 수도...
> 또한가지 경험한 것은 해당상태로 오래 작업하다보면 어떤날은 잘 찾아지고, 어떤날은 또 빨간줄이 떠있는 그런 경우가 있다. 컴퓨터를 재부팅하거나 해서 잠깐은 잘 찾아가더니, 작업하다보면 또 빨간줄이 가있고...
이런 경우도 3번으로 보통 해결되겠지만,
메모리 이슈일 수 있다고한다. 해당 프로젝트에 스크립트가 많아지다보면 vscode가 로딩하는 데 사용하는 메모리가 가득차서 일정량 스크립트 넘어가면 로딩하지 못한다는 골자였다.
(오래전 구글링해서 봤던 기억으로 쓰레기장에서 다시 그 글을 찾기란 ....)
그 때, 프로젝트의 vscode 로딩메모리 공간을 더 많이 확보시켜주는 방법으로 해결했었다. (메모리 설정은 vscode 옵션중에 있었다)
'프로그래밍 > Unity' 카테고리의 다른 글
유니티에서 씬에서 선택시 하이라키에서도 선택되게 하기 (3) | 2018.01.30 |
---|---|
[NGUI] 아틀라스 깨짐,뭉개짐,흐림 현상 (0) | 2017.09.08 |
[unity]디바이스, 핸드폰에서 충돌처리 안 될 경우 (4) | 2017.08.09 |
NGUI의 UISprite를 텍스쳐로 복사해 사용하기 (0) | 2017.06.27 |
유니티 렌더링 뎊스 : UI 사이에 오브젝트 그리기 (5) | 2017.05.18 |