忍者ブログ
とりあえずオキュラス発売までにunityであれこれ作れるようになることを目標として日記とする所存。その他には大学で学んだこと、勉強会でのあれこれなど。

Unityで2D横スクロールゲー作る_Part2



前回終了時の状態がこんなかんじ。というわけで、今回はキャラクターが左右に動き回れるまでやっていきたいと思います。

スクリプト準備




今回からスクリプトを書いていきます。キャラクターをクリックしてInspectorからAddComponentでスクリプトの追加を行います。




この画面のAddComponentをカチッといたしまして、NewScriptを選択。




名前を決めて、今回はJavaScriptを使用しますのでJavaScriptを選択してCreate and Addです。




ちなみに右クリックからも行うことができます。どっちにするかは好みですね。




成功するとこのようにスクリプトが追加されます。開いてみましょう。



Unityと一緒にDLさせられたであろうMonoDivelopというソフトが起動して、中身がこのように表示されたかと思います。
ではキャラクターの移動のためにスクリプトを組んでいきます。

キャラクターを移動させる

今回実装する機能

  • キャラクターを指定した方向へ移動させる
  • キー入力されたか判断する
というわけで、まずこちらに注目!

 


 Inspectorに表示されていたキャラクターの位置情報です。GameObjectのなかのプロパティを呼び出し、メソッドをいじり…こまかいことはもっと厳格なサイトが教えてくれることでしょう。では、スクリプトでこの位置情報をいじってしまいます。
 スクリプトのfunction Startは、最初に1回だけ行われ、function Updateの中身はゲーム起動中ずっと行われます。というわけで、function Updateのほうに、

        transform.position.x += 0.5;

と、書き込みます。これで
「Transformのなかの、Positionの中の、xの値に 0.5をプラスする」
ことができます。




x軸の+の方向、右に動きました。それはもう盛大にすっとんで行きました。値が大きすぎるようです。それ以前に、勝手に移動されてはこまりますので、値の調整前に、キー入力ができるようにします。

もし方向キーの右が押されたら、キャラクターを右に移動させる。

これを左側でも同じようにやると




これで左右に移動が自由自在だ!



速度が速すぎて、キーをちょいと入力しただけで、すっ飛んで足場から落ちていきました。せっかくなので速度を変数にしちゃいましょう。




これで速度調整もらくちんです。
うごきまわれるぞー!オラオラ〜!!



おや…?

傾いています。
ここでRigidbodyに注目。



 英語だ…GravityScaleは…ぎりぎり何となくわかるがほかはさっぱり
 とりあえず今後使用する二つについて説明。チェックボックスが2つ並んでいるかと思います。「Fixed Angle」と、「Is Kinematic」に注目。

 Fixed Angle
−チェックされていれば力が加わったとき回転しない
 Is Kinematic
−チェックされていれば力が加わっても動かない

 キャラクターが回転してひっくり返ってはたまったものじゃありません。IsKinematicにチェックをいれると重力すら働かなくなってしまいます(Part1で足場ブロックに適用したやつです)ので、キャラクターにはFixedAngleのみチェックをいれました。
 ちなみにこちらはスクリプトから設定することもできますが、今回は省略。

キャラクターの移動が終わったところでPart2は終了とさせていただきます。
PR