Unityで2D横スクロールゲー作る_Part2 unity 2015年06月15日 前回終了時の状態がこんなかんじ。というわけで、今回はキャラクターが左右に動き回れるまでやっていきたいと思います。 スクリプト準備 今回からスクリプトを書いていきます。キャラクターをクリックして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