Я новичок в единстве. Я работаю над создателем торта, как игра для Android-устройства. Я сталкиваюсь с трудностями в перетаскивании объектов из шкафа в стол. На столе я хочу смешать их в банке. Это много предметов. Итак, я не могу этого сделать, разделив их с помощью тегов единства. Как сделать общий способ перетащить их на стол?Как перетаскивать объекты в единстве3D?
Я использую этот код, но его не работает для меня.
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)? Кроме того, я не помню точно, но я думаю, что если вы не установите значение Z на Input.mousePosition на некоторое расстояние, тогда точка будет просто позицией камеры (представьте, что луч, выходящий из камеры, является длиной 1) –
Да, это обнаружение столкновения. Но не работать, чтобы тащить. Я попытался проверить код, используя Debug.Log(), а также по Z-значению. Когда я нажимаю объект, он не перетаскивается. но изменение позиции. некоторое время некоторые Z-Valve, когда я использую просто (point.x = gameObject.transform.position.x;). некоторое время перед камерой, когда я использую оба (point.x = gameObject.transform.position.x; && point.z = gameObject.transform.position.z;). –
Извините, я не понимаю, движется ли объект, но неправильно или вообще не двигается? –