https://www.assetstore.unity3d.com/#!/content/87901
少し前に、Unity公式の完成プロジェクト「Endless Runner Sample Game」が公開されてました。
Endless Runner Sample Gameといふゲーム
Endless Runner Sample Gameは、モバイルで良く見たエンドレスラン系のサンプルみたいです。
ゲームを開始すると、割と良い感じのアニメーション(猫がねずみを追い回す)が始まり、キャラクターセレクトっぽい画面、そしてエンドレスランのゲーム画面に遷移します。
割と作り込んでいて、IAPやランキングの機能が含まれてるっぽいです。
【Unity】アプリ内課金やAssetBundle、ランキングの例を含むサンプルゲーム、Endless Runner Sample Game - テラシュールブログ https://t.co/m65a2WweT2 #unity pic.twitter.com/s7MMYSNGGX
— 椿 (@tsubaki_t1) 2017年6月20日
ダウンロードはこちら:https://www.assetstore.unity3d.com/#!/content/87901
AssetBundleでキャラクター・ステージの切替
このゲーム、キャラクターの読込はAssetBundleで行われており、多分自分で追加したりする事も出来るんじゃないかなと。
ただAssetBundleの分割は割と適当で、重複アセットありまくりです。
まぁ複数のキャラクターを同時に読む事は無いので問題は無いのですが、キャラクター切替等にアセット再読込が走るので、割とロードは間抜けです。
(黄色い▲が付いてるアセットが他のAssetBundleと重複して読み込まれる可能性のあるアセット)
ちなみにAssetBundleにキャラクターが格納されているので、AssetBundle ManagerのSimulater ModeでAssetBundleの振る舞いをシュミレーションするか、Local AssetBundle Serverでローカルサーバー立ててAssetBundleをダウンロードする形にしないと、動作しません。
多分ステージもAssetBundleです。
昼と夜のデータを持つと思われるScriptableObjectがAssetBundleに格納されています。中にはオブジェクトの生成パターンや、空・フォグの色等が格納されていました。
Shaderで色々な画面効果
このプロジェクト、結構シェーダーを使いまくっています。
例えばオブジェクトの回転は頂点シェーダーでぶん回していますし、
遠方を表示しない(地球の表面のように歪んで見える)もシェーダーでやっています。湾曲率はShader.SetGlobalFloatで一括制御。クール
また幾つかの箇所は頂点カラーで色を塗っているっぽいです。
ちゃんと見てないですが、下の壁とかは「頂点カラーでレンガの色を塗る」「レンガの模様はテクスチャを繰り返して実現」といった感じでしょう。多分
Animatorは割とシンプル
Animatorは割とシンプルです。
基本的に右側のジャンプ・スライディング・ランはBOOLで管理しています。これはボタンを連打した時もトリガーがつけっぱなしにならない為でしょう。
HITが呼ばれたらANY STATEからHITが呼ばれて、HPが無ければDEATHに移行する等。
基本的に RUN LOOPで走りますが、ジャンプすると着地後 run startから再スタートする点、スライディングは速やかにrun loopに戻る点は中々面白いです。
ちなみにRun LoopがBlend Treeで作られてる辺りに、努力の跡を感じます。
その他諸々
オーディオは普通に音を鳴らしたり、UIから直接呼び出したりしてました。
UIはソコソコちゃんとレイアウトシステム使って組んでます。
感想
割と中々悪くないんじゃないでしょうか。