인프런 커뮤니티 질문&답변

몰?루님의 프로필 이미지
몰?루

작성한 질문수

[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + T2)

Managers

에러해결방벙을 찾고싶어요

작성

·

351

0

public T Load<T>(string key) where T : Object;

//ResourceManager.Load<T>(string)은 abstract, eatern또는 partial로 표시되어 있지 않으므로 본문을 선언해야 합니다 라고 뜨는데 어떤 선언문을 써야 하나요?

{

//','와' )'가 필요하다고 오류가 뜨는데 어디가 필요한 건지 궁금합니다 그리고 TryGetValue 와 key가 현재 컨텍스트에 없다고 에러가 뜨는데 어떻게 해결해야 하나요?

if (_resources.TryGetValue(01Key, out Object resource))

//';'가 필요하다는 에러가뜨고 T도 현재 컨텍스트에 없다고 에러가 나옵니다

return resource as T;

return null;

}

GameObject Instantiate(string key, Transform parent = null, bool pooling = false)

{

GameObject prefab = Load<GameObject>(key);

if (prefab == null)

{

Debug.LogError($"Failed to load prefab : {key}");

return null;

}

//if (pooling)

// return Managers.Pool.Pop(prefab);

GameObject go = Object.Instantiate(prefab, parent);

go.name = prefab.name;

return go;

}

심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태 세부 정보

오류 CS1031 형식이 필요합니다. Assembly-CSharp C:\Users\Administrator\Desktop\taein]\MMO\mmorpg\Assets\@Scripts\Managers\Core\ResourceManager.cs 17 활성

심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태 세부 정보

오류 CS8124 튜플에는 요소가 두 개 이상 있어야 합니다. Assembly-CSharp C:\Users\Administrator\Desktop\taein]\MMO\mmorpg\Assets\@Scripts\Managers\Core\ResourceManager.cs 17 활성

심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태 세부 정보

오류 CS1519 클래스, 레코드, 구조체 또는 인터페이스 멤버 선언에 잘못된 토큰 '{'이(가) 있습니다. Assembly-CSharp C:\Users\Administrator\Desktop\taein]\MMO\mmorpg\Assets\@Scripts\Managers\Core\ResourceManager.cs 16 활성

심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태 세부 정보

오류 CS1519 클래스, 레코드, 구조체 또는 인터페이스 멤버 선언에 잘못된 토큰 '{'이(가) 있습니다. Assembly-CSharp C:\Users\Administrator\Desktop\taein]\MMO\mmorpg\Assets\@Scripts\Managers\Core\ResourceManager.cs 16 활성

심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태 세부 정보

오류 CS1519 클래스, 레코드, 구조체 또는 인터페이스 멤버 선언에 잘못된 토큰 'as'이(가) 있습니다. Assembly-CSharp C:\Users\Administrator\Desktop\taein]\MMO\mmorpg\Assets\@Scripts\Managers\Core\ResourceManager.cs 18 활성

심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태 세부 정보

오류 CS1519 클래스, 레코드, 구조체 또는 인터페이스 멤버 선언에 잘못된 토큰 ';'이(가) 있습니다. Assembly-CSharp C:\Users\Administrator\Desktop\taein]\MMO\mmorpg\Assets\@Scripts\Managers\Core\ResourceManager.cs 18 활성

심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태 세부 정보

오류 CS8803 최상위 문은 네임스페이스 및 형식 선언 앞에 와야 합니다. Assembly-CSharp C:\Users\Administrator\Desktop\taein]\MMO\mmorpg\Assets\@Scripts\Managers\Core\ResourceManager.cs 23 활성

그리고

void LoadAsync<T>(string key, Action<T> callback = null) where T : UnityEngine.Object

{

//Cache

if (_resources.TryGetValue(key, out Object resource))

{

callback?.Invoke(resource as T);

return;

}

string loadkey = key;

if (key.Contains(".sprite"))

loadkey = $"{key}[{key.Replace(".sprite", "")}]";

var asyncOperation = Addressables.LoadAssetAsync<T>(loadkey);

asyncOperation.Completed += (op) =>

{

_resources.Add(key, op.Result);

_handles.Add(key, asyncOperation);

callback?.Invoke(op.Result);

};

앞에와 마찬가지로 resources 와 handles가 계속 이름이 현재 컨텍스트에 없다고 에러가 뜹니다 어떻게 해결해야 하나요?

답변 2

1

Rookiss님의 프로필 이미지
Rookiss
지식공유자

public T Load<T>(string key) where T : Object;

{

의 ;를 빼보세요.

몰?루님의 프로필 이미지
몰?루
질문자

감사합니다 이전에 있던 오류들이 한번에 다 해결됐습니다.

좋은강의 감사합니다 더 열심히 수강하도록 하겠습니다.!!!

0

안녕하세요, 인프런 AI 인턴입니다.

질문자님께서는 Unity에서의 ResourceManager 클래스 사용과 관련하여 여러 오류 메시지에 대해 문의하셨네요. 주로, 제네릭 메서드의 선언 및 구현 방법, 딕셔너리 사용 방법, 그리고 Unity의 Addressables 시스템 사용에 관한 오류들로 보입니다.

주어진 코드와 질문 내용을 바탕으로 비슷한 주제의 답변들 중 관련 있을 가능성이 있는 정보를 공유 드립니다. 질문자님의 문제를 해결할 수 있는 방법으로 제시된 내용은 아래와 같습니다.

  • ResourceManager와 제네릭 메서드 선언: 제네릭 메서등의 정확한 사용 방법과 오류 해결 방안에 관해서는 다음 질문과 그에 대한 답변이 유용할 수 있습니다. “public T Load&lt;t&gt;(string path) where T : Object 질문”에서는 Object가 모호함으로 인해 발생하는 오류와 그 해결방법에 대해 설명합니다. 해당 오류는 C#과 Unity 간의 이름 충돌에서 오는 것으로, 전체 경로명을 사용하여 해결할 수 있습니다.

  • TryGetValue 및 컨텍스트 내 변수 선언: _resources.TryGetValue(01Key, out Object resource)와 같이 TryGetValue 메서드 사용 시, 변수가 “현재 컨텍스트에 없다”는 오류는 변수가 올바르게 선언되지 않았거나, 범위(scope) 내에 존재하지 않음을 나타냅니다. 본 문제에 대한 직접적인 답변 링크는 제공하지 않으나, 딕셔너리 사용법 및 C#의 스코프 관리에 대한 추가적인 학습이 필요합니다.

  • Addressables 사용: 말씀하신 _resources_handles 에러는 해당 변수들이 클래스 내에 올바르게 선언되지 않았을 때 발생할 수 있습니다. Unity의 Addressables 시스템 사용법에 대해 정확하게 파악하고, 해당 시스템을 활용한 비동기 로드 작업에 대해 더 깊이 있게 이해할 필요가 있을 것 같습니다. 이 부분에 대한 구체적인 질문이나 예제는 “xml 로드 문제” 답변에서 찾아보실 수 있으나, 이는 xml 파일 로딩에 대한 것으로 질문자님의 문제와는 다소 거리가 있습니다.

이러한 문제들은 대체로 C#의 기본적인 문법, Unity의 리소스 관리 시스템에 대한 이해도, 그리고 Addressables API 사용법을 포함한 Unity의 고급 기능에 대한 숙련도와 밀접하게 연관되어 있습니다. 따라서 관련 문서 및 강의를 통해 추가적인 학습을 진행하시는 걸 추천드립니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

몰?루님의 프로필 이미지
몰?루

작성한 질문수

질문하기