2023年11月26日日曜日

Unityでコライダーを使わずにマウスドラッグをする

Unityでコライダーを使わずにマウスドラッグをするサンプル

クリック時の座標を取得

void Update()

      if (Input.GetMouseButtonDown(1))

        {

            cxx = Input.mousePosition.x;

                cyy=Input.mousePosition.y;}

HaikeiScal()

以下は拡大とドラッグ

float fsize = 1f,xsize=1f,ysize=1f,cxx,cyy;

    int counterm = 0;

    public void HaikeiScal(){

        float scroll = Input.mouseScrollDelta.y * Time.deltaTime * 20f;

        fsize +=  scroll;//こっちは拡大縮小処理

        Vector3 newsce =

            new Vector3(fsize, fsize, 1f);

        od.haikei.transform.localScale = newsce;

        if (counterm == 30)//フレームレート制御

        {//ドラッグで移動

            float xsize = (cxx - Input.mousePosition.x)  * 1f;

            float ysize = (cyy - Input.mousePosition.y)   * 1f;//倍率

            Vector2 pos = new Vector2(xsize, ysize);

            od.haikei.GetComponent<RectTransform>().anchoredPosition = pos;

            counterm = 0;

        }

        counterm++;

    }

所感

ちょっと急ぎなので適当ですがクリック時の座標を起点にマウスの位置で移動します。

0 件のコメント:

コメントを投稿