1
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;

namespace Data
{
    public class CompactLevelMap
    {
        public string name;
        public string species;
        public float weight;
        public int age;
    }
}

これは、独自のゲームライブラリプロジェクトにあるCompactLevelMapクラス(一時的なもの)です。メインゲームに正しくインポートされます。

これはXMLファイルです。

<?xml version="1.0" encoding="utf-8" ?>
<XnaContent>
  <Asset Type="Data.CompactLevelMap"> //The error occurs here
    <name>sdf</name>
    <species>sdf</species>
    <weight>32</weight>
    <age>12</age>
  </Asset>
</XnaContent>

これをゲームにロードする方法は

CompactLevelMap compactLevel = new CompactLevelMap();

compactLevel = Content.Load<CompactLevelMap>("Level1");

私は問題を調査しましたが、私はますます混乱し続けています。ちなみに、XMLファイルのエクスポート方法を教えていただければ幸いです。

前もって感謝します。

4

1 に答える 1

1

タイプを見つけることができるようCompactLevelMapに、コンテンツプロジェクトを含むアセンブリへの参照も追加する必要があります。XmlImporterコンテンツ プロジェクトを右クリックし、[参照の追加] を選択してから [プロジェクト] タブを選択します。(別のアセンブリに配置する理由は、メイン ゲームを参照して循環依存関係を作成しないためです。)


この形式で XML をエクスポートするには、IntermediateSerializer.Serialize. 欠点はIntermediateSerializer、XNA Framework の一部ではなく、再配布できない XNA Game Studio の一部であることです。したがって、実際にはゲームに含めることはできませんが、ユーザーに VC# Express と XNA GS もダウンロードさせる場合は、エディターに含めることができます。

また、(クライアント プロファイルではなく) 完全な .NET 4.0 Framework をターゲットにする必要があります。

このトピックの詳細については、この回答を参照してください。

于 2013-02-24T11:49:16.740 に答える