Example #1
0
    public void JogarItemChao()
    {
        //Local Aleatorio
        Vector3 LocalRandomico = new Vector3(Random.Range(Jogador.transform.position.x + 2, Jogador.transform.position.x - 2), 0.2f, Random.Range(Jogador.transform.position.z + 2, Jogador.transform.position.z - 2));

        //Criacao do item
        GameObject ItemNoChao = Instantiate(Prefab_Item, LocalRandomico, Quaternion.identity);

        //Componentes
        ControleThumbItem tempControleItemInventario = ItemSelecionadoDentroInventario.GetComponent <ControleThumbItem>();
        ControleItem      tempControleNovoItem       = ItemNoChao.GetComponent <ControleItem>();

        //Info Novo item
        tempControleNovoItem.NomeItem       = tempControleItemInventario.NomeItem;
        tempControleNovoItem.TipoItem       = tempControleItemInventario.TipoItem;
        tempControleNovoItem.QuantidadeItem = QuantidadeItensAbandonados;
        tempControleNovoItem.ThumItem       = ItemSelecionadoDentroInventario.GetComponent <Image>().sprite;
        tempControleNovoItem.ItemAgrupavel  = tempControleItemInventario.ItemAgrupavel;
    }
    public void FuncaoPegandoItem()
    {
        //Desligando Item Selecionado
        if (UltimoItemSelecionado != null)
        {
            //Retirando Outline
            Outline LarguraLinha = UltimoItemSelecionado.transform.GetChild(0).gameObject.GetComponent <Outline>();
            LarguraLinha.OutlineWidth = 0;

            //Deixando Nulo
            UltimoItemSelecionado = null;
        }

        if (Physics.Raycast(CameraPrincipal.ScreenPointToRay(Input.mousePosition).origin, CameraPrincipal.ScreenPointToRay(Input.mousePosition).direction,
                            out RaioPegar, PegarDistanciaMaxima, CamadaPegar, QueryTriggerInteraction.Collide))
        {
            Debug.DrawLine(CameraPrincipal.ScreenPointToRay(Input.mousePosition).origin, PontoFinalRaioMouse.point, Color.red);


            if (RaioPegar.collider.gameObject.tag == "Item" || RaioPegar.collider.gameObject.tag == "Moeda")
            {
                ItemSelecionado = RaioPegar.collider.gameObject;

                //Colocando OutLine
                Outline LarguraLinha = ItemSelecionado.transform.GetChild(0).gameObject.GetComponent <Outline>();
                LarguraLinha.OutlineWidth = 4;


                //So pode pegar item se o mouse estiver solto quando passar
                if (!Input.GetMouseButton(0))
                {
                    PodePegarItem = true;
                }

                //Nome Item
                Fundo_InfoNomeItem.gameObject.SetActive(true);
                MostrarNomeItemSelecionado();

                if (PodePegarItem)
                {
                    //Trava Jogador
                    PegandoItem = true;
                    //tempControleCamera.ControleAba=false;
                }

                if (PodePegarItem && Input.GetMouseButtonDown(0))
                {
                    //Pegando Item Padrao
                    if (RaioPegar.collider.gameObject.tag == "Item" && !Inventario.GetComponent <ControleInventario>().InventarioCheio_FaltaSlot)
                    {
                        ControleItem tempControleItem = RaioPegar.collider.gameObject.GetComponent <ControleItem>();
                        PegarInformacaoItem(tempControleItem.NomeItem, tempControleItem.TipoItem, tempControleItem.PesoItem, tempControleItem.QuantidadeItem, tempControleItem.ThumItem, tempControleItem.ItemAgrupavel, tempControleItem.IndiceRef3D);
                        Destroy(RaioPegar.collider.gameObject);
                        PegouItem = true;
                    }
                    if (RaioPegar.collider.gameObject.tag == "Moeda")
                    {
                        ControleItem       tempControleItem       = RaioPegar.collider.gameObject.GetComponent <ControleItem>();
                        ControleInventario tempControleInventario = Inventario.GetComponent <ControleInventario>();
                        tempControleInventario.Moedas += tempControleItem.QuantidadeMoeda;
                        Destroy(RaioPegar.collider.gameObject);
                        PegouItem = true;
                    }
                }
            }

            UltimoItemSelecionado = ItemSelecionado;
        }
        else
        {
            if (!PegouItem)
            {
                PegandoItem = false;

                //tempControleCamera.ControleAba=true;
                PodePegarItem = false;
            }
            Fundo_InfoNomeItem.gameObject.SetActive(false);
        }

        if (PegouItem && Input.GetMouseButtonUp(0))
        {
            PegandoItem = false;

            //tempControleCamera.ControleAba=true;
            PegouItem = false;
        }
    }