131218訓練

投稿者: | 2013年12月18日

隕石拾いゲーム

シーン(main.unity)の作成

床を作る

ゲームの盤面作成

プレイヤーの作成

細長い棒(適当すぎる説明
player

プレイヤーを左右に動かす

スクリプト書くです。Updateファンクションに

と記述。Input.GetAxisで入力情報を取得。Horizontalは左右キー。
transform.Translate(x*0.2,0,0)で左右に0.2ずつ動く。

敵を作る

直径0.5の立方体(enemy)を作ってRigidbodyを付与。

敵に動きを付ける

speedはGUIから変更する
speed
transform.Rotate(1,1,1)は三軸全て角度を変える。1度ずつ。

敵のPrefab化

沢山enamyを発生させるために。
enamyをHierarchyビューからAssetビューにD&D

敵が出現するポイント(enamybox)を作る

GameObject > Create Empty

敵を発生させるスクリプトを書く

prefabインスタンスをx軸-5から5の乱数 y1 z8の座標から発生させる。
ememyboxに作成したjsを付与して、PrefabにPrefab化したenemyオブジェクトを設定。

enemy大量発生(うぼぁ
enemyfull

敵の発生間隔を制御する

上記画像のような発生頻度ではゲームにならないので。

60フレームごとに発生処理。
フレームカウントを60で割って余りが0になるとき、という条件を設定している。
※1秒60フレーム
発生がぬるく緩やかになった。
enemyfew

敵が当たったら消滅させる

衝突(Collision)したものが敵(enemy(Clone))だったらオブジェクトcol(enemy(Clone))を消滅(Destroy)する。

ゲームオーバーの作成

File > New Sceneで新しいシーンを作成
GameOver.jsを作り下記のコードを記述。

GUIStyleはGUIの描画に必要な情報を提供するクラス。

GUI.Label

表示する文字列を指定する。
第一引数:表示領域
Rect(長方形)
Rect(x, y, 幅, 高さ)
第二引数:表示したい文字列
第三引数:スタイルの名前

JsをMain Cameraに付与。
Gameビューで確認すると文字列が表示されている。
GameOverLabel

Inspectorに設定が提供されている。
GUIStyle
ここから文字列の色やフォントなど各種設定変更が出来るようになった。

GameOver画面の呼び出し

再びmainシーンに戻ってenemy.jsに記述を追加。

もしenemyがz-12まで来たら、Application.LoadLevelで引数に指定したシーン(GameOver)を呼び出す。
これだけでは呼び出しエラーになるので、
File > Build SettingsでSceans In Buildの枠内にmainとGameOverをD&Dで追加。main:0,GameOver:1の順番で。

プレイヤーを縮める

敵をキャッチするたびに縮む。

transform.localScaleは相対的なサイズの変更をする。今回はx軸を-1減らす指定。
つまりenemy(Clone)に触るとplayerが1縮む。
1以下にならない(消滅しない)ようにx < 1の場合は1に固定する条件をつけた。

スコアをつける

テキスト表示

HierarcyビューからCreate > GUI Text
Inspectorで配置を調整する。
AnchorやらPixel Offsetを調節して表示したい位置に持っていく。
二次元なのでGameビューを見ながら調節する。

スコア表示

Score.jsを作る。

GUI textにScore: と scorePointの文字列を表示させる。
GUI textに付与する。
カウントアップするために、player.jsのCollision判定にScore.scorePoint++;のインクリメントを足してememyを拾うたびに加算するようにする。
GameOver.jsの記述を書き換えてGameOver時にスコアが出るようにする。

背景をつける

過去記事参照

敵に糸引かせる(いかがわしい

ememyにAdd Component > Effects > Trail Renderer
糸引いた
Trail

ゲームを出力する

File > Build & Runで出力したいPlatformを選んでBuild&runする

完成!

出来上がったのがこちら
いかがわしいブロックキャッチ
10秒に一回いかがわしくないブロックが出るよ。ボーナスだよ。


コメント

Loading Facebook Comments ...

コメントを残す

No Trackbacks.