【Unity】enum型から数字や文字列への変換やenum型への変換方法

投稿者: | 2019年1月5日

 

はじめに

列挙型enumの基本的な使い方数字や文字列への変換、enum型への変換方法を紹介します。

フィア
ぱっと見、使い道が分からないよね…
カレン
playerPrefのkeyなんかに便利だから、是非覚えてみてね!

 

スポンサーリンク

 

目次

 

準備

Test.csという名前のスクリプトを作成し、空オブジェクトのGameObjectにアタッチしています。

 

 

enum型から数字や文字列へ変換する方法

 

まず、enum型を定義するときは

のように宣言します。

enum型から数字へ変換したとき、自動的に上から0, 1, 2 ,…のように数字が割り当てられています。「ZERO = 100,」のように、自分で設定することも可能です。

 

enum型から数字へ変換するときは、

のように(int)で明示してあげます。

 

enum型からstring型へ変換するときは、

のようにToString()で文字列に変換します。

 

スポンサーリンク

 

数字や文字列からenum型へ変換する方法

 

enum型へ変換するときは、

をnamespaceに追加してください。

 

数字からenum型へ変換するときは、

のように宣言してください。

 

文字列からenum型へ変換するときは、

のように宣言してください。

 

スポンサーリンク

 

enum型を使用するメリット

enum型の使用はいろいろ面倒だし、宣言も長いので、使いどころがいまいち分からないと思います。

enum型を使用するタイミングは主に、

・PlayerPrefsのkeyに使用する

・switchの条件分岐に使用する

です。

これらについて説明します。

 

enum型をPlayerPrefsのkeyとして使用する

 

PlayerPrefsでは呼び出すときのkeyにstring型を使用します。

このストリング型は手入力なので、keyが増えてくると、タイプミスすることがあります。しかも、PlayerPrefsはkeyが間違っていてもエラーになりません。

Visual Studio では補助入力機能があり、以下のように候補が表示されるため間違えにくくなります。

 

enum型をswitchで使用する

 

switchで条件分けをするとき、

のように使用すると思います。

しかし、数字で条件分けだと、あとから見たときに1は何、2は何と分かり辛いですし、文字列でも打ち間違いがあります。

 

そこで、enum型を使用すると、

のように、可読性の高い条件分けが可能になります。

 

ただ、残念ながらenum型をstring型に変換したときはswitchでは使用できません(if では使えます)。

 

 

おわりに

フィア
入力補助があってこその機能だねー
カレン
慣れればミスを減らせるから、是非挑戦してみてね

 

忙しい人のためのUnity入門講座へ

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください