먼저 푸시 또는 풀 모델을 채택할지 여부를 결정해야합니다. 푸시 모델에서 자산을 변경 한 응용 프로그램/환경은 자산이 변경되어 다시로드해야한다는 것을 실행중인 게임에 어떻게 든 알릴 필요가 있습니다. 이는 매우 간단한 메시지 대기열을 사용하여 수행 할 수 있습니다.
풀 모델에서 게임은 주기적으로 모든 게임 애셋을 확인하여 수정되었는지 확인한 다음 수정 된 경우 다시로드합니다. 덜 효과적이라면 이것은 더 간단합니다.
더 큰 관심사는 앱이 실행되는 동안 게임에서 정상적으로 애셋을 다시로드 할 수 있는지 여부입니다. 아마도 자산을로드 한 다음 백그라운드에서 백그라운드 스레드를 구현 한 다음 게임에서 "라이브"자산으로 "스왑"해야 할 것입니다. 또는 자산을 다시로드 할 때마다 게임이 일시 중지 될 수 있습니다. 두 경우 모두 콘텐츠 파이프 라인이 현재 작동하는 방식 (백그라운드 로더 스레드 등)에 따라 프로세스의 가장 복잡한 부분이 될 수 있습니다 (배경 로더 스레드 등이 이미있을 수 있습니다).
EDIT :
당신은 내가 어떻게 자산 이름에서 파일 확장자를 알고, 다음 문제가있을 것 같아요 이제이 방법 :
static public String FullContentDirectory(this ContentManager content)
{
var appPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);
return System.IO.Path.Combine(appPath, content.RootDirectory);
}
를 사용하여 콘텐츠 폴더의 전체 경로를 얻을 수 있나요? 또는 저작물 이름이 파일 이름과 다른 경우 어떻게해야합니까?
아직 찾고 계신지 확실하지 않지만 현재있는 경우 대부분의 경우 작동하는 맞춤형 솔루션이 제공됩니다. – roundcrisis