【Unity】pngをスクリプトでTexture2Dとして読み込む


PNG画像をアセットに置いてスクリプトでテクスチャとして読み込む方法の覚書。

まずAssets下から読み込む方法。

この方法なら場所のはっきりしているPNGファイルを読み込むことが出来る。

Application.dataPath で Assets の場所を取得している。

この方法だとAndroid用にビルドすると上手く取得できなかった。

そこで Resources.Load を使う方法に変更した。

 

  1. まず Assets に Resources フォルダを作成して PNG ファイルを置く
  2. 次にそのPNGファイルのインスペクタを開いて設定を変更する
    • Texture Type が Default であることを確認
    • Advanced > Read/Write Enabled のチェックをオンにする
  3. Resources.Load("sprite",typeof(Texture2D)) as Texture2D;で読み込む

 

これでAndroidでも読み込めるし、コッチのほうが簡単。

最初の方法がだめだった理由は多分↓のどれか。

 

  • そもそもファイル置き場が違う
  • ファイル指定方法がOS依存(file:// が必要だったり)
  • ビルド時に梱包されない(スクリプトでのパス指定だけなのでUnityからは使っていないように見える)

 

どれも Resources.Load なら問題ない。

 


コメントを残す

メールアドレスが公開されることはありません。