Пишу приложение на Unity под Android. Столкнулся с проблемой реализации функции удаления prefab-оф, которые я уже добавил на плоскость.
Вот функция где я создаю этот объект, в моем случае prefab модельки.
void ShowMarkerAndSetObject()
{
List<ARRaycastHit> hits = new List<ARRaycastHit>();
ARRaycastManagerScript.Raycast(new Vector2(Screen.width / 2, Screen.height / 2), hits, TrackableType.Planes);
// show marker
if (hits.Count > 0)
{
PlaneMarkerPrefab.transform.position = hits[0].pose.position;
PlaneMarkerPrefab.SetActive(true);
}
// set object
if (Input.touchCount > 0 && Input.touches[0].phase == TouchPhase.Began)
{
Instantiate(ObjectToSpawn, hits[0].pose.position, ObjectToSpawn.transform.rotation);
ChooseObject = false;
PlaneMarkerPrefab.SetActive(false);
}
}
а вот начатая функция по удалению
void DeleteObject()
{
if (Input.touchCount > 0)
{
Touch touch = Input.GetTouch(0);
TouchPosition = touch.position;
if (touch.phase == TouchPhase.Began)
{
// луч, в котором фиксируем объекты в месте где мы коснулись пальцем
Ray ray = ARCamera.ScreenPointToRay(touch.position);
RaycastHit hitObject;
// условие, что мы пересекли объекты
if (Physics.Raycast(ray, out hitObject))
{
Destroy(hitObject.transform.ObjectToSpawn);
}
}
}
}
Но так не работает или я что-то не так делаю. Помоги пожалуйста понять как это сделать??? Либо подскажите как можно полностью всю сцену от всех префабов зачистить, чтобы плоскость пустая была?