キブンログ

芸工祭ゲーム製作に向けて自分用のメモとか書くために作りました 三日坊主にならないように祈って下さい

プレイヤーの移動(1)

矢印キーでプレイヤーを画面の上下左右(x, y方向)に動かします。スターフォックスみたいな操作にしたい。

キーを離した瞬間ピタッと止まるのは気持ち悪いので、慣性のあるなめらかな静止にしないといけません。rigidbodyに力を加えて動かすやり方で良いっぽい。

 

Player.cs

using UnityEngine;
using System.Collections;

public class Player : MonoBehaviour {

 public float speed = 10;

 void Update () {

  float x = Input.GetAxisRaw("Horizontal");
  float y = Input.GetAxisRaw("Vertical");

  Rigidbody rigidbody = GetComponent<Rigidbody>();
  rigidbody.AddForce(0, y * speed, x * speed);

 }
}

 

このままだと矢印キーを離しても止まれずに滑っていってしまうので、rigidbodyのDrag(抵抗)を増やします。2くらいが丁度良さげ。

オブジェクトがxyz方向どこ向いてんのか良くわかんないのでAddForceへの引数テキトーですね……

とりあえず動作したけど賢いやり方がある気がします。

 

ここまではまあ良いとして、あとは

・プレイヤーが移動方向に体を向ける

・カメラがプレイヤーの移動方向に少し寄る

をどう実装するか考えます。