スタック・オーバーフロー Asked on December 28, 2020
Unityで開発を行っております。
画像を端末に保存する処理を行っております。
string l_newName = "";
l_newName += UnityEngine.Application.productName + "_";
l_newName += System.DateTime.Now.Year.ToString();
l_newName += System.DateTime.Now.Month.ToString();
l_newName += System.DateTime.Now.Day.ToString();
l_newName += System.DateTime.Now.Hour.ToString();
l_newName += System.DateTime.Now.Minute.ToString();
l_newName += System.DateTime.Now.Second.ToString();
l_newName += "_thumbnail_";
l_newName += ".jpg";
string l_save_path = UnityEngine.Application.persistentDataPath + "/thumbnail/" + l_newName;
#if UNITY_IOS
// iCloudへのバックアップ不要
UnityEngine.iOS.Device.SetNoBackupFlag( l_save_path );
#endif
byte[] l_pngData = createReadabeTexture2D(l_sprite.texture).EncodeToJPG(100);
// データ保存
File.WriteAllBytes( l_save_path, l_pngData );
このように端末に保存しているのですが、この画像を読み込んだ際に赤字の「?」の画像が表示される時があります。
読み込み処理は以下のようにしております。
// ファイルパス画像の読み込み
private Texture2D readTexture( string a_path )
{
Texture2D l_texture = new Texture2D( 0, 0 );
if( !System.IO.File.Exists( a_path ) ) return l_texture;
byte[] l_bytes;
try {
l_bytes = File.ReadAllBytes( a_path );
if( l_bytes == null ) return l_texture;
l_texture.LoadImage(l_bytes);
l_bytes = null;
} catch (Exception e){
l_bytes = null;
return null;
}
return l_texture;
}
読み込みが失敗した処理も入れているのですが、端末上で失敗した際のリカバリー処理も動いていないので、
ファイルがあり、読み込みが成功していると仮定しています。
赤字の「?」が表示される原因も知りたいのですが、失敗した際の検知方法などご存じでしょうか。
よろしくお願い致します。
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP