「Unityで電車を走らせる」第12回目です。
前回は電車の加速と減速をキーボードで調整できるように、スクリプトを追記しました。
KoschyExpressVol.11 Unityで電車を走らせる【電車のスピード調整】http://www.koschyexpress.com/un011/「Unityで電車を走らせる」第11回目です。前回はスクリプトを更新し、電車が線路を周回できるようになりました。前回の動画はこちら。 今回はスクリプトをさらに追加し、キーボード入力でスピードを調整できるようにしましょう。今回は上矢印を押せば加速、下矢印を押せば減速するというシンプルなものをつくってみましょう。とはいっても、次のようにスクリプトを追記するだけなので、意外なことにとても簡単です。 【スクリプト追記内容】void Update () {//追記if (Input.GetKey(KeyCode.UpArrow)) {agent.speed += 1f;}i...
前回の動画はこちら。
そこで今回は、前回分を応用し、PC画面にボタンを作成、配置し、そのボタンをマウスでクリックすることで、電車のスピードを調整できるようにしてみましょう。
作成の手順としては次のようになります。
・スクリプトを追記。画面のボタンを押すことで、電車のスピードを調整できるようにする。
・動作テスト
ボタンを作成する。
まずはボタンを作成しましょう。ボタンは 2 種類(加速と減速)を用意します。Hierarchy > Create > UI > button の順にすすめます。細かな設定は次の通りです。
Anchor Presets : left / bottom
Pos X : 30 Pos Y : 80 (Pos Z : 0 のまま)
Width : 50 Height : 50
Source Image : Knob
Color : #00ff55ff
Text : Go
Font Size : 16
Anchor Presets : left / bottom
Pos X : 30 Pos Y : 30 (Pos Z : 0 のまま)
Width : 50 Height : 50
Source Image : Knob
Color : #ff0000ff
Text : Stop
Font Size : 16
これでゲーム画面の左下に緑色のボタンと赤色のボタンができあがりました。
次にスクリプトを追記しましょう。追記内容は次の通りです。
スクリプトの追記
void GotoNextPoint() {
if (points.Length == 0)
return;
agent.destination = points[destPoint].position;
destPoint = (destPoint + 1) % points.Length;
}
//追記箇所
public void GoButtonDown() {
agent.speed += 5f;
}
public void StopButtonDown() {
agent.speed -= 5f;
}
//追記箇所終わり
これでスクリプトを追記は終わりました。
次にボタンの設定をします。GoButton の Inspector にある On Click () を探してしてみてください。Inspector 欄の下のほうにあります。
この On click 欄の右下にある + を押すと次のような画面が現れます。
None (Object) に Hierarchy から Train をドラッグ&ドロップします。すると No Function の部分が選択できるようになるので、TrainController > GoButtonDown を選びます。
これで、Go ボタンの設定が終わりました。Stop ボタンも同様に設定しましょう。No Function の部分は TrainController > StopButtonDown になります。
以上で設定は終わりです。それでは動作確認をしてみましょう。
動作確認
うまくボタンが作動していますね。今回作成したボタンはシンプルな作りですが、将来的には運転席にあるコントローラのようなデザインにできればいいですね。それではまた、次回お楽しみに。