HexConverterから次のコードを取得しました- Unify Community Wiki
string hex = color.r.ToString("X2") + color.g.ToString("X2") + color.b.ToString("X2");
これは私に例外を与えます:
FormatException: The specified format 'X2' is invalid
その後、使用しようとしまし"D"
たが、これでもエラーが発生しました。機能する唯一のことは"F
、浮動小数点数をフォーマットすることです。
宣言に移動すると、アセンブリ ブラウザーで mscorlib.dll/System/Single.ToString (string) が表示されます。これまでのところ良さそうです。
monodevelop 文字列形式の 16 進数または同様の検索文字列をグーグル検索しても、MonoDevelop の制限に関して興味深いものは何も表示されませんでした。
単純な 16 進値変換を取得する前に、何か準備、初期化などを行う必要はありますか?
[更新] Color は Unity の構造体です。
public struct Color
{
public float r;
public float g;
public float b;
// ...
dtb の回答を取得して、最終的に次を使用して機能するようになりました。
int r = (int)(color.r * 256);
int g = (int)(color.g * 256);
int b = (int)(color.b * 256);
string hex = string.Format ("{0:X2}{1:X2}{2:X2}", r, g, b);
そのため、 dtb が言及した整数型の代わりにColor
そのコンポーネントを定義するという事実を見逃していました。float
int
[Update-2] よりエレガントなソリューション:
Color32 color32 = color;
string hex = color32.r.ToString ("X2") + color32.g.ToString ("X2") + color32.b.ToString ("X2");