2016-12-05 6 views
0

저는 최근에 XNA와 함께 C#을 사용하고 있으며, XNA가 더 이상 지원되지 않는다고 읽었으므로 MonoGame으로 전환하고 있습니다. 그 말로는 프로그램에서 Sprite 클래스에 대한 Load() 메서드를 만들려고 할 때 XNA에없는 MonoGame의 문제를 발견했습니다. MonoGame ContentManager 클래스?

public void Load(ContentManager content) 
{ 
    content.Load<Texture2D>(AssetName); 
} 

가 지금은 MonoGame와 함께이 문제가 내 Sprite 클래스에 ContentManager를 참조 할 수없는 것이다 다음과 같이 내가 XNA에서 할하는 데 사용되는 방법입니다. 이 클래스는 내 Game1 클래스에있는 'Microsoft.Xna.Framework'를 모두 사용하며 내 코드에는 정적이 아니므로 ContentManager를 참조 할 수없는 이유를 알지 못합니다. 시도하고 인식 할 때 인식되지 않기 때문에 로드(). MonoGame에서이 작업을 수행하는 다른 방법이 있습니까? 아니면 제대로 참조하지 않았습니까?

답변

0

MonoGame.Framework.dll 또는 NuGet 패키지를 참조했다고 가정하면 코드에 특별한 것은 없습니다. 다음과 같이 표시되어야합니다.

using Microsoft.Xna.Framework.Content; 
using Microsoft.Xna.Framework.Graphics; 

namespace YourGameProject 
{ 
    public class Sprite 
    { 
     public string AssetName { get; set; } 

     public void Load(ContentManager content) 
     { 
      content.Load<Texture2D>(AssetName); 
     } 
    } 
} 

방금 ​​내 프로젝트에이 코드를 작성하여 컴파일합니다. 그것이 당신을 위해 일하지 않는다면 다른 뭔가 잘못되었을 것입니다.

+0

젠장, 그건 내가 쓴 것인데, 내 Sprite 클래스에서 ContentManager를 인식하지 못하는 것 같습니다. VS 및 MonoGame의 새로운 복사본을 얻고 작동하는지 확인하겠습니다. 어쨌든 고마워! –

1

흠, 지금 당장 문제가 표시되지 않습니다,하지만 난 수 있도록 노력하겠습니다 :

  • 당신은 아마 시도/마우스 오른쪽 단추로 클릭 이미 해결하지만, 어쨌든 그것을 말하는 가치가있다.

  • 모노 게임의 내용로드가 XNA 사용과 다릅니다. 빌드 인 파이프 라인 도구를 사용하여 그 위에 콘텐츠를 전송해야합니다. 새로운 질감을 업로드 할 때마다 빌드하는 것을 잊지 마십시오.

  • Content.RootDirectory는 변경되지 않았습니다.

당신이 그렇게했는지 확인하기 만하면됩니다. 잘하면이 또한 당신을 도울 것입니다.