Я пытаюсь сделать draggable gameobjects в Unity, и прямо сейчас у меня есть это так, как следует за мышью.Перетащите объект мышью и привяжите его к значению
Это не совсем то, что мне нужно, я хочу, чтобы он перемещался на 0,375f в направлении мыши, вместо того, чтобы точно идти туда, где находится мышь.
Я не представляю, как это будет работать - любая помощь будет оценена! Это то, что я получил до сих пор:
void OnMouseDown()
{
screenPoint = Camera.main.WorldToScreenPoint(transform.parent.position);
offset = transform.parent.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z));
}
void OnMouseDrag()
{
Vector3 curScreenPt = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z);
Vector3 curPos = Camera.main.ScreenToWorldPoint(curScreenPt) + offset;
transform.parent.position = new Vector3(curPos.x, curPos.y);
}
Важно: в настоящее время INCREDIBLY EASY реализует перетаскивание и подобные концепции в Unity. Здесь: http://stackoverflow.com/a/37473953/294884 – Fattie
Да, но afaik это UI - только, я работаю над игровыми объектами, так что это действительно не работает – Fiffe