oniyarai’s tech memo

oniyarai’s tech memo

すぐ忘れる自分に捧げるメモ

マウスカーソルの座標取得

Input.mousePosition

ゲームスクリーン上においてマウスカーソルが存在する座標を取得する。 以下のスクリプトで、input.mousePosition によってゲームスクリーン上にあるマウスカーソルの位置(スクリーン座標)を取得。 続く Camera.main.ScreenToWorldPoint(MousePosition); でスクリーン座標をワールド座標に変換する。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class GMcontroller : MonoBehaviour
{
    private Vector3 MousePosition { get; set; }
    private GameObject TextObj { get; set; }
    private Vector3 ScreenToWorldPointPosition { get; set; }
    // Start is called before the first frame update
    void Start()
    {
        GameObject CanvasObj = default;
        CanvasObj = GameObject.Find("Canvas");
        TextObj = CanvasObj.transform.GetChild(0).gameObject;

    }

    // Update is called once per frame
    void Update()
    {
        // マウスカーソルの位置を取得(スクリーン座標)
        MousePosition = Input.mousePosition;

        // 取得したスクリーン座標を、ワールド座標に変換する
        Vector3 ScreenToWorldPointPosition = Camera.main.ScreenToWorldPoint(MousePosition);
                                                      中略
        // スクリーン座標表示
        TextObj.GetComponent<Text>().text = "MousePosition\nX:" + MousePosition.x + "\nY:" + MousePosition.y;

f:id:oniyarai:20191107223805j:plain
スクリーン座標

        // ワールド座標表示
        TextObj.GetComponent<Text>().text = "MousePosition\nX:" + ScreenToWorldPointPosition.x + "\nY:" + ScreenToWorldPointPosition.y;

    }
}

f:id:oniyarai:20191107223809j:plain
ワールド座標