private void ItemDragEnd(PointerEventData eventData) { if (!_curentItemCopyTransform) { Debug.LogError("[SceneModel] ItemDragEnd _curentItemCopyTransform is NULL"); return; } _asyncProcessor.DestroyGameObject(_curentItemCopyTransform.gameObject); //проверить нахождение на UI List <RaycastResult> resultsUIRaycast = new List <RaycastResult>(); _graphicRaycaster.Raycast(eventData, resultsUIRaycast); //драг завершен на панели UI if (resultsUIRaycast.Count != 0) { return; } //проверить нахождение на 3d RaycastHit hitInfo; if (CheckRaycast(out hitInfo)) { EActrorType actrorType = EActrorType.None; if (eventData.pointerDrag.GetComponent <Image>().sprite == _spriteRectangleGreen) { actrorType = EActrorType.BoxGreen; } else if (eventData.pointerDrag.GetComponent <Image>().sprite == _spriteCircleBlue) { actrorType = EActrorType.SphereBlue; } else if (eventData.pointerDrag.GetComponent <Image>().sprite == _spriteCircleRed) { actrorType = EActrorType.SphereRed; } else { Debug.LogError("[SceneModel] ItemDragEnd sprite type not defined " + eventData.pointerDrag.GetComponent <Image>().sprite); } if (actrorType != EActrorType.None) { var forward = Camera.main.transform.forward; forward.y = 0f; var rndSpeed = UnityEngine.Random.Range(SPEED_MIN, SPEED_MAX); _spawnManager.CreateActor(hitInfo.point, forward, rndSpeed, actrorType); } } }