[TUTORIAL] DANO POR QUEDA e BARRA DE VIDA CONTÍNUA no mesmo script
+5
Weslley
edumoran
Elinfe
YGORRIEFF
MarcosSchultz
9 participantes
Página 1 de 1
[TUTORIAL] DANO POR QUEDA e BARRA DE VIDA CONTÍNUA no mesmo script
Faaala galera... Dei uma melhorada em alguns tutoriais antigos que eu havia feito... Ajustei o sistema de dano por queda para ser compatível com o sistema de barra de vida... basicamente vai tudo no mesmo script.
Primeiramente, coloque a tag "Player" no seu jogador
Agora, crie um script em C# com o nome JOGADOR e cole este código nele:
Agora basta configurar as variáveis e jogar as texturas nos seus devidos lugares, uma com o meio transparente para ser o contorno, e outra vermelha, para ser a vida...
Eu utilizei estas aqui:
Estes 2 tutoriais podem servir de referência:
Tomar dano ao cair
Barra de vida contínua
Primeiramente, coloque a tag "Player" no seu jogador
Agora, crie um script em C# com o nome JOGADOR e cole este código nele:
- Código:
using UnityEngine;
using System.Collections;
public class JOGADOR : MonoBehaviour {
private CharacterController controlador;
private GameObject Jogador;
private float UltimaPosicaoEmY,DistanciaDeQueda;
public float DistanciaMaximaDeQueda = 4,DanoPorMetro = 5 ;
private float VidaDoPersonagem;
public Texture Sangue,Contorno;
public int VidaCheia = 100;
void Start (){
controlador = GetComponent <CharacterController> ();
VidaDoPersonagem = VidaCheia;
Jogador = GameObject.FindWithTag ("Player");
}
void Update (){
if (UltimaPosicaoEmY > Jogador.transform.position.y && controlador.velocity.y < 0) {
DistanciaDeQueda += UltimaPosicaoEmY-Jogador.transform.position.y;
}
UltimaPosicaoEmY = Jogador.transform.position.y;
if (DistanciaDeQueda >= DistanciaMaximaDeQueda && controlador.isGrounded) {
VidaDoPersonagem = VidaDoPersonagem - DanoPorMetro*DistanciaDeQueda;
ZerarVariaveis ();
}
if (DistanciaDeQueda < DistanciaMaximaDeQueda && controlador.isGrounded) {
ZerarVariaveis ();
}
//
if (VidaDoPersonagem >= VidaCheia) {
VidaDoPersonagem = VidaCheia;
} else if (VidaDoPersonagem <= 0) {
VidaDoPersonagem = 0;
Morreu ();
}
}
void ZerarVariaveis (){
DistanciaDeQueda = 0;
UltimaPosicaoEmY = 0;
}
void OnGUI (){
GUI.DrawTexture (new Rect (Screen.width / 25, Screen.height / 15, Screen.width / 5.5f/VidaCheia*VidaDoPersonagem, Screen.height / 25), Sangue);
GUI.DrawTexture (new Rect (Screen.width / 40, Screen.height / 40, Screen.width / 5, Screen.height / 8), Contorno);
}
void Morreu (){
//coloque comandos para a morte aqui
}
}
Agora basta configurar as variáveis e jogar as texturas nos seus devidos lugares, uma com o meio transparente para ser o contorno, e outra vermelha, para ser a vida...
Eu utilizei estas aqui:
Estes 2 tutoriais podem servir de referência:
Tomar dano ao cair
Barra de vida contínua
Última edição por MarcosSchultz em Ter Jun 07, 2016 9:17 pm, editado 1 vez(es)
Re: [TUTORIAL] DANO POR QUEDA e BARRA DE VIDA CONTÍNUA no mesmo script
VLW MANO TU E DEMAIS ME AJUDO MT SIMPLIFICO
YGORRIEFF- Iniciante
- PONTOS : 3339
REPUTAÇÃO : 0
Re: [TUTORIAL] DANO POR QUEDA e BARRA DE VIDA CONTÍNUA no mesmo script
Bom dia!
Parabéns, pelo tutorial.
Estou tendo um probleminha, com a barra de vida, estou usando Unity 5, e a minha barra de vida é um Slider, bem, quando sofro a queda de acordo com a limitações o Slider de vida continua a diminuir, tipo limito a queda a 8 metros, se caio 9 metros o Slider diminui até zerar a vida. O que fazer?
O código é esse:
Parabéns, pelo tutorial.
Estou tendo um probleminha, com a barra de vida, estou usando Unity 5, e a minha barra de vida é um Slider, bem, quando sofro a queda de acordo com a limitações o Slider de vida continua a diminuir, tipo limito a queda a 8 metros, se caio 9 metros o Slider diminui até zerar a vida. O que fazer?
O código é esse:
- Código:
using UnityEngine;
using System.Collections;
public class Queda : MonoBehaviour {
private CharacterController controlador;
public Transform player;
private float UPY, DQ;//Ultima Posicao em Y, Distancia de Queda
public float DMQ = 4, DPM = 5 ;//Distancia Maxima de Queda / Dano por Metro;
private ContadorVida contadorVida;//Criando uma variavel e buscando no Script ContadorVida os dados necessarios.
void Start ()
{
controlador = GetComponent();
contadorVida = Camera.main.gameObject.GetComponent();//Contador de vida fora do player
}
void Update ()
{
DistanciaQ ();
}
void DistanciaQ()//Calcula a distancia entre o player e o chao
{
if (UPY > player.transform.position.y && controlador.velocity.y < 0)
{
DQ += UPY - player.transform.position.y;
Debug.Log(DQ);
}
UPY = player.transform.position.y;
if (DQ >= DMQ && controlador.isGrounded)
{
contadorVida.vidaPlayer = contadorVida.vidaPlayer - DPM *DQ;
contadorVida.BarraLive((float)contadorVida.vidaPlayer / contadorVida.vidaPlayerM);
}
if (DQ < DMQ && controlador.isGrounded)
{
ZerarVariaveis ();
}
}
void ZerarVariaveis()
{
DQ = 0;
UPY = 0;
}
}
Elinfe- Iniciante
- PONTOS : 3374
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] DANO POR QUEDA e BARRA DE VIDA CONTÍNUA no mesmo script
Não entendi direito sua dúvida... poderia especificar melhor???
A prorósito, essa sua void Start está meio estranha. Cade os componentes?
A prorósito, essa sua void Start está meio estranha. Cade os componentes?
Re: [TUTORIAL] DANO POR QUEDA e BARRA DE VIDA CONTÍNUA no mesmo script
Consegui resolver, agora tá fino, obrigado pela atenção.
Elinfe- Iniciante
- PONTOS : 3374
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] DANO POR QUEDA e BARRA DE VIDA CONTÍNUA no mesmo script
cara esta dando este erro oque pode ser
access it.
You probably need to add a CharacterController to the game object "person". Or your script needs to check if the component is attached before using it.
UnityEngine.CharacterController.get_velocity () (at C:/buildslave/unity/build/artifacts/generated/common/modules/Physics/DynamicsBindings.gen.cs:3300)
JOGADOR.Update () (at Assets/scripts/JOGADOR.cs:21)
access it.
You probably need to add a CharacterController to the game object "person". Or your script needs to check if the component is attached before using it.
UnityEngine.CharacterController.get_velocity () (at C:/buildslave/unity/build/artifacts/generated/common/modules/Physics/DynamicsBindings.gen.cs:3300)
JOGADOR.Update () (at Assets/scripts/JOGADOR.cs:21)
edumoran- Membro
- PONTOS : 2946
REPUTAÇÃO : 0
Idade : 29
Respeito as regras :
Re: [TUTORIAL] DANO POR QUEDA e BARRA DE VIDA CONTÍNUA no mesmo script
edumoran escreveu:cara esta dando este erro oque pode ser
access it.
You probably need to add a CharacterController to the game object "person". Or your script needs to check if the component is attached before using it.
UnityEngine.CharacterController.get_velocity () (at C:/buildslave/unity/build/artifacts/generated/common/modules/Physics/DynamicsBindings.gen.cs:3300)
JOGADOR.Update () (at Assets/scripts/JOGADOR.cs:21)
O seu Jogador usa CharacterController?
Ele é um FPSController ou um CharacterController? Por que é necessário.
edumoran- Membro
- PONTOS : 2946
REPUTAÇÃO : 0
Idade : 29
Respeito as regras :
edumoran- Membro
- PONTOS : 2946
REPUTAÇÃO : 0
Idade : 29
Respeito as regras :
Re: [TUTORIAL] DANO POR QUEDA e BARRA DE VIDA CONTÍNUA no mesmo script
fpsController Não pode ser encontrado esse script exist ? ou a unity não compilou
Weslley- Moderador
- PONTOS : 5729
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: [TUTORIAL] DANO POR QUEDA e BARRA DE VIDA CONTÍNUA no mesmo script
Olá pessoal, alguém pode me informar onde habilito ou o que estou fazendo de errado. Obrigado
MissingComponentException: Não há 'CharacterController' anexado ao objeto de jogo "ThirdPersonController", mas um script está tentando acessá-lo.
Você provavelmente precisará adicionar um CharacterController ao objeto de jogo "ThirdPersonController". Ou o seu script precisa verificar se o componente está conectado antes de usá-lo.
UnityEngine.CharacterController.get_velocity () (em C: /buildslave/unity/build/artifacts/generated/bindings_old/common/Physics/DynamicsBindings.gen.cs: 3283)
JOGADOR.Update () (at Assets/Scenes/JOGADOR.cs:24)
MissingComponentException: Não há 'CharacterController' anexado ao objeto de jogo "ThirdPersonController", mas um script está tentando acessá-lo.
Você provavelmente precisará adicionar um CharacterController ao objeto de jogo "ThirdPersonController". Ou o seu script precisa verificar se o componente está conectado antes de usá-lo.
UnityEngine.CharacterController.get_velocity () (em C: /buildslave/unity/build/artifacts/generated/bindings_old/common/Physics/DynamicsBindings.gen.cs: 3283)
JOGADOR.Update () (at Assets/Scenes/JOGADOR.cs:24)
vitorpruss- Iniciante
- PONTOS : 2397
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] DANO POR QUEDA e BARRA DE VIDA CONTÍNUA no mesmo script
Eu segui o Tutorial importando o asset nativo da Unity e ThirdPersonCharacter e ele anda pula tudo normal, porem da este erro com este script.vitorpruss escreveu:Olá pessoal, alguém pode me informar onde habilito ou o que estou fazendo de errado. Obrigado
MissingComponentException: Não há 'CharacterController' anexado ao objeto de jogo "ThirdPersonController", mas um script está tentando acessá-lo.
Você provavelmente precisará adicionar um CharacterController ao objeto de jogo "ThirdPersonController". Ou o seu script precisa verificar se o componente está conectado antes de usá-lo.
UnityEngine.CharacterController.get_velocity () (em C: /buildslave/unity/build/artifacts/generated/bindings_old/common/Physics/DynamicsBindings.gen.cs: 3283)
JOGADOR.Update () (at Assets/Scenes/JOGADOR.cs:24)
vitorpruss- Iniciante
- PONTOS : 2397
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] DANO POR QUEDA e BARRA DE VIDA CONTÍNUA no mesmo script
Você adicionou o componente Character Controller no objeto "ThirdPersonController"?vitorpruss escreveu:Olá pessoal, alguém pode me informar onde habilito ou o que estou fazendo de errado. Obrigado
MissingComponentException: Não há 'CharacterController' anexado ao objeto de jogo "ThirdPersonController", mas um script está tentando acessá-lo.
Você provavelmente precisará adicionar um CharacterController ao objeto de jogo "ThirdPersonController". Ou o seu script precisa verificar se o componente está conectado antes de usá-lo.
UnityEngine.CharacterController.get_velocity () (em C: /buildslave/unity/build/artifacts/generated/bindings_old/common/Physics/DynamicsBindings.gen.cs: 3283)
JOGADOR.Update () (at Assets/Scenes/JOGADOR.cs:24)
NKKF- ProgramadorMaster
- PONTOS : 4820
REPUTAÇÃO : 574
Idade : 20
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras :
Re: [TUTORIAL] DANO POR QUEDA e BARRA DE VIDA CONTÍNUA no mesmo script
Obrigado, eu não havia colocado este componente e agora fiz isso, o erro não aparece mais porém o personagem salta da tela ao minimo toque e desaparece.NKKF escreveu:Você adicionou o componente Character Controller no objeto "ThirdPersonController"?vitorpruss escreveu:Olá pessoal, alguém pode me informar onde habilito ou o que estou fazendo de errado. Obrigado
MissingComponentException: Não há 'CharacterController' anexado ao objeto de jogo "ThirdPersonController", mas um script está tentando acessá-lo.
Você provavelmente precisará adicionar um CharacterController ao objeto de jogo "ThirdPersonController". Ou o seu script precisa verificar se o componente está conectado antes de usá-lo.
UnityEngine.CharacterController.get_velocity () (em C: /buildslave/unity/build/artifacts/generated/bindings_old/common/Physics/DynamicsBindings.gen.cs: 3283)
JOGADOR.Update () (at Assets/Scenes/JOGADOR.cs:24)
vitorpruss- Iniciante
- PONTOS : 2397
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] DANO POR QUEDA e BARRA DE VIDA CONTÍNUA no mesmo script
Zerei os atributos do componente 'Character Controller" que esta dentro do third person controller, e a movimentação voltou ao normal, porém a barra de vida nao sofreu alterações nem ocorre dano algum.vitorpruss escreveu:Obrigado, eu não havia colocado este componente e agora fiz isso, o erro não aparece mais porém o personagem salta da tela ao minimo toque e desaparece.NKKF escreveu:Você adicionou o componente Character Controller no objeto "ThirdPersonController"?vitorpruss escreveu:Olá pessoal, alguém pode me informar onde habilito ou o que estou fazendo de errado. Obrigado
MissingComponentException: Não há 'CharacterController' anexado ao objeto de jogo "ThirdPersonController", mas um script está tentando acessá-lo.
Você provavelmente precisará adicionar um CharacterController ao objeto de jogo "ThirdPersonController". Ou o seu script precisa verificar se o componente está conectado antes de usá-lo.
UnityEngine.CharacterController.get_velocity () (em C: /buildslave/unity/build/artifacts/generated/bindings_old/common/Physics/DynamicsBindings.gen.cs: 3283)
JOGADOR.Update () (at Assets/Scenes/JOGADOR.cs:24)
vitorpruss- Iniciante
- PONTOS : 2397
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] DANO POR QUEDA e BARRA DE VIDA CONTÍNUA no mesmo script
mas o player só leva dano se cair de um lugar alto? ele morre no final ou precisa de animaçao de morte?
francisco barroso- Programador
- PONTOS : 2615
REPUTAÇÃO : 59
Respeito as regras :
Re: [TUTORIAL] DANO POR QUEDA e BARRA DE VIDA CONTÍNUA no mesmo script
francisco barroso escreveu:mas o player só leva dano se cair de um lugar alto? ele morre no final ou precisa de animaçao de morte?
Os comandos de morte é você quem deve criar de acordo com o seu jogo, dentro da void "Morte"
Re: [TUTORIAL] DANO POR QUEDA e BARRA DE VIDA CONTÍNUA no mesmo script
MarcosSchultz escreveu:Faaala galera... Dei uma melhorada em alguns tutoriais antigos que eu havia feito... Ajustei o sistema de dano por queda para ser compatível com o sistema de barra de vida... basicamente vai tudo no mesmo script.
Primeiramente, coloque a tag "Player" no seu jogador
Agora, crie um script em C# com o nome JOGADOR e cole este código nele:
- Código:
using UnityEngine;
using System.Collections;
public class JOGADOR : MonoBehaviour {
private CharacterController controlador;
private GameObject Jogador;
private float UltimaPosicaoEmY,DistanciaDeQueda;
public float DistanciaMaximaDeQueda = 4,DanoPorMetro = 5 ;
private float VidaDoPersonagem;
public Texture Sangue,Contorno;
public int VidaCheia = 100;
void Start (){
controlador = GetComponent <CharacterController> ();
VidaDoPersonagem = VidaCheia;
Jogador = GameObject.FindWithTag ("Player");
}
void Update (){
if (UltimaPosicaoEmY > Jogador.transform.position.y && controlador.velocity.y < 0) {
DistanciaDeQueda += UltimaPosicaoEmY-Jogador.transform.position.y;
}
UltimaPosicaoEmY = Jogador.transform.position.y;
if (DistanciaDeQueda >= DistanciaMaximaDeQueda && controlador.isGrounded) {
VidaDoPersonagem = VidaDoPersonagem - DanoPorMetro*DistanciaDeQueda;
ZerarVariaveis ();
}
if (DistanciaDeQueda < DistanciaMaximaDeQueda && controlador.isGrounded) {
ZerarVariaveis ();
}
//
if (VidaDoPersonagem >= VidaCheia) {
VidaDoPersonagem = VidaCheia;
} else if (VidaDoPersonagem <= 0) {
VidaDoPersonagem = 0;
Morreu ();
}
}
void ZerarVariaveis (){
DistanciaDeQueda = 0;
UltimaPosicaoEmY = 0;
}
void OnGUI (){
GUI.DrawTexture (new Rect (Screen.width / 25, Screen.height / 15, Screen.width / 5.5f/VidaCheia*VidaDoPersonagem, Screen.height / 25), Sangue);
GUI.DrawTexture (new Rect (Screen.width / 40, Screen.height / 40, Screen.width / 5, Screen.height / 8), Contorno);
}
void Morreu (){
//coloque comandos para a morte aqui
}
}
Agora basta configurar as variáveis e jogar as texturas nos seus devidos lugares, uma com o meio transparente para ser o contorno, e outra vermelha, para ser a vida...
Eu utilizei estas aqui:
Estes 2 tutoriais podem servir de referência:
Tomar dano ao cair
Barra de vida contínua
Pablo Conti- Iniciante
- PONTOS : 2240
REPUTAÇÃO : 0
Idade : 19
Áreas de atuação : HardWare,PhotoShop
Respeito as regras :
Re: [TUTORIAL] DANO POR QUEDA e BARRA DE VIDA CONTÍNUA no mesmo script
Oi Pessoal eu fiz tudo certinho e deu esse erro no script C# me ajudem
O Erro e esse
Assets/vida/JOGADOR.cs(4,14): error CS0101: The namespace `global::' already contains a definition for `JOGADOR'
O Erro e esse
Assets/vida/JOGADOR.cs(4,14): error CS0101: The namespace `global::' already contains a definition for `JOGADOR'
Pablo Conti- Iniciante
- PONTOS : 2240
REPUTAÇÃO : 0
Idade : 19
Áreas de atuação : HardWare,PhotoShop
Respeito as regras :
Re: [TUTORIAL] DANO POR QUEDA e BARRA DE VIDA CONTÍNUA no mesmo script
script duplicado ou vc ja tem um script com o nome JOGADORPablo Conti escreveu:Oi Pessoal eu fiz tudo certinho e deu esse erro no script C# me ajudem
O Erro e esse
Assets/vida/JOGADOR.cs(4,14): error CS0101: The namespace `global::' already contains a definition for `JOGADOR'
francisco barroso- Programador
- PONTOS : 2615
REPUTAÇÃO : 59
Respeito as regras :
Tópicos semelhantes
» [TUTORIAL] Sistema de fome, sede, barra de vida, barra de estamina, itens e dano por queda
» [TUTORIAL] Barra de VIDA / HP contínua
» Erro ao ligar script barra de vida / continua ao personagem
» fazer o player perde vida e sua barra de vida descer conforme o dano
» [RESOLVIDO] Ajuda com script de dano por queda
» [TUTORIAL] Barra de VIDA / HP contínua
» Erro ao ligar script barra de vida / continua ao personagem
» fazer o player perde vida e sua barra de vida descer conforme o dano
» [RESOLVIDO] Ajuda com script de dano por queda
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos