String.GetHashCode()は文字列が一致しなければ必ずユニークでしょうか?
ユニティで各アセットを管理するのにハッシュ値を適用しようと考えています。
ファイル名まで含んだフルパスに対してString.GetHashCode()からハッシュ値を
得ようとしております。
下記、MSDNを見る限り文字列が異なれば必ずハッシュ値が異なるように見えるのですが、
必ずユニークになるとの記述はないため、このまま使用していいものかわからずにいます。
https://msdn.microsoft.com/ja-jp/library/system.string.gethashcode(v=vs.80).aspx
知見をお持ちの方いらっしゃいましたら教えてください。
Unityなので.Net2.0まで使用可能です。
Unityバージョンは5.0.1f1
【追記】
やりたいこととしては下記スクールストライクガールズのPDFの74ページ目にある仕組みを作ることです。
http://www.jp.square-enix.com/info/images/image_technical_seminar2014_06/pdf/SQEX_DevCon_sugimoto.pdf
ファイルの実体を1つのバイナリデータとして保存し、
下記構造体のリストでファイルパスとオフセット位置とファイルサイズを管理するという
ファイルシステムを構築するためにファイルパスを可逆なものにしたいと思っています。
public struct FileSystemStruct
{
public int HashCode; // アセット名のハッシュコード
public long OffsetPosition; // ファイルシステム上のアセットデータの開始位置
public long Filesize; // ファイルシステム上のアセットデータのサイズ
}
【使い方】
UIから指定パスのアセットをロードしたいというイベントが発生した時に、
指定パスをハッシュ化して、構造体のリスト内を検索してヒットした位置の
バイナリをロードするといった仕組みを構築するつもりです。