0
我是新来的团结。我正在为Android设备制作游戏等蛋糕制作者。我正面临将物体从柜子拖到桌子上的困难。在桌子上,我想把它们混合在一个罐子里。这些是很多项目。所以,我不能通过使用统一标签来分开它们。如何使通用的方式将其拖动到桌面上?如何在unity3D中拖动对象?
我正在使用此代码,但它不适合我。
using UnityEngine;
using System.Collections;
public class DragObjects : MonoBehaviour {
Ray ray;
RaycastHit hit;
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
if (Input.GetMouseButtonDown(0))
{
ray = Camera.main.ScreenPointToRay (Input.mousePosition);
if (Physics.Raycast (ray, out hit))
{
if (hit.collider.tag == "oil")
{
OnMouseDrag();
}
}
}
}
void OnMouseDrag()
{
Vector3 point = Camera.main.ScreenToWorldPoint(Input.mousePosition);
point.x = gameObject.transform.position.x;
gameObject.transform.position = point;
}
}
哪部分不工作。它是否检测到您的碰撞(尝试在RayCast上打印)?此外,我记不清楚了,但我认为如果您不将Input.mousePosition上的Z值设置为某个距离,那么该点将仅仅是相机位置(想象从相机出来的光线长度为1 ) –
是的,它正在检测碰撞。但不努力拖。我试图用Debug.Log()和Z值来检查代码。当我点击对象时,它不会拖动。但改变立场。有些时候我使用了一些Z-Valve(point.x = gameObject.transform.position.x;)。当我使用两个时,在相机前面有一段时间(point.x = gameObject.transform.position.x; && point.z = gameObject.transform.position.z;)。 –
对不起,我不明白,对象是移动的,但不正确或不移动? –