自キャラを動かす(PC)
PCのみ。
参考:
http://docs-jp.unity3d.com/Documentation/Manual/Input.html
「キーボード入力」のキー判定から判断してもよいですが、
FPSでよく使う[W][S][A][D]での前進、後退、左旋回、右旋回、などはあらかじめ設定されたInputManagerを経由させます。
InputManager
メインメニューの「Edit」-「Project Setting」-「Input」で表示される「InputManager」を開きます。
すでに、[W][S]キーでの前進/後退はVerticalに、[A][D]キーでの左旋回/右旋回はHorizontalに登録されています。
スクリプトでの入力値の取得
スクリプトではフレームごとに呼ばれる「FixedUpdate」関数で呼ぶようにします。
「Update」関数はアイドル時に呼ばれるため速度が安定しないためです。
「Input.GetAxis("Horizontal")」のように取得するとfloatの値が返ります。
-1.0〜+1.0の値が返り、[A][D]キーが押されるかジョイスティックが左右に動く場合に反応します。
void FixedUpdate () { float moveHorz = Input.GetAxis("Horizontal"); float moveVert = Input.GetAxis("Vertical"); if (moveHorz < 0.0f) { // 左旋回. if (Camera.main != null) Camera.main.transform.Rotate(0.0f, -1.0f, 0.0f); } if (moveHorz > 0.0f) { // 右旋回. if (Camera.main != null) Camera.main.transform.Rotate(0.0f, -1.0f, 0.0f); } if (moveVert > 0.0f) { // 前進. if (Camera.main != null) Camera.main.transform.Translate(0.0f, 0.0f, 0.01f); } if (moveVert < 0.0f) { // 後退. if (Camera.main != null) Camera.main.transform.Translate(0.0f, 0.0f, -0.01f); } }
キー入力だけでなく、ジョイスティックのような微妙な傾きも検出できます。
また、
if (Input.GetButton("Jump")) { // ジャンプ. }
でSpaceキーが押された場合の処理を記述できます。
キーの割り当てについては、InputManagerのInspectorウィンドウのPositive Button/Negative Buttonで変更可能です。
最終更新時間:2013年11月26日 20時38分37秒