I am trying to rotate one of a few 3d models by click and dragging the mouse what code would that be? or how would I be able to do that?

Hello, I am trying to click one of the 6 layers and drag it for a puzzle that I am making. how would I do that?

I found code to move it around. I found this by https://www.patreon.com/posts/unity-3d-drag-22917454 or Jayanam Games if this is easier how should I edit this code + what should I do with this? (like just drag and drop or do I need to do more?) (sorry I am new to this.)

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

public class DragObject : MonoBehaviour

{

private Vector3 mOffset;

private float mZCoord;

void OnMouseDown()

{

    mZCoord = Camera.main.WorldToScreenPoint(

        gameObject.transform.position).z;
    
    mOffset = gameObject.transform.position - GetMouseAsWorldPoint();

}

private Vector3 GetMouseAsWorldPoint()

{

    Vector3 mousePoint = Input.mousePosition;

    mousePoint.z = mZCoord;

    return Camera.main.ScreenToWorldPoint(mousePoint);

}

void OnMouseDrag()

{

    transform.position = GetMouseAsWorldPoint() + mOffset;

}

}

I would not recommend trying too hard to cast your mouse position into the world.

My best advice would be this:

On the OnMouseDown event, use a raycast to find which layer you want to rotate. Hide the cursor, and highlight the layer (by changing its color for example).

On the OnMouseDrag event, do this

target.transform.rotation = target.transform.rotation * Quaternion.AngleAxis(mouseDelta.x * rotSpeed, Vector3.up);

On the OnMouseUp event, show the cursor and remove the highlight

You will need to calculate mouseDelta yourself.