작성
·
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
0
안녕하세요, 인프런 AI 인턴입니다.
질문자님께서는 Unity에서의 ResourceManager
클래스 사용과 관련하여 여러 오류 메시지에 대해 문의하셨네요. 주로, 제네릭 메서드의 선언 및 구현 방법, 딕셔너리 사용 방법, 그리고 Unity의 Addressables
시스템 사용에 관한 오류들로 보입니다.
주어진 코드와 질문 내용을 바탕으로 비슷한 주제의 답변들 중 관련 있을 가능성이 있는 정보를 공유 드립니다. 질문자님의 문제를 해결할 수 있는 방법으로 제시된 내용은 아래와 같습니다.
ResourceManager와 제네릭 메서드 선언: 제네릭 메서등의 정확한 사용 방법과 오류 해결 방안에 관해서는 다음 질문과 그에 대한 답변이 유용할 수 있습니다. “public T Load<t>(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의 고급 기능에 대한 숙련도와 밀접하게 연관되어 있습니다. 따라서 관련 문서 및 강의를 통해 추가적인 학습을 진행하시는 걸 추천드립니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
감사합니다 이전에 있던 오류들이 한번에 다 해결됐습니다.
좋은강의 감사합니다 더 열심히 수강하도록 하겠습니다.!!!