using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Drag: MonoBehaviour
{
GameObject getTarget;
bool isMouseDragging;
Vector3 offsetValue;
Vector3 positionOfScreen;
void Start()
{
}
void Update()
{
if (Input.GetMouseButtonDown(0))
{
RaycastHit hitInfo;
getTarget = ReturnClickedObject(out hitInfo);
if (getTarget != null)
{
isMouseDragging = true;
//Converting world position to screen position.
positionOfScreen = Camera.main.WorldToScreenPoint
(getTarget.transform.position);
offsetValue = getTarget.transform.position - Camera.main.Screen
ToWorldPoint(new Vector3(Input.mousePosition.x,
Input.mousePosition.y, positionOfScreen.z));
}
}
if (Input.GetMouseButtonUp(0))
{
isMouseDragging = false;
}
if (isMouseDragging)
{
Vector3 currentScreenSpace = new Vector3(Input.mousePosition.x Input.mousePosition.y, positionOfScreen.z);
Vector3 currentPosition = Camera.main.ScreenToWorldPoint (currentScreenSpace) + offsetValue;
getTarget.transform.position = currentPosition;
}
}
GameObject ReturnClickedObject(out RaycastHit hit)
{
GameObject target = null;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray.origin, ray.direction * 10, out hit))
{
target = hit.collider.gameObject;
}
return target;
}
}
код о единстве 3D ... я хочу перетащить любой 3D-объект (куб, сфера и т. Д.) С помощью мыши ... я создаю объект из иерархии и применяю скрипт к тому объекту, который мне нуженперетаскивать ..... когда я запускаю, что объект не выбран и не перетаскивается ........... я проверил много сайтов, но не нашел никакого разумного решения.