[英]Unity3D How can I select multiple objects in 3D with a drag and select / lasso select?
[英]How to Drag Objects in unity3D?
我是团结的新手。 我正在开发类似Android设备游戏的蛋糕机。 我在将对象从机柜拖动到桌子时遇到了困难。 在桌上,我想将它们混合在一个罐子里。 这些是很多东西。 因此,我无法通过使用统一标签将它们分开来做到这一点。 如何制作将它们拖到桌子上的通用方法?
我正在使用此代码,但不适用于我。
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;
}
}
Unity进行此操作的方式将是具有Draggable
行为,并将其附加到要拖动的每个对象。
如果您使用的是2D对撞机,则可以使用以下方法:
Vector3 pos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
bool isOver = collider2D.OverlapPoint(pos);
使用3D对撞机,您可以从相机中获取光线,并查看其是否与可拖动对象相交。
然后,您可以使用其他对撞机检测它们何时放置在罐子上。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.