2015年8月16日日曜日

Wimaxの帯域減少による速度計測2

Wimaxは9月いっぱいで帯域が4分の1になります。

今日の計測結果(室内)

  • あなたの回線速度
  • 6.919
  • Mbps


高崎は8月の時点では速度の変化はみられません。

2015年8月7日金曜日

unity 経過時間の取得

unity C#で経過時間と日数の取得方法。
ここに(dateOld)過去の日付を渡す。

using System;
//経過日数
    public int KeikaNissu(DateTime dateOld){
        DateTime no;
        n = DateTime.Now;
        o =dateOld;
        TimeSpan k = n - o;
        return (int)k.TotalDays;
    }

//経過時間    public int KeikaJikan(DateTime dateOld){
        DateTime no;
        n = DateTime.Now;
        o =dateOld;
        TimeSpan k = n - o;
        return (int)k.TotalHours;
    }

2015年8月1日土曜日

unity推奨されるデータの保存サンプル

iOSとAndroidでも使用できるunityのデータ保存のサンプルソースです。
保存データ用のクラスをシリアライズして保存しています。
確かunityの推奨している保存方法の一つだったと思います。
iOSnoバージョンが古いとエラーが発生するので旧式の端末ではテストできないかも?

//使用例
    private SaveDatas sd ;
    private string SAVE ="key文字列";
    private void DataSave2(){
        SaveKanri.Save(SAVEsd);
        PlayerPrefs.Save();

    }
    private SaveDatas DataLoad2(){
        SaveDatas data_str = SaveKanri.Load<SaveDatas>(SAVE);
        ifdata_str != null){
            return data_str;
        }else{
            return new SaveDatas();
        }


//管理クラス
using UnityEngine;
using System.Collections;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

public class SaveKanri : MonoBehaviour{
    
    public SaveKanri(){
    }
    
    public static bool Save<T>(string prefKey,T obj){
        MemoryStream memoryStream = new MemoryStream();
        #if UNITY_IPHONE || UNITY_IOS
        System.Environment.SetEnvironmentVariable("MONO_REFLECTION_SERIALIZER""yes");
        #endif
        BinaryFormatter bf = new BinaryFormatter();
        bf.SerializememoryStreamobj );
        
        string str = System.Convert.ToBase64StringmemoryStream.ToArray() );
        try {
            PlayerPrefs.SetString ( prefKeystr );
        } catchPlayerPrefsException ) {
            return false;
        }
        return true;
    }
    
    public static T Load<T>( string prefKey ){
        if (!PlayerPrefs.HasKey(prefKey)) return default(T);
        #if UNITY_IPHONE || UNITY_IOS
        System.Environment.SetEnvironmentVariable("MONO_REFLECTION_SERIALIZER""yes");
        #endif
        BinaryFormatter bf = new BinaryFormatter();
        string serializedData = PlayerPrefs.GetStringprefKey );
        
        MemoryStream dataStream = new MemoryStreamSystem.Convert.FromBase64String(serializedData) );
        T deserializedObject = (T)bf.DeserializedataStream );
        
        return deserializedObject;
    }

}

//保存するデータクラス
using System.Collections;
[System.Serializable()]
public class SaveDatas{
    [System.Serializable()]
    public class InnerClass{
        public string instr1;
        public int inint;
    }

    public string str1;
    public int[] int10;
    public InnerClass inClass;
    
}


以前までusing PlayerPrefs = PreviewLabs.PlayerPrefs;を使用して保存していました。最近どうもPreviewLabs.PlayerPrefsで以下のエラーが発生して他の保存方法に切り替えました。
以下がエラーログ
PlayerPrefs.Flush NullReferenceException Object reference not set to an instance of an object