質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

2343閲覧

Unityでのシーン間(または外部)の画像のやりとり

mosin_nozomi

総合スコア29

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

2クリップ

投稿2016/12/14 12:52

編集2016/12/14 12:54

UnityでAシーンで画像を生成し、その画像をBシーンでbyte配列として利用したいのですが上手くできません。

Aシーンで生成するソースが

C#

1Texture2D tex = new Texture2D (Screen.width, Screen.height, TextureFormat.ARGB32, false); 2 tex.ReadPixels ( new Rect(30, 0, Screen.width, Screen.height), 0, 0); 3 tex.Apply (); 4 5 byte[] bytes = tex.EncodeToPNG(); 6

以上のようにbyte配列として画像を持っています。

Bシーンではbyte配列として利用したいので、このままBシーンに渡せれば良いのですが、引数としてシーン間をやり取りさせることができないので、外部に保存しようと考えました。

AシーンでPlayerPrefsを用いてbyte配列をString型に変換し、保存し、BシーンでPlayerPrefsを読み込みStringをbyte配列に変換し直し出力してみましたが、出力した画像ファイルが壊れていると言われ、開くことができませんでした。

おそらく、byte配列に2桁、3桁の数が収まっていたものがStringからbyte配列に変換し直す段階で、1文字ずつ格納してしまったのが原因かと思うのですが、どうしてもうまくいきません。

解決策をご教授ねがえないでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

適切な方法でByte配列をString型に変換していますか?
C#のString型はC++とかと違ってByte配列のラッパーというよりUnicode文字列のラッパーという意味合いが強いです。このため、単純にByte配列のコンテナとしてString型を使うことはできません。

Convert.ToBase64Stringを使ってByte配列を文字列化すればByte配列を文字列として保存することはできます。しかし、今回のPNG画像のように大きなものは外部ファイルに保存した方が良いと思いますよ。

投稿2016/12/15 05:41

haru666

総合スコア1591

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mosin_nozomi

2016/12/16 03:44

Convert.ToBase64Stringにて無事変換することができました。画像での保存も考えたのですが、知識が浅く、読み込みの方法がよくわかっていないので今回はStringにて保存したいと思います。ありがとうございました!
haru666

2016/12/16 04:26

上手くいったのならよかったです:-)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問