以下の内容はhttps://kan-kikuchi.hatenablog.com/entry/System_Versionより取得しました。


バージョンの文字列(1.1や1.0.1など)のどちらが新しいかを判別する簡単な方法【C#】




この記事でのバージョン
Unity 6000.0.34f1


はじめに

ゲームのバージョンの表記は"1.1"や"1.0.1"など、ドット区切りで表記することが多いですが、

今回はそのバージョンの新旧を比較する簡単な方法の紹介です!


なお、Unityでの使用を想定しているためDebugを使っています。

ちなみにUnityのプロジェクトのバージョンはUnityEditor.PlayerSettings.bundleVersionで取得できますが、

エディタでしか確認出来ないので、ゲーム中に使いたい場合は定数かつ自動更新にしておくと便利です。





バージョンの新旧を比較する簡単な方法

今回、バージョンの比較にはC#(.NET)のSystem.Versionというクラスを使います。



以下のようにバージョンの文字列を渡して生成すると、各桁を分割してくれます。

(4桁まで対応、設定されていない所は-1になる)

var version = new System.Version("1.2.0");
Debug.Log($"{version}は、Major:{version.Major}, Minor:{version.Minor}, Build:{version.Build}, Revision:{version.Revision}");


さらにそのまま新旧の比較(新しいほうが数字が大きい)も出来ます。

var versionText1 = "1.0.9";
var versionText2 = "1.2.0";

var version1 = new System.Version(versionText1);
var version2 = new System.Version(versionText2);

if (version2 > version1) {
  Debug.Log($"{versionText1}{versionText2}を比較した結果、{versionText2}の方が新しい");
}
else if (version2 < version1) {
  Debug.Log($"{versionText1}{versionText2}を比較した結果、{versionText1}の方が新しい");
}
else {
  Debug.Log($"{versionText1}{versionText2}を比較した結果、同じバージョン");
}


なお1.0.9と1.1のように桁が違っても比較は可能ですが、


1.1と1.1.0のように桁以外は同じの場合は桁が多いほうが新しい(大きい)判定になります。






以上の内容はhttps://kan-kikuchi.hatenablog.com/entry/System_Versionより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14