強火で進め

このブログではプログラム関連の記事を中心に書いてます。

Color と Color32 の違い

以前書いたこちらの記事についてUnityの大前さんからこんなツイートが

という事で詳しく調べてみた所、この記事で使われていた Color の場合にはそこに含まれる r, g, b, a の型は float 、取る値の範囲は 0〜1 。 Color32 の場合は byte 、取る値の範囲は 0〜255 という違い有りました。

それを踏まえてこちらのMesh.colorsについての公式ドキュメントの以下の記述を確認。

For performance reasons, consider using colors32 instead. This will avoid byte-to-float conversions in colors, as well as use less temporary memory.

ざっくり翻訳を書くと「パフォーマンスの理由から color32 の利用を検討してね。そうするとcolor内部でbyteからfloatへ変換が避けれるし、使用するテンポラリメモリも少ないよ」。

Color を使った場合には余分は変換作業が入った分だけパフォーマンスが落ちてしまうみたいです。

という事なので開発環境がUnity3.5.5以降で有れば、なるべく Mesh.colors32 と Color32 の組み合わせでプログラムを組んだ方が良いみたいです。