SchultzGames
Para tirar dúvidas, crie um tópico especifico na área "Dúvidas em Geral" e aguarde ser respondido. Evite comentar em tópicos não relacionados a sua dúvida Very Happy
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
Como criar várias ações (funções) em um único botão ???
[TUTORIAL] Sistema de fome, sede, barra de vida, barra de estamina, itens e dano por queda
[VOTAÇÃO] Refaço o tutorial do launcher ?
[TUTORIAL] C# .NET | Instalar IDE para compilar c# para outras plataformas
oque eu tenho que colocar nesse script?
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
[TUTORIAL] Sistema de Oficina de Carros
bracos para jogo em primeira pessoa para usar como quiser
CarTiltControls da Unity
Baixos Brasil - Jogo de Carro Brasileiro!
Modelação do blender com textura fica transparante depois que passa para a unity
Erro Com ativação do "UseGravity"
ERRO sharedassets0
Remover tela inicial Unity ?
Me ajudem nesse script, quero repoduzir uma animação ao pressionar "w"
OFICINA/PERSONALIZAÇÃO DO PLAYER
como fazer um Objeto ir parando com o tempo?
[TUTORIAL] Menu Pause AVANÇADO (Unity 5.3 ou superior)
[TUTORIAL] Menu pause ( AVANÇADO )
FÍSICA+ESTABILIDADE DO TUTORIAL DO MARCOS
[DÚVIDA] SISTEMA DE HEADSHOT
reconhecimento de fala simples
Ad Mob
Botão Unity
[RESOLVIDO] Linkar Meshes das Rodas!
fazer o player perde vida e sua barra de vida descer conforme o dano
(pedido) script para ativar física
Aguá do meu jogo esta rosa depois de ter passado o projeto para outro computador
[TUTORIAL] Como fazer um TELEPORTE
Script Shader
Sistema de frio??
Como colocar o um CORPO funcional no FPS
Som ambiente,Interação de objetos unity 3D
Telemportar objeto?
[RESOLVIDO] Compilar para android?
Quais melhores estratégias para divulgação de um jogo indie?
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
Flying Bird - PlayStore
Direção da câmera ser para onde o player vai ao apertar a tecla de ir para frente!!
Props Animations Asset
[TUTORIAL] Sistema de DIA E NOITE completo, com luzes noturnas e SISTEMA DE NUVENS
[TUTORIAL] Trocar a textura de um objeto pelas texturas de uma lista ( array ) seguindo a ordem da mesma.
MouseOver alterar de cores solidas para texturas alterar script
Como tiro a tela de seleção de resolução que aparece quando abro o jogo?
VENHAM CONTEMPLAR CUBOID! E entrem para a equipe!
chamare indice de uma List<> em outro script
Unity Assets Duvida
pessoal prefab para colider ou um raycast
[RESOLVIDO] Help. texto através dos objetos unity
Mudar Cor do Veiculo!
[RESOLVIDO]tirar vida do inimigo com click do mause
[TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
Por que os modelos que importo para o unity desaparecem?
Falha de Segurança na Unity
[TUTORIAL] Gerar números aleatórios SEM REPETIR (método com lista)
Cuboid 0.8, divulguem por favor
Tutorial: jogo estilo minecraft
Meu Jogo em desenvolvimento
Verificar texto De um Input Field
Como Separar Variaveis ?
Duvida sobre script
Search the Rats update 1.2
Erro unity
Chamando animação por script
Como fazer objeto voltar a posição inicial? só que ele estará "em movimento"
Button Facebook Mobile!
Lancei um jogo na Play Store - Tic Tac ToeSP.
[TUTORIAL] Unity 5 - Sistema Completo de PORTAS E CHAVES
10 ASSETS GRATUITOS PARA UNITY 5
[DEVLOG] Projeto - Girl Blade (download Pré-Alpha)
Detectar se uma variável mudou e a quanto tempo ela mudou
Como posso criar um inputfield alfabtical alguem sabe?
ativar animação ao apertar botão (android)
Ai Enemy Inimigo Parando do nada
Duvida Extranhicima
gameobject transparente
[TUTORIAL] Tutorial Unity 3D Movimentação de Personagem com Botões UI
Menu de Construções estilo jogo "Banished"
Instanciar
-[COMO IMPLEMENTO UMA ARRAY NESTE SCRIPT?]-
[RESOLVIDO] Inteligência Artificial (básica) - interação Rigidbody2D Collision
Sistema de Futebol(Chutar bola e carrega-la até o gol)
Jogo De Corrida Infinita (2D)[Mobile]
[TUTORIAL] Inimigo seguir e atacar Player ao encostar
Jogo crashando depois da build
[TUTORIAL] Adicionar força a um Rigidbody na direção onde o mouse está
Duvida com Script VIDA
Iniciar em Unity
Escolhendo cores com scroll "mouse"
[RESOLVIDO] Erro com Audio Source ???
Partindo Para Faculdade!
[DÚVIDA] COMO FAZER UM "TEXT" APARECER SÓ UMA VEZ QUANDO O GAME INICIAR?
Simple Touch Camera Script
Duvida sobre iluminação
Duplo personagem
Erro
Dúvida sobre Estado inicial
Jogo de Pesca (Física da Linha)
Water
Ontem à(s) 11:04 pm
Ontem à(s) 9:52 pm
Ontem à(s) 9:15 pm
Ontem à(s) 9:00 pm
Ontem à(s) 8:31 pm
Ontem à(s) 8:07 pm
Ontem à(s) 8:00 pm
Ontem à(s) 7:57 pm
Ontem à(s) 7:24 pm
Ontem à(s) 7:01 pm
Ontem à(s) 6:32 pm
Ontem à(s) 6:05 pm
Ontem à(s) 5:56 pm
Ontem à(s) 3:39 pm
Ontem à(s) 2:55 pm
Ontem à(s) 12:16 pm
Ontem à(s) 11:09 am
Ontem à(s) 8:36 am
Seg Ago 21, 2017 10:08 pm
Seg Ago 21, 2017 9:56 pm
Seg Ago 21, 2017 9:43 pm
Seg Ago 21, 2017 9:14 pm
Seg Ago 21, 2017 9:08 pm
Seg Ago 21, 2017 8:12 pm
Seg Ago 21, 2017 7:57 pm
Seg Ago 21, 2017 7:22 pm
Seg Ago 21, 2017 7:09 pm
Seg Ago 21, 2017 6:03 pm
Seg Ago 21, 2017 1:37 pm
Seg Ago 21, 2017 1:37 pm
Seg Ago 21, 2017 1:24 pm
Seg Ago 21, 2017 1:19 pm
Seg Ago 21, 2017 1:13 pm
Seg Ago 21, 2017 12:18 pm
Seg Ago 21, 2017 11:01 am
Seg Ago 21, 2017 9:59 am
Seg Ago 21, 2017 9:50 am
Seg Ago 21, 2017 9:11 am
Seg Ago 21, 2017 8:44 am
Seg Ago 21, 2017 5:30 am
Seg Ago 21, 2017 12:25 am
Dom Ago 20, 2017 8:20 pm
Dom Ago 20, 2017 8:09 pm
Dom Ago 20, 2017 7:56 pm
Dom Ago 20, 2017 7:29 pm
Dom Ago 20, 2017 7:22 pm
Dom Ago 20, 2017 6:00 pm
Dom Ago 20, 2017 4:31 pm
Dom Ago 20, 2017 2:54 pm
Dom Ago 20, 2017 1:52 pm
Dom Ago 20, 2017 12:40 pm
Dom Ago 20, 2017 11:11 am
Dom Ago 20, 2017 12:31 am
Dom Ago 20, 2017 12:22 am
Dom Ago 20, 2017 12:17 am
Dom Ago 20, 2017 12:17 am
Sab Ago 19, 2017 11:44 pm
Sab Ago 19, 2017 8:55 pm
Sab Ago 19, 2017 8:46 pm
Sab Ago 19, 2017 8:35 pm
Sab Ago 19, 2017 7:40 pm
Sab Ago 19, 2017 5:14 pm
Sab Ago 19, 2017 4:17 pm
Sab Ago 19, 2017 3:47 pm
Sab Ago 19, 2017 10:33 am
Sab Ago 19, 2017 10:25 am
Sab Ago 19, 2017 5:53 am
Sex Ago 18, 2017 10:20 pm
Sex Ago 18, 2017 10:00 pm
Sex Ago 18, 2017 8:39 pm
Sex Ago 18, 2017 6:39 pm
Sex Ago 18, 2017 3:01 pm
Sex Ago 18, 2017 6:01 am
Sex Ago 18, 2017 12:04 am
Qui Ago 17, 2017 10:22 pm
Qui Ago 17, 2017 9:55 pm
Qui Ago 17, 2017 9:48 pm
Qui Ago 17, 2017 9:42 pm
Qui Ago 17, 2017 4:22 pm
Qui Ago 17, 2017 3:38 pm
Qui Ago 17, 2017 2:54 pm
Qui Ago 17, 2017 2:35 pm
Qui Ago 17, 2017 1:14 pm
Qui Ago 17, 2017 12:51 pm
Qui Ago 17, 2017 12:48 pm
Qui Ago 17, 2017 11:47 am
Qui Ago 17, 2017 11:09 am
Qui Ago 17, 2017 7:46 am
Qua Ago 16, 2017 10:19 pm
Qua Ago 16, 2017 9:55 pm
Qua Ago 16, 2017 9:10 pm
Qua Ago 16, 2017 9:03 pm
Qua Ago 16, 2017 8:01 pm
Qua Ago 16, 2017 1:17 pm
Qua Ago 16, 2017 11:49 am
Qua Ago 16, 2017 8:01 am
Ter Ago 15, 2017 7:29 pm
Ter Ago 15, 2017 5:06 pm
Ter Ago 15, 2017 5:06 pm
hamerom
zOverLexYT
PauloFR
PauloFR
NicMDS
Mic4el
michelly
Mic4el
Duarte
Duarte
DUT
BRGC
MendesBk
MRX
dstaroski
Duarte
deikson
MRX
zOverLexYT
Gabriel César CORINTHIANS
Gabriel César CORINTHIANS
PauloFR
Duarte
dstaroski
Duarte
poker14k
Zecandy
DUT
Gabriel César CORINTHIANS
michelly
MRX
AndyShow
AndyShow
Callyde Jr
dstaroski
Strikegames
zZAndersonZz
dstaroski
dstaroski
Regis garcia
marconi
SERGIOCS
Madness
Zecandy
cody0033
Valakinhas
ManoTrevor
Madness
BRGC
PauloFR
PauloFR
tom ramber
cody0033
NyanHeavyBR
rafaelllsd
cody0033
cody0033
BRGC
Manawydan
ManoTrevor
arnaldojunior
mbppedro
Eduardoro39
BRGC
dstaroski
dstaroski
Strikegames
zOverLexYT
Bruno
dstaroski
Dom3000
MiguelLuiz
zZAndersonZz
Jhin
Dom3000
juliano001
deikson
MasterWizzard
Duarte
MrTFGamer1
MatheusNani
deikson
HeF Soft
getrudes12@gmail.com
BloodyBS
deikson
Bruno
dstaroski
SERGIOCS
Vinicius F.
Duarte
Gabriel César O
Henrique0102
Zecandy
Callyde Jr
dstaroski
ffabim
AndyShow
Phph09

Tiro com Botao UI (ME AJUDEM)

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

DÚVIDA Tiro com Botao UI (ME AJUDEM)

Mensagem por bruxamissi em Sab Maio 06, 2017 6:11 pm

ALGUEM ME AJUDA A FAZER ESSE SCRIPT ATIRAR COM UM BOTAO UI, SOU INICIANTE EM PROGRAMAÇAO.



Código:
using UnityEngine;

public class PlayerShooting : MonoBehaviour
{
 public int damagePerShot = 20;
    public float timeBetweenBullets = 0.15f;
    public float range = 100f;


    float timer;
    Ray shootRay = new Ray();
    RaycastHit shootHit;
    int shootableMask;
    ParticleSystem gunParticles;
    LineRenderer gunLine;
    AudioSource gunAudio;
    Light gunLight;
    float effectsDisplayTime = 0.2f;


    void Awake ()
    {
        shootableMask = LayerMask.GetMask ("Shootable");
        gunParticles = GetComponent<ParticleSystem> ();
        gunLine = GetComponent <LineRenderer> ();
        gunAudio = GetComponent<AudioSource> ();
        gunLight = GetComponent<Light> ();
    }


    void Update ()
    {
        timer += Time.deltaTime;

 if(Input.GetButton ("Fire1") && timer >= timeBetweenBullets && Time.timeScale != 0)
        {
            Shoot ();
        }

        if(timer >= timeBetweenBullets * effectsDisplayTime)
        {
            DisableEffects ();
        }
    }


    public void DisableEffects ()
    {
        gunLine.enabled = false;
        gunLight.enabled = false;
    }


    void Shoot ()
    {
        timer = 0f;

        gunAudio.Play ();

        gunLight.enabled = true;

        gunParticles.Stop ();
        gunParticles.Play ();

        gunLine.enabled = true;
        gunLine.SetPosition (0, transform.position);

        shootRay.origin = transform.position;
        shootRay.direction = transform.forward;

        if(Physics.Raycast (shootRay, out shootHit, range, shootableMask))
        {
            EnemyHealth enemyHealth = shootHit.collider.GetComponent <EnemyHealth> ();
            if(enemyHealth != null)
            {
                enemyHealth.TakeDamage (damagePerShot, shootHit.point);
            }
            gunLine.SetPosition (1, shootHit.point);
        }
        else
        {
            gunLine.SetPosition (1, shootRay.origin + shootRay.direction * range);
        }
    }
}
avatar
bruxamissi
Avançado
Avançado

Masculino PONTOS : 582
REPUTAÇÃO : 17
Idade : 17
Respeito as regras :

Ver perfil do usuário https://www.youtube.com/channel/UCPtkRtiJCQKFVz80fE9kIeA

Voltar ao Topo Ir em baixo

DÚVIDA Re: Tiro com Botao UI (ME AJUDEM)

Mensagem por marcos4503 em Sab Maio 06, 2017 7:04 pm

Oi! Você já tentou utilizar um botão na UI, e usar esse botão para ativar uma booleana que ativará o tiro?

É bem simples, e se quiser posso ensinar!

Edit: Esse é aquele script do joguinho da Unity né?
avatar
marcos4503
Instrutor

Masculino PONTOS : 2135
REPUTAÇÃO : 450
Idade : 18
Áreas de atuação : Desenvolvimento Android
Básico de Design
Básico Blender
Unity
Programação em C#
Outras linguas.
Respeito as regras :

Ver perfil do usuário http://www.windsoft.pe.hu

Voltar ao Topo Ir em baixo

DÚVIDA Re: Tiro com Botao UI (ME AJUDEM)

Mensagem por Gabriel César O em Sab Maio 06, 2017 7:27 pm

bruxamissi escreveu:ALGUEM ME AJUDA A FAZER ESSE SCRIPT ATIRAR COM UM BOTAO UI, SOU INICIANTE EM PROGRAMAÇAO.



Código:
using UnityEngine;

public class PlayerShooting : MonoBehaviour
{
 public int damagePerShot = 20;
    public float timeBetweenBullets = 0.15f;
    public float range = 100f;


    float timer;
    Ray shootRay = new Ray();
    RaycastHit shootHit;
    int shootableMask;
    ParticleSystem gunParticles;
    LineRenderer gunLine;
    AudioSource gunAudio;
    Light gunLight;
    float effectsDisplayTime = 0.2f;


    void Awake ()
    {
        shootableMask = LayerMask.GetMask ("Shootable");
        gunParticles = GetComponent<ParticleSystem> ();
        gunLine = GetComponent <LineRenderer> ();
        gunAudio = GetComponent<AudioSource> ();
        gunLight = GetComponent<Light> ();
    }


    void Update ()
    {
        timer += Time.deltaTime;

 if(Input.GetButton ("Fire1") && timer >= timeBetweenBullets && Time.timeScale != 0)
        {
            Shoot ();
        }

        if(timer >= timeBetweenBullets * effectsDisplayTime)
        {
            DisableEffects ();
        }
    }


    public void DisableEffects ()
    {
        gunLine.enabled = false;
        gunLight.enabled = false;
    }


    void Shoot ()
    {
        timer = 0f;

        gunAudio.Play ();

        gunLight.enabled = true;

        gunParticles.Stop ();
        gunParticles.Play ();

        gunLine.enabled = true;
        gunLine.SetPosition (0, transform.position);

        shootRay.origin = transform.position;
        shootRay.direction = transform.forward;

        if(Physics.Raycast (shootRay, out shootHit, range, shootableMask))
        {
            EnemyHealth enemyHealth = shootHit.collider.GetComponent <EnemyHealth> ();
            if(enemyHealth != null)
            {
                enemyHealth.TakeDamage (damagePerShot, shootHit.point);
            }
            gunLine.SetPosition (1, shootHit.point);
        }
        else
        {
            gunLine.SetPosition (1, shootRay.origin + shootRay.direction * range);
        }
    }
}
assista a esse vídeo e se quiser a série dele
avatar
Gabriel César O
Programador

Masculino PONTOS : 1348
REPUTAÇÃO : 205
Idade : 15
Áreas de atuação : (ESTUDANDO SEGUNDO GRAU), (FUÇANDO NO UNITY)){
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Tiro com Botao UI (ME AJUDEM)

Mensagem por bruxamissi em Sab Maio 06, 2017 7:48 pm

marcos4503 escreveu:Oi! Você já tentou utilizar um botão na UI, e usar esse botão para ativar uma booleana que ativará o tiro?

É bem simples, e se quiser posso ensinar!

Edit: Esse é aquele script do joguinho da Unity né?
Se puder me ensinar eu agradeço kk

Simm é o script da unity
avatar
bruxamissi
Avançado
Avançado

Masculino PONTOS : 582
REPUTAÇÃO : 17
Idade : 17
Respeito as regras :

Ver perfil do usuário https://www.youtube.com/channel/UCPtkRtiJCQKFVz80fE9kIeA

Voltar ao Topo Ir em baixo

DÚVIDA Re: Tiro com Botao UI (ME AJUDEM)

Mensagem por marcos4503 em Sab Maio 06, 2017 9:15 pm

Bom. Eu troquei o Input.KeyDown lá por uma variavel que se chama "TocouEmAtirar", toda vez que ela for "True" o seu bonequinho vai atirar. Como a gente vai deixar ela em true? É isso que vou ensinar agora.

Primeiro  o script

Código:
using UnityEngine;

public class PlayerShooting : MonoBehaviour
{
    public int damagePerShot = 20;
    public float timeBetweenBullets = 0.15f;
    public float range = 100f;


    float timer;
    Ray shootRay = new Ray();
    RaycastHit shootHit;
    int shootableMask;
    ParticleSystem gunParticles;
    LineRenderer gunLine;
    AudioSource gunAudio;
    Light gunLight;
    float effectsDisplayTime = 0.2f;
    private bool TocouEmAtirar;


    void Awake()
    {
        shootableMask = LayerMask.GetMask("Shootable");
        gunParticles = GetComponent<ParticleSystem>();
        gunLine = GetComponent<LineRenderer>();
        gunAudio = GetComponent<AudioSource>();
        gunLight = GetComponent<Light>();
    }


    void Update()
    {
        timer += Time.deltaTime;

        if (TocouEmAtirar == true && timer >= timeBetweenBullets && Time.timeScale != 0) //Aqui eu troquei o Input.GetKey pela nossa nova variavel
        {
            Shoot();
        }

        if (timer >= timeBetweenBullets * effectsDisplayTime)
        {
            DisableEffects();
        }
    }


    public void DisableEffects()
    {
        gunLine.enabled = false;
        gunLight.enabled = false;
    }


    void Shoot()
    {
        timer = 0f;

        gunAudio.Play();

        gunLight.enabled = true;

        gunParticles.Stop();
        gunParticles.Play();

        gunLine.enabled = true;
        gunLine.SetPosition(0, transform.position);

        shootRay.origin = transform.position;
        shootRay.direction = transform.forward;

        if (Physics.Raycast(shootRay, out shootHit, range, shootableMask))
        {
            EnemyHealth enemyHealth = shootHit.collider.GetComponent<EnemyHealth>();
            if (enemyHealth != null)
            {
                enemyHealth.TakeDamage(damagePerShot, shootHit.point);
            }
            gunLine.SetPosition(1, shootHit.point);
        }
        else
        {
            gunLine.SetPosition(1, shootRay.origin + shootRay.direction * range);
        }
    }

    public void RecebeToque(bool transmissor) //Esse public void, vai receber os dados do seu botão da UI
    {
        TocouEmAtirar = transmissor;
    }
}

Bom. Agora com a variavel no seu script, voce vai fazer o seguinte.

1 - Criar um botão na sua UI, e adicionar o componente "Event Trigger" nele.
2 - Voce vai clicar em "Add New Event Type"
3 - Adicione "OnPointerDown"
4 - Adicione "OnPointerUp'
5 - Voce vera 2 quadrados cinza novos. Cada um deles tem um botão de + e -
6 - Clique no + do primeiro quadro e do segundo.
7 - Apos clicar nesse + nos dois quadros, voce vera que vai aparecer uma caixinha com "None (Object)" Voce vai pegar o objeto em sua cena, que possui esse script que te passei acima, e arrastar pra dentro desse lugar. Faça isso nos dois quadros.
8 - Nessas duas caixinhas, tem um botão escrito "No Function", voce vai clicar nela, e vai aparecer o nome do seu script (PlayerShooting), selecione-o e depois selecione "RecebeToque". Repita isso nas duas caixinhas.
9 - Voce vera que vai aparecer 1 booleana em cada caixinha que se chama "Transmissor", Na caixinha que se chama "OnPointerDown" voce vai deixar o Transmissor ligado, na caixinha "OnPointerUp" voce vai deixar essa caixinha desmarcada.
10 - Lembre-se de adicionar o objeto "Event Sysytem" na sua cena! Se não isso não vai funcionar!

O que fizemos aqui? Simples. Eu criei uma public void, que transfere o estado atual do seu botão para a nossa variavel que faz o player atirar. Com o "OnPointerDown" voce informa ao jogo que o jogador esta tocando no botão, e com o "OnPointerUp" voce informa ao jogador que o jogador parou de tocar no botão. Enquanto o jogador estiver com o botão pressionado, seu personagem vai atirar!

Espero ter ajudado! Se tiver alguma duvida, é so falar!
avatar
marcos4503
Instrutor

Masculino PONTOS : 2135
REPUTAÇÃO : 450
Idade : 18
Áreas de atuação : Desenvolvimento Android
Básico de Design
Básico Blender
Unity
Programação em C#
Outras linguas.
Respeito as regras :

Ver perfil do usuário http://www.windsoft.pe.hu

Voltar ao Topo Ir em baixo

DÚVIDA Re: Tiro com Botao UI (ME AJUDEM)

Mensagem por marcos4503 em Sab Maio 06, 2017 9:30 pm

Ta ai, o resultado!
avatar
marcos4503
Instrutor

Masculino PONTOS : 2135
REPUTAÇÃO : 450
Idade : 18
Áreas de atuação : Desenvolvimento Android
Básico de Design
Básico Blender
Unity
Programação em C#
Outras linguas.
Respeito as regras :

Ver perfil do usuário http://www.windsoft.pe.hu

Voltar ao Topo Ir em baixo

DÚVIDA Re: Tiro com Botao UI (ME AJUDEM)

Mensagem por bruxamissi em Sab Maio 06, 2017 9:35 pm

marcos4503 escreveu:Ta ai, o resultado!
Muito Obrigado irei testar aqui e ja te falo !  Very Happy
avatar
bruxamissi
Avançado
Avançado

Masculino PONTOS : 582
REPUTAÇÃO : 17
Idade : 17
Respeito as regras :

Ver perfil do usuário https://www.youtube.com/channel/UCPtkRtiJCQKFVz80fE9kIeA

Voltar ao Topo Ir em baixo

DÚVIDA Re: Tiro com Botao UI (ME AJUDEM)

Mensagem por marcos4503 em Sab Maio 06, 2017 9:36 pm

Bê-ele-zura!
avatar
marcos4503
Instrutor

Masculino PONTOS : 2135
REPUTAÇÃO : 450
Idade : 18
Áreas de atuação : Desenvolvimento Android
Básico de Design
Básico Blender
Unity
Programação em C#
Outras linguas.
Respeito as regras :

Ver perfil do usuário http://www.windsoft.pe.hu

Voltar ao Topo Ir em baixo

DÚVIDA Re: Tiro com Botao UI (ME AJUDEM)

Mensagem por bruxamissi em Sab Maio 06, 2017 9:55 pm

marcos4503 escreveu:Bom. Eu troquei o Input.KeyDown lá por uma variavel que se chama "TocouEmAtirar", toda vez que ela for "True" o seu bonequinho vai atirar. Como a gente vai deixar ela em true? É isso que vou ensinar agora.

Primeiro  o script

Código:
using UnityEngine;

public class PlayerShooting : MonoBehaviour
{
    public int damagePerShot = 20;
    public float timeBetweenBullets = 0.15f;
    public float range = 100f;


    float timer;
    Ray shootRay = new Ray();
    RaycastHit shootHit;
    int shootableMask;
    ParticleSystem gunParticles;
    LineRenderer gunLine;
    AudioSource gunAudio;
    Light gunLight;
    float effectsDisplayTime = 0.2f;
    private bool TocouEmAtirar;


    void Awake()
    {
        shootableMask = LayerMask.GetMask("Shootable");
        gunParticles = GetComponent<ParticleSystem>();
        gunLine = GetComponent<LineRenderer>();
        gunAudio = GetComponent<AudioSource>();
        gunLight = GetComponent<Light>();
    }


    void Update()
    {
        timer += Time.deltaTime;

        if (TocouEmAtirar == true && timer >= timeBetweenBullets && Time.timeScale != 0) //Aqui eu troquei o Input.GetKey pela nossa nova variavel
        {
            Shoot();
        }

        if (timer >= timeBetweenBullets * effectsDisplayTime)
        {
            DisableEffects();
        }
    }


    public void DisableEffects()
    {
        gunLine.enabled = false;
        gunLight.enabled = false;
    }


    void Shoot()
    {
        timer = 0f;

        gunAudio.Play();

        gunLight.enabled = true;

        gunParticles.Stop();
        gunParticles.Play();

        gunLine.enabled = true;
        gunLine.SetPosition(0, transform.position);

        shootRay.origin = transform.position;
        shootRay.direction = transform.forward;

        if (Physics.Raycast(shootRay, out shootHit, range, shootableMask))
        {
            EnemyHealth enemyHealth = shootHit.collider.GetComponent<EnemyHealth>();
            if (enemyHealth != null)
            {
                enemyHealth.TakeDamage(damagePerShot, shootHit.point);
            }
            gunLine.SetPosition(1, shootHit.point);
        }
        else
        {
            gunLine.SetPosition(1, shootRay.origin + shootRay.direction * range);
        }
    }

    public void RecebeToque(bool transmissor) //Esse public void, vai receber os dados do seu botão da UI
    {
        TocouEmAtirar = transmissor;
    }
}

Bom. Agora com a variavel no seu script, voce vai fazer o seguinte.

1 - Criar um botão na sua UI, e adicionar o componente "Event Trigger" nele.
2 - Voce vai clicar em "Add New Event Type"
3 - Adicione "OnPointerDown"
4 - Adicione "OnPointerUp'
5 - Voce vera 2 quadrados cinza novos. Cada um deles tem um botão de + e -
6 - Clique no + do primeiro quadro e do segundo.
7 - Apos clicar nesse + nos dois quadros, voce vera que vai aparecer uma caixinha com "None (Object)" Voce vai pegar o objeto em sua cena, que possui esse script que te passei acima, e arrastar pra dentro desse lugar. Faça isso nos dois quadros.
8 - Nessas duas caixinhas, tem um botão escrito "No Function", voce vai clicar nela, e vai aparecer o nome do seu script (PlayerShooting), selecione-o e depois selecione "RecebeToque". Repita isso nas duas caixinhas.
9 - Voce vera que vai aparecer 1 booleana em cada caixinha que se chama "Transmissor", Na caixinha que se chama "OnPointerDown" voce vai deixar o Transmissor ligado, na caixinha "OnPointerUp" voce vai deixar essa caixinha desmarcada.
10 - Lembre-se de adicionar o objeto "Event Sysytem" na sua cena! Se não isso não vai funcionar!

O que fizemos aqui? Simples. Eu criei uma public void, que transfere o estado atual do seu botão para a nossa variavel que faz o player atirar. Com o "OnPointerDown" voce informa ao jogo que o jogador esta tocando no botão, e com o "OnPointerUp" voce informa ao jogador que o jogador parou de tocar no botão. Enquanto o jogador estiver com o botão pressionado, seu personagem vai atirar!

Espero ter ajudado! Se tiver alguma duvida, é so falar!
MUITOOO OBRIGAOO MANOW FUNCIONOU PERFEITAMENTE PARABENS!!
avatar
bruxamissi
Avançado
Avançado

Masculino PONTOS : 582
REPUTAÇÃO : 17
Idade : 17
Respeito as regras :

Ver perfil do usuário https://www.youtube.com/channel/UCPtkRtiJCQKFVz80fE9kIeA

Voltar ao Topo Ir em baixo

DÚVIDA Re: Tiro com Botao UI (ME AJUDEM)

Mensagem por marcos4503 em Sab Maio 06, 2017 9:59 pm

kkkkkkkkkk
Imagina! Tamo ai pra ajudar e ser ajudado! Se precisar de alguma ajuda, só falar! 
avatar
marcos4503
Instrutor

Masculino PONTOS : 2135
REPUTAÇÃO : 450
Idade : 18
Áreas de atuação : Desenvolvimento Android
Básico de Design
Básico Blender
Unity
Programação em C#
Outras linguas.
Respeito as regras :

Ver perfil do usuário http://www.windsoft.pe.hu

Voltar ao Topo Ir em baixo

DÚVIDA Re: Tiro com Botao UI (ME AJUDEM)

Mensagem por bruxamissi em Dom Maio 07, 2017 11:23 am

marcos4503 escreveu:kkkkkkkkkk
Imagina! Tamo ai pra ajudar e ser ajudado! Se precisar de alguma ajuda, só falar! 
Como eu faria para esse msm botao chamar uma animaçao?
Que no caso seria a animaçao "shoot"
avatar
bruxamissi
Avançado
Avançado

Masculino PONTOS : 582
REPUTAÇÃO : 17
Idade : 17
Respeito as regras :

Ver perfil do usuário https://www.youtube.com/channel/UCPtkRtiJCQKFVz80fE9kIeA

Voltar ao Topo Ir em baixo

DÚVIDA Re: Tiro com Botao UI (ME AJUDEM)

Mensagem por marcos4503 em Dom Maio 07, 2017 11:49 am

Ai voce teria que colocar o animator no personagem, colocar uma animação nele que se chama "Shoot" e chamar uma classe do animator sempre que o player tocar em atirar.
avatar
marcos4503
Instrutor

Masculino PONTOS : 2135
REPUTAÇÃO : 450
Idade : 18
Áreas de atuação : Desenvolvimento Android
Básico de Design
Básico Blender
Unity
Programação em C#
Outras linguas.
Respeito as regras :

Ver perfil do usuário http://www.windsoft.pe.hu

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum