Exemple #1
0
    public void CreateActor(Vector3 position, Vector3 forward, float speed, EActrorType actrorType)
    {
        _actorSpawnCount++;
        var actor = _poolActor.Spawn(position, forward, speed, actrorType);

        actor.SetCount(_actorSpawnCount);
    }
    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);
            }
        }
    }