【Unity】スクリプトからブロック崩し用のPrefabを配置するサンプル
ブロック崩しのように大量のオブジェクトを配置する必要のあるゲームでは、手動でオブジェクトを配置していくのは大変です。スクリプトとPrefabを使えばボタンひとつでオブジェクトを配置してくれるようになってかなり便利。なので、このサンプルを試してみてくださいな。
あなたのゲームをいち早く完成させるための研究所
ブロック崩しのように大量のオブジェクトを配置する必要のあるゲームでは、手動でオブジェクトを配置していくのは大変です。スクリプトとPrefabを使えばボタンひとつでオブジェクトを配置してくれるようになってかなり便利。なので、このサンプルを試してみてくださいな。
マルチプラットフォーム向けにビルドできるUnityですが、だからと言って何も考えず全てのプラットフォーム向けに最適化された状態になるわけではないので、しっかりと調整するようにするとイケてるゲームデベロッパーになれます。
Prefabをインスタンス化するサンプルです。割と遊び感覚で作ってるサンプルなので、気楽に試してみてください。インスタンス化の処理に加えて、親オブジェクトの設定やマテリアルの設定などについてもコードに入れてあります。
作成したGameObject(ゲームオブジェクト)を削除したい場面は大きく分けて2つあり、ひとつは開発中にヒエラルキーウィンドウで不要なオブジェクトを削除したい時、もうひとつはゲームの実行中に不要なオブジェクトを削除したい時です。この2通りについて解説しています。
初心者の頃の自分からすると、慣れていないツールを英語に囲まれて操作していくというのはちょっと辛いものがありました。ゲームエンジンを使う目的は楽してゲームを作ることですから、日本語化を行って使いやすくすることも大切です。
もしやGameObjectをひとつひとつ手作業で作成していませんか? もしそうなら、もっと楽にGameObjectを作成する方法を伝授いたしましょう。それはPrefab(プレハブ)の機能と、それを実体化するInstantiateを使う方法です。ほんと便利だから是非。
ゲーム開発を行うなら、ゲーム以外にも様々な体験をしていた方が良いのはもちろんのこと、ゲームというカテゴリーの中においても普段やらないジャンルのゲームを遊ぶことで新たな発見があります。その経験をフィードバックしてもいいですし、新しいジャンルのゲームを作ってもOK! な感じで幅が広がります。
Boltで作ったゲームをモバイル向けやWebGL向けにビルドすると、ゲームを実行した時に「ahead of time (AOT)」に関するエラーが出力されることがあります。その場合はBoltのメニューから『AOT Pre-Build』をしておきましょう。
アセットストアで入手できる『Low Poly Animated Animals』について使ってみたレビューや感想などを書いています。ローポリなのでスマホ向けゲームなどにも使いやすい動物の3Dモデルのアセットです。ゲーム世界に動物が存在していることで、現実世界と共通しているという親近感を表現できます。
アセットストアで入手できるAllSkyについて使ってみたレビューや感想などを書いています。3DのゲームでSkyboxを使いたいのはもちろんのこと、2DのゲームでもSkyboxを使うと背景画像を考える手間が減らせます。AllSkyは高クォリティのSkyboxがたくさん含まれているアセットなので、これがあればその後の開発でSkyboxについて悩まなくて済みます。
登場人物それぞれに見せ場を作るのはあなたもご存知の方法かと思いますが、ゲームの場合はキャラクターが行えるアクションについても見せ場を用意すると「こういう使い方もあるんだ」とゲームの遊び方の幅が広がっていきます。
アセットストアで入手できるVillage Interiors Kitについて使ってみたレビューや感想などを書いています。ゲームの舞台として使う部屋の内装はどうしても使用するオブジェクトの数が増えるので、それを自分で作るとなると結構大変です。外装はTerrainなどで補うことができますが、内装はオブジェクトが少ないと空虚な印象を受けますからね。
アセットストアで入手できるVillage Exteriors Kitについて使ってみたレビューや感想などを書いています。PCゲームやハイエンドのゲーム機向けのゲームを作る際にはこのアセットを手に入れておくと役立つはずです。ライティングやポストプロセシングなどもうまく組み合わせて西洋風のファンタジー世界を表現しましょう。
期間に応じて自分だったらどのようなゲームが作れるかを把握しておくと、不意に時間が空いたタイミングで1つゲームを作れちゃったりします。最初は思ったようにはできないかもしれませんが、見積もった時間でゲームを作ってみて、フィードバックを得ながら経験を積むと大体予想通りに作れます。
フレームレート(FPS)を上げればゲーム画面が滑らかに動く反面、CPUの処理負荷が上がってバッテリー消費も大きくなります。コンセントに繋いでいない状態でゲームを遊ぶことが想定されるスマホや持ち運びのゲーム機向けにゲームを作る場合はバッテリー消費についても頭に入れておくとベネ。
フレームレートは上げたい、でもパフォーマンスの調整が厳しい……とこのトレードオフはいつもゲームを作っている私たちの頭を悩ませます。この記事の中ではフレームレートと処理時間の関係について考えています。
他のオブジェクトにアタッチしたスクリプトのメソッドを呼び出したい! なんて思うことは多々あります。大きく分けて3つの方法がありますが、その使い分けの方針について解説しています。
オブジェクトの位置を計算するためにベクトルや三角関数の知識を使ったりと、ゲームを作っていて高校数学の知識が役に立つ場面は多いです。もちろん知らなくてもできることは多いですが、レベルアップしたい時には復習してみると良いと思います。
スクリプトを書くときにはnullのチェックは忘れずに。特にGameObjectやコンポーネントを操作するときにはnullになりやすいので、処理を分岐させてnullだった場合の処理も実装しておきましょう。
同じ機能を複雑に実装しようが、シンプルに実装しようが、ユーザーから見たら同じ機能です。シンプルに実装した方が保守性にすぐれ、他の人でも理解しやすくなるので、なるべくシンプルに実装する方法を考えてみましょう。