Advanced Search
Search Results
36 total results found
自動的にブロックを配置しよう~
お試しで手動でいくつかのブロックを配置したが、なかなか面倒な作業なので、自動的に配置しましょう。 スクリプト まず、手動で配置したブロックのすべてを消しましょう。その後、新しいスクリプト「BlockManager」を作成しましょう。このスクリプトは: 実行中にプレハブからブロックを生成する Inspectorで「行数」と「列数」を設定できるようにする BlockManager の位置から始め、連続にブロックを配置して行く まずは、変数から始めましょう: スクリプトの変数 using UnityEngine; ...
ボール跳ね返す角度をコントロールする
目的 今の作りだと、ボールがパドルを当たると、入射角を反転し、外向角になるだけで、プレーヤーがボール行かせたい方位を変えることができない。ある程度、ボールを行き先をコントロールできるように、パドルの「当たる部分」によって、跳ね返す向きを調整する処理を入れましょう。 これで、ボールがパドルの左側に当たると、ボールが左に行く。真ん中を当たると、真上に返す。右側を当たると、右に行くようにする。 解決のアイディア ボールとパドルの相対位置がポイント。ボールが衝突したら、パドルの位置とボールの位置を使い、その向きに返せば良...
ゲーム終了処理
次、「ゲームクリア」と「ゲームオーバー」の処理を追加しましょう。 ゲームオーバー このゲームでは、残機3つがあり、ボールが失ったら残機1つが減る。残機がゼロになった場合は「ゲームオーバー」にする。すでに「ボールが失ったら…」(BallDestroy)という処理があるので、これを活用できる。 ゲーム監督クラス「GameManager」を作成し、残機の数を追跡しましょう。BallDestroyのとき、GameManagerを呼び出し、残機を減らす処理を実装してみましょう: // ゲーム監督 public class G...
UIを作成
ゲームが動くが、画面になにも情報がなく、Canvas を使い、ゲームの状況を可視化しましょう。 Canvasの準備 まず、Canvas を作成し、残機とスコアの表示場所を作りましょう。 スコア スコアは画面の右上に表示しよう。テキストをを表示するので「TextMeshPro」で良いでしょう。必ず右上に出したいので、アンカーが画面の右上を追跡するようにしてください。位置を文字のサイズを調整し、とりあえず、「SCORE: 00000」を表示するようにしてください: 残機 残機は、スプライトの表示・非...
ゲームオーバー UI
現状、ゲームが終わるとき、Debug.Log でメッセージを表示しているが、その代わりに Canvas で「ゲームオーバー」を表示し、「さいかい」と「おわり」のボタンを実装しましょう! シーンの準備 スプライト分割 まず、ブロックと同様に、画像を分解しないといけない。ただし、行列ではないので、きれいに縦横で分割できない。この場合は、マウスを使い、各スプライトの領域を定義しましょう: 3つのスクリプトを分割したら、「Apply」ボタンを押し、シーンを編集しましょう Canvasの準備 すでに作ったゲーム用の Can...
サウンドを追加
ボールが何かと衝突、またはボールが失ったらサウンドを再生するようにしましょう。 ボールとパドル 新しい「BallHitSound」のスクリプトを作成し、以下の処理しましょう: サウンドファイルを Inspector で設定する 衝突の時 ( OnCollisionEnter2D )、ボールのタグを確認する ボールだったら、設定したサウンドを AudioSource.PlayClipAtPoint() で再生する。 // ボールが衝突したら、サウンドを再生 public class BallHitSound : ...
プロジェクト設定
まず、新規プロジェクトを作成しましょう。2Dゲームであるため「Universal 3D」を選んでください。プロジェクト名は「legend」にしましょう。 素材を追加 3Dモデル 主人公(Timmy)とゾンビのモデル(Mixamo) キャラクターのアニメーション ステージ作成のパーツ(Kenney) 画像、テクスチャ プロトタイプ用のテクスチャ UIのスプライト フォント(Google Fonts) すべての素材をプロジェクトに追加しましょう。 プロトタイプ用のシーンを構築 本番のシーンを作る前、各...
Timmyの移動を実装
主人公のゲームオブジェクトを作成 主人公のキャラクターの移動を実装しましょう。まず、空のゲームオブジェクトを作成し、「Player」という名前を付けてください。このゲームオブジェクトはプレーヤーの役割にする。 3Dモデルを追加 Characters/Timmy/Models から Timmy のモデルを追加してください。Player の子オブジェクトとして追加しましょう: よく見ると、色が多少おかしい。これはノーマルマップ(※)の問題であるので、解決しましょう。Characters/Timmy/Textures ...
主人公を追いかけるカメラ
Timmyの移動できたとしても、操作が確認しにくいので、プレーヤーを追いかけるカメラ(三人称視点)を作りましょう 単純なアプローチ 一番簡単なのは「カメラの位置を主人公の位置にしろ!」の仕組みである。これをすぐ試せるので、「CameraController」スクリプトを作成してみましょう: スクリプト // 主人公を追いかけるカメラ public class CameraController : MonoBehaviour { // 追いかけるオブジェクトのTransform [SerializeF...
マウスでカメラを回転
Timmyをカメラに相対的に移動する
ジャンプを実装
アニメーションを追加
アイテムを拾う
宝箱を作成
UIを作成
ゾンビを実装
課題
Timmyの伝説に新たな機能を追加し、よりも面白くする! 例えば… HP回復アイテムを実装 罠を作成(消えるプラットフォーム→穴に落ちる) ドアを実装 定めたコインの数がないと開かない また、レバーを引くと開く HPゼロのときに、倒れるアニメーションを再生し、ゲームオーバーする 宝箱を開くと、コイン10個が飛んで出てくる 移動プラットフォームを実装 ボールを投げ、ゾンビを倒す その他の好きな機能(自由) ルール 1つの機能を実装すると:合格(最低限) 難しいことを頼んでいない! 自分のスキルレベルに合...