LoginSignup
0
0

More than 1 year has passed since last update.

Unity2DのチュートリアルをInputSystemに書き換える(4)

Posted at

EnhancedTouch + LineRenderer

ここ参考に指でなぞったところ(というか、始点と現在位置)に線を引きたい。
という事で同じようにしてやってみた。

まずは空のオブジェクトを作って(今回はプレハブ化してみた)、スクリプトをセット。
image.png

void Update()
    {
        // 二本指でタッチは考慮しない。Vector2から3へは自動変換みたいなので気にしない。
        foreach (var touch in Touch.activeTouches){
           switch (touch.phase){
                case TouchPhase.Began:
                    Vector2 cameraPosition1 = touch.screenPosition;
                    startPos = Camera.main.ScreenToWorldPoint(cameraPosition1);

                    //ラインの起点設定
                    renderer.positionCount = 1;
                    renderer.SetPosition(0, startPos);

                    break;
                case TouchPhase.Moved:
                    Vector2 cameraPosition2 = touch.screenPosition;
                    pos = Camera.main.ScreenToWorldPoint(cameraPosition2);
                    rendererPositions=true;
                    break;
                case TouchPhase.Ended:
                    renderer.positionCount = 0;
                    rendererPositions=false;
                    break;
           }

        }

        // 元のマウスの方も微妙に修正
        if (Input.GetMouseButtonDown(0))
        {
            //タッチ位置取得
            Vector3 cameraPosition = Input.mousePosition;
            cameraPosition.z = 10.0f;
            startPos = Camera.main.ScreenToWorldPoint(cameraPosition);

            //ラインの起点設定
            renderer.positionCount = 1;
            renderer.SetPosition(0, startPos);
        }
        else if (Input.GetMouseButton(0))
        {
            //タッチ位置取得
            Vector3 cameraPosition = Input.mousePosition;
            cameraPosition.z = 10.0f;
            pos = Camera.main.ScreenToWorldPoint(cameraPosition);
            rendererPositions=true;
        }
        else if (Input.GetMouseButtonUp(0))
        {
            renderer.positionCount = 0;
            rendererPositions=false;
        }

        // ラインレンダラーに座標を設定し線を描画
        if (rendererPositions)
        {
            renderer.positionCount = 2;
            renderer.SetPosition(1, pos);
        }
    }
}

image.png

とりあえずタッチ操作もある程度出来たので満足

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0