ニュース速報XNA360

How to: リソースのロード

最終更新:

匿名ユーザー

- view
だれでも歓迎! 編集
リソースを読み込んで、読み込んだリソースを適切なタイミングで確実にリロードできるようにする。

必要に応じてリロードできるようにリソースをロードする方法


1. Microsoft.XNA.Framework.Gameクラスを派生させれ。

2. LoadGraphicsContentメソッドをオーバーライドすれ。

3. LoadGraphicsContentメソッドでは、loadAllContentパラメータがtrueの時に、
   ResourceManagementModeがAutomaticのリソース(ContentManagerが読み込む
   ものとか)をロードすれ。

   ResourceManagementModeがManualのやつの場合は、loadAllContentパラメータの
   値にかかわらず、LoadGraphicsContentメソッドが呼ばれた時は毎回ロードしろ。

   C#
   protected override void LoadGraphicsContent(bool loadAllContent)
   {
       if (loadAllContent)
       {
           box = content.Load<Model>("box");
       }
   }

↓以下はあとでやる

4. Microsoft.XNA.Framework.GameクラスのUnloadGraphicsContentメソッドをオーバーライドすれ。
   In the UnloadGraphicsContent method if the unloadAllContent parameter is true unload your resources that are ResourceManagementMode.Automatic including resources loaded by the ContentManager. Regardless of the value of unloadAllContent, resources with ResourceManagementMode.Manual will need to be unloaded every time UnloadGraphicsContent is called. 

   C#
   protected override void UnloadGraphicsContent(bool unloadAllContent)
   {
       if (unloadAllContent == true)
       {
           content.Unload();
       }
   }

C#

using System;
using System.Collections.Generic;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Storage;
using Microsoft.Xna.Framework.Content;

public class Game1 : Microsoft.Xna.Framework.Game
{
   GraphicsDeviceManager graphics;
   ContentManager content;

   Model box;

   public Game1()
   {
       graphics = new GraphicsDeviceManager(this);
       content = new ContentManager(Services);
   }

   protected override void Initialize()
   {
       base.Initialize();
   }

   protected override void LoadGraphicsContent(bool loadAllContent)
   {
       if (loadAllContent)
       {
           box = content.Load<Model>("box");
       }

   }

   protected override void UnloadGraphicsContent(bool unloadAllContent)
   {
       if (unloadAllContent == true)
       {
           content.Unload();
       }
   }

   protected override void Update(GameTime gameTime)
   {
       base.Update(gameTime);
   }

   protected override void Draw(GameTime gameTime)
   {
       graphics.GraphicsDevice.Clear(Color.CornflowerBlue);

       base.Draw(gameTime);
   }
}

タグ:

+ タグ編集
  • タグ:
ウィキ募集バナー