第三回 PokemonGO的なゲームを作る GoogleMapTile.csを読む

の中で、地図を読み込むために、UnityのオブジェクトにGoogleMapTileというコンポーネントを追加する手順が記載されています。

GoogleMapTileというのはC#で書かれたファイルで、これはすでにgithub上に存在するので、それをダウンロードしてアセットに追加するだけです。

私はC#にはついては全くの素人なので、どんなファイルなのか眺めてみました。

ついでに、この本の前提として、ある程度C#が分かっている必要があったみたいでした。

基本的には他の言語と同じなので読めはしたのですが、わからなかったのが以下のような記載です。

     [Header("Map Settings")]
        [Range(1,20)]
        [Tooltip("Zoom Level, 1=global - 20=house")]
        public int zoomLevel = 1;
        [Tooltip("Type of map, Road, Satellite, Terrain or Hybrid")]
        public MapType mapType = MapType.RoadMap;
        [Range(64,1024)]
        [Tooltip("Size in pixels of the map image")]
        public int size = 640;
        [Tooltip("Double the pixel resolution of the image returned")]
        public bool doubleResolution = true;

この[Header(“Map Settings")]のような、[]カッコで囲んである記述が馴染みがなかったので何かわかりませんでした。

どうやらC#ではこれを属性というようで、コンパイル時にコンパイラーに情報を渡すためのもののようです。

Javaでいうところの@のようなものだと理解しました。

HeaderやTooltipなどは、Unity用に準備された属性のようで、これらをしていするとInspector上に設定値として表示されるようです。

試しに以下のようなコードを追加してみました。

        [Header("たみぼうず")]
        [Tooltip("たみぼうずの身長")]
        public int tamibouzHeight;

なるほど、想定通りInspector 上に表示されて、Unity上からたみぼうずの身長を設定することができるようになりました。Tooltipに設定した文言はマウスカーソルをTamibouz Heightの載せると表示されました。

設定値はシリアライズされて、C#から読み込んで使うことができるようになるみたいです。