Unityスクリプト_01

Last-modified: 2023-07-04 (火) 23:22:51
 

オブジェクトの移動

Input.GetAxis

private float h = Input.GetAxis("Horizontal");
private float v = input.GetAxis("Vertical");
Rigidbody rb.AddForce(h, 0, v); //これに[public speed]を掛け算すると良いかも。

以下も同じ。

float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
Vector3 move = new Vector3(h, 0, v);
Rigidbody rb.AddForce(move);
  • Horizontal : 横方向
  • Vertical : 縦方向

GetKeyDown

if (Input.GetKeyDown(KeyCode.RightArrow)) // 右矢印キーが押されたら
{
	Rigidbody_rb.AddForce(Vector3.right); // 右に移動する
}
  • 右:RightArrow(右矢印キー) , right
  • 左:LeftArrow(左矢印キー) , left
  • 前:UpArrow(上矢印キー) , forward
  • 後:DownArrow(下矢印キー) , back
  • ジャンプ:Space(スペースキー) , up(y軸方向へ移動)
    • 基本的には、GetKeyDown を使用するほうが処理が軽くなる (void Update で GetKey だとキーが押されている間は1FPS毎に処理が呼び出されるが、GetKeyDown の場合は一度の処理で済むため) 。
    • その他、[ Return (Enterキー) ] などがある。
  • GetKey:キーを押し続けているとき
  • GetKeyDown:キーを押したとき
  • GetKeyUp:キーを離したとき

transform.Translate

transform.Translate (-1.0f,0.0f,0.0f); // 左に移動

AddForce以外にも、transform.Translate を使って移動座標を直接打ち込む方法などがある。この場合、オブジェクトは瞬間移動する。
以下も同じ。

transform.Translate(Vector3.left);

transform.position

transform.position += Vector3.right; // 右に移動

やっていることは transform,Translate と同じなので、置き換え可能。

 

前方にオブジェクトを移動させ続ける

[void Update] のフィールド内に、以下のコードを書く。

transform.Translate(Vector3.forward);
  • transform:インスペクタ内のTransformのこと。
  • .Translate:Transform内のPositionを変更する、という意味。
  • (Vector3.forward);:前方(z方向)へ進む、という意味。
    [forward]のほか、[back] [left] [right] [up] [down] がある。それぞれ、[後ろ(z軸)] [左(x軸)] [右(x軸)] [上(y軸)] [下(y軸)] になる。
    • ※Update内にコーディングしたため、前方に移動し続ける結果となる。
    • ※speedを設定しないと正しく動かない場合がある。その場合は、[ float 型の変数 speed ] などを設定して、以下のコードを書く。
      transform.Translate(Vector3.forward * Time.deltaTime * speed);
      • Time.deltaTime * speed:1FPS毎の移動距離を指定。
 

位置によって動作を指定(if文)_引き返す

if (transform.position.z >= 30)
// zが30より大きくなったら(= だと 30 を飛び越えた場合に正常に動かないので >= が望ましい)
{
	speed = -speed;
}
  • transform.position.z:Transform の position の z 座標を指す。
  • speed = -speed:speed(事前に float 型の変数 speed を宣言している)の値を -speed にする。たとえば、speed = 10 なら、speed = -10 にする。