クリエイターの教科書

ChatGPT, Stable Diffusion、Python, Visual Studio、Excelなどいろんな教科書

【Unity】マウス、キー操作のスクリプト

マウス、キー操作のスクリプトメモです。

マウス操作

DSC08386

マウスクリック

update内で検知することができます。

void Update () {
        if (Input.GetMouseButtonDown(0))
            Debug.Log("左クリック");
 
        if (Input.GetMouseButtonDown(1))
            Debug.Log("右クリック");
 
        if (Input.GetMouseButtonDown(2))
            Debug.Log("ホイールボタンクリック");
    }

}

 

クリックオブジェクトの取得

if (Input.GetMouseButtonDown(0))
        {
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit2D hit2d = Physics2D.Raycast*1
            {
                _currentPos = Input.mousePosition;
                Vector3 _diffDistance = _currentPos - _previousPos;
                _diffDistance *= 1.0f;
 
                this.transform.GetComponent<RectTransform>().position -= new Vector3(-_diffDistance.x, -_diffDistance.y);
                _previousPos = Input.mousePosition;
            }
        }
    }
 
    public void drugStart()
    {
        _isDrog = true;
    }
 
    public void drugEnd()
    {
        _isDrog = false;
    }

 

EventTriggerコンポーネントで、BeginDrag、EndDragイベントを発行しておきます。

 

void OnMouseDrag()
    {
        //マウスの座標を取得
        Vector3 thisPosition = Input.mousePosition;


        //スクリーン座標からワールド座標へ変換し、positionをあわせる
        Vector3 worldPosition = Camera.main.ScreenToWorldPoint(thisPosition);
        worldPosition.z = 0f;

        this.transform.position = worldPosition;
    }

 

 

キー

キー操作

void Update()
{
    if (Input.GetKeyDown(KeyCode.A))
    {
        Debug.Log("Aキー");
    }
}

 

*1:Vector2)ray.origin, (Vector2)ray.direction);


            if (hit2d)
            {
                o = hit2d.transform.gameObject;
                Debug.Log(o.name);           
            }

        }

}

 

 

マウスエンター、マウスリーブ

   public void Event() {
        Debug.Log("マウスエンター");
     }

     public void EventOut() {
        Debug.Log("マウスリーブ");
    }

 

 

マウスドラッグ

UIのImage画像を動かす場合、スクリプトは

private Vector3 _previousPos = Vector3.zero;
    private Vector3 _currentPos = Vector3.zero;
    private bool _isDrog = false;
 
    void Update()
    {
        if (_isDrog == true)
        {
            if (Input.GetMouseButton(0

このブログは、ネットや書籍上の情報、個人の体験や感想を中心にまとめたものです。 正確性を期していはいますが、間違い・誤訳等あるかもしれません。 当サイトの情報によって生じたいかなる損失について一切の責任を負わないものとします. あらかじめご了承ください。

プライバシーポリシー |〇利用規約 |〇問い合わせ