131219訓練

投稿者: | 2013年12月19日

朝一ウォーミングアップ。
シーソー
noscriptだよ。

にわとりくっつけます

Unity4入門 最新開発環境による簡単3Dゲーム製作を参考に制作。

物体いろいろ設置

  • くっつき玉(Object)準備
  • にわとり飛び去り防止壁作成
  • 照明設置
  • カメラ位置調整
  • 本のにわとりさんをインポート
  • 空のオブジェクト(Character)作成
  • にわとりさんをCharacterの子にする
    ※これは親の物理挙動を子が引き継ぐ仕様を利用して、物理挙動等をCharacterに任せ、キャラの差し替えを容易にするため。
  • Characterに物理挙動等設定

ここからは初の処理になるので項目分け。

Characterに当たり判定つける

Add Component > Physics > Capsule Collider
後は数値をいじって判定を調節する。
Colliderは全て判定をつけるもの。
今回はCapsuleの形状を選択した。

タグつけ

CharacterのInspectorにあるTag > Add Tag
Sizeで入力項目の数を指定。
Element 0 ~ n にタグの名前を入れる
指定が終わったら
再度Tagクリックし、作成したタグを選択する
Objectにも同様のタグをセットする。

CharacterをPrefab化

プレハブ化したらHierarchyからCharacterを削除する。
作ったプレハブはAssetsに新規フォルダを作ってその中に入れる。

にわとり発射スクリプト(Cannon.js)の作成

GetMouseButtonDownでボタンを押された時。
引数0は左クリック、1は右クリック。
LoadBullet関数を呼び出す。
カメラから発射するため、
カメラからインスタンス生成。
transform.parentで親階層を定義。
transformはスクリプトを付与したオブジェクトとなるため、カメラが親階層になる。
基本位置はVector3.zero。zeroで親(カメラ)からの相対位置となる。
returnはJavaと同じなので関数内で定義したBulletの情報を返す。

変数ray(Ray)にマウスカーソルの位置情報を代入。
Camera.ScreenPointToRay()で引数の座標からレイを飛ばす処理をしている。今回の引数はマウスの入力位置。

変数dirはray.direction.normalizedで方向ベクトルをVector3(3次元座標)に置き換える。

velocityは速度。つまりdirのベクトルにpowerの数値を掛けた勢いでbullet(prefab(今回はにわとり))を射出する。
ちなみに最初に定義した変数prefabとpowerはGUIから設定が可能。

フロー

  1. カメラの位置ににわとり生成
  2. クリック位置からレイを飛ばす
  3. レイをベクトルから座標に置き換える
  4. にわとりをクリック座標からpowerを掛けた分飛ばす

にわとりの落下判定(落ちたら消す)をする

地面を作る。
Mesh Rendererを消す。見た目が消える。
Box ColliderのIs Triggerにチェックをつけてすり抜け可能にする。
※通過判定は残る。
Add Component > New Scriptでにわとり消す用のjsファイルを作成。

OnTriggerEnterはTrigger接触検出。
Collision検出とほぼ同様のため、こちらを参照のこと。

くっつき玉にくっつく処理を加える

Characterを実体化して新しいjsファイルを付与。

CharacterJointでラグドール効果を設定します。ラグドール効果とはRigidbody同士を接続する効果です。
connectedBodyで衝突したcolに接続し、
breakForceでforceに(GUIで)設定した値の力が掛かるまで分解されず(接続したまま)、
breakTorqueでtorqueに(GUIで)設定した値の回転が掛かるまで分解されないようになります。
つまりタグBulletがついたくっつき玉とにわとり、またはにわとり同士がくっつくようになるわけです。※強い力がかかると離れます。

タイトルを出す

新しいシーンを作って
GUI TextureをCreateする。
好きなテクスチャを貼って色をつけて背景にする。
GUI TextをCreateしてタイトルを入力。好きな大きさ、色に調整する。
GUI Textにゲームシーン(main)に移動するスクリプトを書く。

GUI.Buttonを押すとmainに飛ぶ。
第二引数は文字列。

完成!

niwa
にわとりぶらさがり
玉にくっつけるとスコアが増えるよ。
落とすと減るよ。


コメント

Loading Facebook Comments ...

コメントを残す

No Trackbacks.