Перетаскивание объекта в 3D Unity
Мне нужно перетащить куб относительно поворота камеры, например, как на этой демонстрации, или как в blender при нажатии кнопки g
Источник: Stack Overflow на русском
Мне нужно перетащить куб относительно поворота камеры, например, как на этой демонстрации, или как в blender при нажатии кнопки g
Вы можете использовать Camera.ScreenToWorldPoint
предварительно сохранив расстояние до объекта перед началом перетаскивания:
using UnityEngine;
public class mover : MonoBehaviour
{
[SerializeField] private Transform obj;
private Camera cam;
private Vector2 mousePos;
private Vector3 point;
private float distance;
void Start()
{
cam = Camera.main;
distance = Vector3.Distance(cam.transform.position, obj.position);
}
void Update()
{
mousePos = Input.mousePosition;
point = cam.ScreenToWorldPoint(new Vector3(mousePos.x, mousePos.y, distance));
obj.position = point;
}
}