ページ「MonoGameで外部のXNBファイルを読み込む」と「Mineo」の間の差分

提供: MonoBook
(ページ間の差分)
ナビゲーションに移動 検索に移動
 
(ページの作成:「{{小文字}} mineo(読み:まいねお)とは、は関西電力系列の電気通信事業者(電力系通信事業者)・小売電力会社のケイ・...」)
 
1行目: 1行目:
[[MonoGame]]で作っている[[ゲーム]]に起動時データ更新を実装し、[[プログラム]]以外の画像や音楽などだけであれば自動更新するようにしたいわけだ。[[スマホ]]の[[ゲーム]]によくあるアレである。むしろ[[プログラム]]の細かい部分も[[NLua]]に投げるようにしてしまいたい。
+
{{小文字}}
 +
[[mineo]](読み:まいねお)とは、は関西電力系列の電気通信事業者(電力系通信事業者)・小売電力会社の[[ケイ・オプティコム]]がやっている[[格安SIM]]のブランド名である。
  
そうなると外部から各種[[データ]]を読み込む必要が出てくる。
+
==概要==
しかし[[MonoGame]]で扱う各種[[データ]]の基本は[[プログラム]]に組み込まれた「Content」である。
+
mineoは、[[KDDI]]([[au]])と[[NTTドコモ]]を選択できる日本初の[[仮想移動体通信事業者]]([[MVNO]])である。
  
== Xamarin.Android ==
+
基本的に[[MVNO]]は無店舗販売が多いが、mineoは[[ユニットコム]](通称[[パソコン工房]])と提携しており、全国の[[ユニットコム]]系列のパソコンショップを店頭窓口として利用できる。ただし相談利用は有料である。ドコモやauなどの窓口利用料は無料だが、これは使う使わないに関わらず基本料金に強制上乗せされているためであり、[[格安SIM]]では致し方ないところである。
[[MonoGame]][[ソースコード]]をざっと見た感じ、[[Xamarin.Android]]ではContentManagerクラスでアセット以外の[[ファイル]]へはアクセスできないようだ。ContentManagerクラスの[[ソースコード]]をみると幸いにもvirtualやらがチラホラ見受けられ継承してoverrideする前提の構造になっている。なので細かいことは考えずにoverrideしてしまえと考えた。
 
  
ついでに各種パラメータを保存した[[csv]]や[[json]]などのxnb以外の[[ファイル]]も同様の手順で読み込めるように、xnbパーサを経由しない裏口も用意すると捗った。
+
MNPの手続きはSIMカードが届いてから専用ウェブページで行う仕様のため最小限の通信不能時間で済むという特徴がある。
  
<source lang="csharp">
+
==沿革==
using System;
+
* 2014年06月03日 - サービス開始
using System.IO;
+
* 2015年02月27日 - プリペイドSIM販売開始<ref name="KO20150226">{{cite press release|url=http://www.k-opti.com/press/2015/press06.html|title=まずはお試し!!「mineo(マイネオ)プリペイドパック」販売開始|publisher=ケイ・オプティコム|date=2015-2-26|accessdate=2015-11-18}}</ref>
using Microsoft.Xna.Framework;
+
* 2015年09月16日 - 加入件数が10万件を突破<ref name="KO20150916">{{cite press release|url=http://www.k-opti.com/press/2015/press27.htm|title=携帯電話サービス「mineo(マイネオ)」加入件数「10万件」突破!|publisher=ケイ・オプティコム|date=2015-9-16|accessdate=2015-11-18}}</ref>
using Microsoft.Xna.Framework.Content;
+
* 2015年11月19日 -「au VoLTE対応SIM」を発売開始<ref name="KO20151118">{{cite press release|url=http://mineo.jp/pdf/151006_newrelease02.pdf|title=「au VoLTE対応SIM」 ついに登場|publisher=ケイ・オプティコム|date=2015-11-18|accessdate=2015-11-18}}</ref>。
 +
* 2016年01年21日 - auとドコモの両方に10GBプランを追加<ref>http://www.k-opti.com/press/2016/press05.html</ref>
  
public class ExternalContentManager : Microsoft.Xna.Framework.Content.ContentManager
+
==関連項目==
{
 
    public ExternalContentManager(IServiceProvider serviceProvider, string rootDirectory)
 
        : base(serviceProvider, rootDirectory)
 
    {
 
    }
 
  
    public ExternalContentManager(IServiceProvider serviceProvider)
+
==参考文献==
        : base(serviceProvider)
 
    {
 
    }
 
 
 
    protected override Stream OpenStream(string assetName)
 
    {
 
        string assetPath;
 
        if (Path.GetExtension(assetName) != "xnb")
 
        {
 
            assetPath = assetName + ".xnb";
 
        }
 
        else
 
        {
 
            assetPath = assetName;
 
        }
 
        return OpenRead(assetPath);
 
    }
 
 
 
    public Stream OpenRead(string fileName)
 
    {
 
        Stream stream = null;
 
        string path;
 
 
 
        try
 
        {
 
            if (Path.IsPathRooted(fileName))
 
            {
 
                path = fileName;
 
            }
 
            else
 
            {
 
                path = Path.Combine(RootDirectory, fileName);
 
            }
 
 
 
            stream = File.OpenRead(path);               
 
 
 
            // Read the asset into memory in one go. This results in a ~50% reduction
 
            // in load times on Android due to slow Android asset streams.
 
            var memStream = new MemoryStream();
 
            stream.CopyTo(memStream);
 
            memStream.Seek(0, SeekOrigin.Begin);
 
            stream.Close();
 
            stream = memStream;
 
        }
 
        catch (FileNotFoundException fileNotFound)
 
        {
 
            throw new ContentLoadException("The content file was not found.", fileNotFound);
 
        }
 
        catch (DirectoryNotFoundException directoryNotFound)
 
        {
 
            throw new ContentLoadException("The directory was not found.", directoryNotFound);
 
        }
 
        catch (Exception exception)
 
        {
 
            throw new ContentLoadException("Opening stream error.", exception);
 
        }
 
        return stream;
 
    }
 
}
 
</source>
 
 
 
使い方は普通のContentManagerと大して変わらない。
 
<source>
 
// Androidであれば「/data/data/アプリID/files」あたりが返ってくるはず。
 
var path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
 
var cm = new ExternalContentManager(this.Content.ServiceProvider, path);
 
var font = cm.Load<SpriteFont>("IPA-Gothic");
 
</source>
 
 
 
== 関連項目 ==
 
* [[:Category:MonoGame|MonoGameカテゴリ]]
 
 
 
== 参考文献 ==
 
 
{{reflist}}
 
{{reflist}}
  
 
{{stub}}
 
{{stub}}
[[category:MonoGame]]
+
 
[[category:Xamarin.Android]]
+
[[category:格安SIM]]

2016年1月21日 (木) 05:45時点における版

mineo(読み:まいねお)とは、は関西電力系列の電気通信事業者(電力系通信事業者)・小売電力会社のケイ・オプティコムがやっている格安SIMのブランド名である。

概要

mineoは、KDDI(au)とNTTドコモを選択できる日本初の仮想移動体通信事業者(MVNO)である。

基本的にMVNOは無店舗販売が多いが、mineoはユニットコム(通称パソコン工房)と提携しており、全国のユニットコム系列のパソコンショップを店頭窓口として利用できる。ただし相談利用は有料である。ドコモやauなどの窓口利用料は無料だが、これは使う使わないに関わらず基本料金に強制上乗せされているためであり、格安SIMでは致し方ないところである。

MNPの手続きはSIMカードが届いてから専用ウェブページで行う仕様のため最小限の通信不能時間で済むという特徴がある。

沿革

  • 2014年06月03日 - サービス開始
  • 2015年02月27日 - プリペイドSIM販売開始[1]
  • 2015年09月16日 - 加入件数が10万件を突破[2]
  • 2015年11月19日 -「au VoLTE対応SIM」を発売開始[3]
  • 2016年01年21日 - auとドコモの両方に10GBプランを追加[4]

関連項目

参考文献