Unity 2D タッチ操作でPlayerを移動する

2D 画面のタッチ操作でPlayer(Object)の移動をする

transform.position使用

 

// 移動スピード
public float speed = 10;

void Update()
{
    Vector2 direction = new Vector2(0, 0);

    if (Input.touchCount > 0)
    {
        Touch touch = Input.GetTouch(0);
        float x = touch.deltaPosition.x;
        float y = touch.deltaPosition.y;

        // 移動する向きを求める
        direction = new Vector2(x, y).normalized;
    }

    Move(direction, speed);
}

void Move(Vector2 direction, float speed)
{
    // プレイヤーの座標の取得と移動量
    Vector2 pos = transform.position;
    pos += direction * speed * Time.deltaTime;

    // プレイヤーの新規位置とする
    transform.position = pos;
}
 

 

Rigidbody2D使用

 

public class Player : MonoBehaviour
{
    // 移動スピード
    public float speed = 10;

    void Update()
    {
        Vector2 direction = new Vector2(0, 0);

        if (Input.touchCount > 0)
        {
            Touch touch = Input.GetTouch(0);
            float x = touch.deltaPosition.x;
            float y = touch.deltaPosition.y;

            // 移動する向きを求める
            direction = new Vector2(x, y).normalized;
        }

        // 移動する向きとスピード
        GetComponent<Rigidbody2D>().velocity = direction * speed;
    }
}
 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください