这是 3d 模型,我想将另一个像这样的模型连接到其顶部的银色连接器以及另一个模型到右侧(所以请帮我捕捉它)我想知道如何在运行时将两个 3D 对象捕捉在一起。即在“播放”期间,用户必须能够向上、向下、向左、向右拖动以将一个对象与另一个对象对齐。例如,像“乐高”,即。一个 3D 对象应该捕捉到另一个 3D 对象。我将如何实现这一目标?
这是我用于拖动的代码:
using System.Collections;
using UnityEngine;
public class drag : MonoBehaviour {
Vector3 dist;
float posX;
float PosY;
void OnMouseDown()
{
dist = Camera.main.WorldToScreenPoint(transform.position);
posX = Input.mousePosition.x - dist.x;
PosY = Input.mousePosition.y - dist.y;
}
void OnMouseDrag()
{
Vector3 curPos = new Vector3(Input.mousePosition.x - posX, Input.mousePosition.y - PosY, dist.z);
Vector3 worldPos = Camera.main.ScreenToWorldPoint(curPos);
transform.position = worldPos;
}
}