2015年12月18日に突如として襲来した謎のUFOアセット、2D UFO Tutorial。しかしてその正体は、なんか物凄くシンプルなサンプルでした。
https://www.assetstore.unity3d.com/jp/#!/content/52143
凄いシンプルな2D UFO Tutorial
2D UFO Tutorialは、いわゆる玉転がし・・・Roll a ball系列のゲームです。ゲームの内容は凄く単純で「ステージ上のアイテムをすべて回収したら勝ち」です。
素晴らしい事に2D UFO Tutorialには、この手のゲームによくある「衝撃を与えると壊れる」とか「触っちゃいけないオブジェクトがある」とか、「制限時間」などそういった余分な要素は一切なく、猫でも(運が良ければ)クリア出来てしまう超新設設計のゲームになっています。
凄いシンプルなスクリプトと関係性
このゲーム、スクリプトが3つしかありません。しかもPlayerController以外は他のコンポーネントに対して、殆ど何もしません。せいぜいTransformに対して操作するぐらい。
- CameraController(対象を追尾する)
- PlayerController(プレイヤーの操作とかゲーム進行とか全部)
- Rotator(アイテムを回す)
で、肝心のPlayerControllerも非常にシンプルです。
コライダーからのコールバックでスコアを稼いだりアイテムを消したり、結果をテキスト(スコア)に反映したり、InputとRigidbody2Dを合わせていどうしたり。
アイテムを全て回収すると「YOU WIN」の文字が表示される訳ですが、なんとその個数メタうち。いや、シンプルって素晴らしいです。
コードも(コメントを抜けば)全部で80行ぐらいなので、1行1行内容をチェックしてみるのも面白いかもしれません。面白い事は無いですが。
凄いシンプルなステージ構築
ステージはどうでしょうか。
このステージ、タイル状の床の周囲をブロックが固めているような感じで表現されており、周辺のブロックにはCollider2Dが設定され勝手に突破しないようになっています。
さて、このタイル状のマップをどうやって表現しているでしょうか?
なんとビックリ、テクスチャ張っただけです。
つまり、ステージの改造は無理です。一応、uGUIのTileとかと合わせてオリジナルなステージも作れなくもないかもしれませんが、正直面倒です。
むしろ自分でテクスチャを作ればワンチャンです。
ちなみにコライダーは単一のオブジェクトに全部張ってあります。
どれがどれだか分かりにくくなりそうな感じもしますが、GameObjectの数を減らせるので自動化出来るなら良い手段かもしれません。
凄いシンプルなUI
地球人よ、これがUIだ!
本当に最低限の「文字を表示するだけ」の機能を持ったUIです。
各UIはPlayerControllerから直で参照されており、プレイヤーがアイテムを取得するタイミングで何か変化します。
初めて見たときは…「ほぅ、OnGUIか…ゴミめ」と勘違いしましたが、一応uGUIで作られていました。
フォントを変えるとか、少し背景を設定するとかで大分印象は変わると思うのですが、やはりUFO的にシンプルは大事であったと、そんな感じでしょう。
チュートリアル
2D UFO Tutorialのチュートリアルが追加されました。
Unity - 2D UFO Tutorialから内容を確認出来ます。
基本的に英語の動画なので、流れを見るくらいの気持ちで。