Meiryo’s blog

やってみて詰まったことを備忘録として残すブログ

【Unity】マウスの位置にオブジェクトを追従させてみた

ここまで辿り着くのに時間かかったので備忘録として。

「クリックしたら」でもなく
「ドラッグしたら」でもなく
常にマウスの位置にオブジェクトが移動するのを作ってみました。
輪っかのオブジェクトにこのスクリプトをつけています。
f:id:meimaru:20200330031912g:plain

コード

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

public class RingMover : MonoBehaviour
{
    private Camera cam;

    void Start()
    {
        cam = Camera.main;
    }

    void Update()
    {
        Ray ray = cam.ScreenPointToRay(Input.mousePosition);
        RaycastHit raycastHit;
        Physics.Raycast(ray, out raycastHit);

        gameObject.transform.position = raycastHit.point;
    }
}

やってることはRay飛ばして当たった位置の情報を
動かしたいオブジェクトに入れてやってます。

Raycastについては
下記の参考にあるUnity公式チュートリアルの動画が
とてもわかりやすかったです。
Unityのレイキャストとは何ぞや?(自分用) - Qiita

他に参考にさせていただいたブログなど

Raycastによるマウス座標との当たり判定 - ロバメモ - 素人のUnity覚書と奮闘記

【Unity】マウスのある場所にオブジェクトを配置したい - 陰干し中のゲーム開発メモ

unity > マウス位置の取得 - Qiita