tenho um script que faz o zombie atacar o jogador e tirar vida so que nao esta funcionando alguem pode me ajudar
+3
Weverton Borges da Silva
Moa
brunopereira06
7 participantes
Página 1 de 1
tenho um script que faz o zombie atacar o jogador e tirar vida so que nao esta funcionando alguem pode me ajudar
- Código:
using UnityEngine; // script do inimigo
using System.Collections;
[RequireComponent(typeof(NavMeshAgent))]
public class Inimigo : MonoBehaviour {
private GameObject Player;
private NavMeshAgent NavMesh;
private bool podeAtacar;
// Use this for initialization
void Start () {
Player = GameObject.FindWithTag ("Player");
NavMesh = GetComponent<NavMeshAgent> ();
}
// Update is called once per frame
void Update () {
NavMesh.destination = Player.transform.position;
if (Vector3.Distance (transform.position, Player.transform.position) < 1.5f) {
Atacar ();
}
}
void Atacar(){
if (podeAtacar == true) {
StartCoroutine ("TempoDeAtaque");
Player.GetComponent<Jogador> ().vida -= 40;
}
}
IEnumerator TempoDeAtaque(){
podeAtacar = false;
yield return new WaitForSeconds (1);
podeAtacar = true;
}
}
- Código:
using UnityEngine; // script do jogador
using System.Collections;
using UnityEngine.SceneManagement;
public class Jogador : MonoBehaviour {
public int vida = 100;
public string faliceu;
// Use this for initialization
void Start () {
transform.tag = "Player";
}
// Update is called once per frame
void Update () {
if (vida <= 0) {
vida = 0;
Morte ();
}
}
void Morte(){
SceneManager.LoadScene ("faliceu");
}
}
brunopereira06- Iniciante
- PONTOS : 2893
REPUTAÇÃO : 0
Áreas de atuação : Desenvolvedor
Respeito as regras :
Re: tenho um script que faz o zombie atacar o jogador e tirar vida so que nao esta funcionando alguem pode me ajudar
Bom dia amigo, qual é o problema que esta acontecendo?
Moa- Membro
- PONTOS : 3119
REPUTAÇÃO : 4
Idade : 24
Áreas de atuação : Programação
Respeito as regras :
Re: tenho um script que faz o zombie atacar o jogador e tirar vida so que nao esta funcionando alguem pode me ajudar
nao aparece problema na box so nao disconta vida do script ai eu nunca morro
brunopereira06- Iniciante
- PONTOS : 2893
REPUTAÇÃO : 0
Áreas de atuação : Desenvolvedor
Respeito as regras :
Re: tenho um script que faz o zombie atacar o jogador e tirar vida so que nao esta funcionando alguem pode me ajudar
nao aparece problema na box so nao disconta vida do script ai eu nunca morro
brunopereira06- Iniciante
- PONTOS : 2893
REPUTAÇÃO : 0
Áreas de atuação : Desenvolvedor
Respeito as regras :
Re: tenho um script que faz o zombie atacar o jogador e tirar vida so que nao esta funcionando alguem pode me ajudar
na void Atacar do zumbi, não é só colocar:
Player.vida -=40;
Assim:
Player.vida -=40;
Assim:
- Código:
using UnityEngine; // script do inimigo
using System.Collections;
[RequireComponent(typeof(NavMeshAgent))]
public class Inimigo : MonoBehaviour {
private GameObject Player;
private NavMeshAgent NavMesh;
private bool podeAtacar;
// Use this for initialization
void Start () {
Player = GameObject.FindWithTag ("Player");
NavMesh = GetComponent<NavMeshAgent> ();
}
// Update is called once per frame
void Update () {
NavMesh.destination = Player.transform.position;
if (Vector3.Distance (transform.position, Player.transform.position) < 1.5f) {
Atacar ();
}
}
void Atacar(){
if (podeAtacar == true) {
StartCoroutine ("TempoDeAtaque");
Player.vida -=40;
}
}
IEnumerator TempoDeAtaque(){
podeAtacar = false;
yield return new WaitForSeconds (1);
podeAtacar = true;
}
}
Weverton Borges da Silva- Avançado
- PONTOS : 3130
REPUTAÇÃO : 49
Idade : 33
Respeito as regras :
Re: tenho um script que faz o zombie atacar o jogador e tirar vida so que nao esta funcionando alguem pode me ajudar
Ou melhor, Player não, "Jogador":
[list=linenums]
[*]
E se não me engano a variável vida tem que ser static.
[/list]
[list=linenums]
[*]
- Código:
using UnityEngine; // script do inimigo
using System.Collections;
[RequireComponent(typeof(NavMeshAgent))]
public class Inimigo : MonoBehaviour {
private GameObject Player;
private NavMeshAgent NavMesh;
private bool podeAtacar;
// Use this for initialization
void Start () {
Player = GameObject.FindWithTag ("Player");
NavMesh = GetComponent<NavMeshAgent> ();
}
// Update is called once per frame
void Update () {
NavMesh.destination = Player.transform.position;
if (Vector3.Distance (transform.position, Player.transform.position) < 1.5f) {
Atacar ();
}
}
void Atacar(){
if (podeAtacar == true) {
StartCoroutine ("TempoDeAtaque");
Jogador.vida -=40;
}
}
IEnumerator TempoDeAtaque(){
podeAtacar = false;
yield return new WaitForSeconds (1);
podeAtacar = true;
}
}
E se não me engano a variável vida tem que ser static.
[/list]
Weverton Borges da Silva- Avançado
- PONTOS : 3130
REPUTAÇÃO : 49
Idade : 33
Respeito as regras :
Re: tenho um script que faz o zombie atacar o jogador e tirar vida so que nao esta funcionando alguem pode me ajudar
brunopereira06 acho que isso resolve, fiz de cabeça, se n der certo me fala q vejo certinho escreveu:
- Código:
using UnityEngine; // script do inimigo
using System.Collections;
[RequireComponent(typeof(NavMeshAgent))]
public class Inimigo : MonoBehaviour {
private GameObject Player;
private NavMeshAgent NavMesh;
private bool podeAtacar;
// Use this for initialization
void Start () {
Player = GameObject.FindWithTag ("Player");
NavMesh = GetComponent<NavMeshAgent> ();
}
// Update is called once per frame
void Update () {
NavMesh.destination = Player.transform.position;
if (Vector3.Distance (transform.position, Player.transform.position) < 1.5f) {
Atacar ();
}
}
void Atacar(){
if (podeAtacar == true) {
StartCoroutine ("TempoDeAtaque");
Jogador.Vida = Vida - 40;
}
}
IEnumerator TempoDeAtaque(){
podeAtacar = false;
yield return new WaitForSeconds (1);
podeAtacar = true;
}
}
- Código:
using UnityEngine; // script do jogador
using System.Collections;
using UnityEngine.SceneManagement;
public class Jogador : MonoBehaviour {
public static int vida = 100;
public string faliceu;
// Use this for initialization
void Start () {
transform.tag = "Player";
}
// Update is called once per frame
void Update () {
if (vida <= 0) {
vida = 0;
Morte ();
}
}
void Morte(){
SceneManager.LoadScene ("faliceu");
}
}
wender- Avançado
- PONTOS : 3587
REPUTAÇÃO : 19
Idade : 26
Áreas de atuação : Modelagem, Programação
Respeito as regras :
Re: tenho um script que faz o zombie atacar o jogador e tirar vida so que nao esta funcionando alguem pode me ajudar
A vida do inimigo não pode ser estática, porque quando você mata 1 todos morrem por causa que quando acerta 1 inimigo como a variavel é estática todos recebem o dano.
rafaelllsd- ProgramadorMaster
- PONTOS : 5241
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: tenho um script que faz o zombie atacar o jogador e tirar vida so que nao esta funcionando alguem pode me ajudar
É verdade, mas a variável vida que eu estava me referindo pertence ao "jogador". E o jogador é um só, correto?rafaelllsd escreveu:A vida do inimigo não pode ser estática, porque quando você mata 1 todos morrem por causa que quando acerta 1 inimigo como a variavel é estática todos recebem o dano.
Weverton Borges da Silva- Avançado
- PONTOS : 3130
REPUTAÇÃO : 49
Idade : 33
Respeito as regras :
Re: tenho um script que faz o zombie atacar o jogador e tirar vida so que nao esta funcionando alguem pode me ajudar
A vida do jogador pode ser estática, a dos inimigos não...
Mas eu geralmente evito usar variáveis estáticas em tudo... usar variáveis públicas e acessar via GetComponent é uma maneira mais "segura" para evitar erros.
Mas eu geralmente evito usar variáveis estáticas em tudo... usar variáveis públicas e acessar via GetComponent é uma maneira mais "segura" para evitar erros.
Re: tenho um script que faz o zombie atacar o jogador e tirar vida so que nao esta funcionando alguem pode me ajudar
wender escreveu:brunopereira06 acho que isso resolve, fiz de cabeça, se n der certo me fala q vejo certinho escreveu:
- Código:
using UnityEngine; // script do inimigo
using System.Collections;
[RequireComponent(typeof(NavMeshAgent))]
public class Inimigo : MonoBehaviour {
private GameObject Player;
private NavMeshAgent NavMesh;
private bool podeAtacar;
// Use this for initialization
void Start () {
Player = GameObject.FindWithTag ("Player");
NavMesh = GetComponent<NavMeshAgent> ();
}
// Update is called once per frame
void Update () {
NavMesh.destination = Player.transform.position;
if (Vector3.Distance (transform.position, Player.transform.position) < 1.5f) {
Atacar ();
}
}
void Atacar(){
if (podeAtacar == true) {
StartCoroutine ("TempoDeAtaque");
Jogador.Vida = Vida - 40;
}
}
IEnumerator TempoDeAtaque(){
podeAtacar = false;
yield return new WaitForSeconds (1);
podeAtacar = true;
}
}
- Código:
using UnityEngine; // script do jogador
using System.Collections;
using UnityEngine.SceneManagement;
public class Jogador : MonoBehaviour {
public static int vida = 100;
public string faliceu;
// Use this for initialization
void Start () {
transform.tag = "Player";
}
// Update is called once per frame
void Update () {
if (vida <= 0) {
vida = 0;
Morte ();
}
}
void Morte(){
SceneManager.LoadScene ("faliceu");
}
}
- Código:
using UnityEngine; // script do inimigo
using System.Collections;
[RequireComponent(typeof(NavMeshAgent))]
public class Inimigo : MonoBehaviour {
private GameObject Player;
private NavMeshAgent NavMesh;
private bool podeAtacar;
// Use this for initialization
void Start () {
Player = GameObject.FindWithTag ("Player");
NavMesh = GetComponent<NavMeshAgent> ();
}
// Update is called once per frame
void Update () {
NavMesh.destination = Player.transform.position;
if (Vector3.Distance (transform.position, Player.transform.position) < 1.5f) {
Atacar ();
}
}
void Atacar(){
if (podeAtacar == true) {
StartCoroutine ("TempoDeAtaque");
Jogador.Vida = Jogador.Vida - 40;
- Código:
}
}
IEnumerator TempoDeAtaque(){
podeAtacar = false;
yield return new WaitForSeconds (1);
podeAtacar = true;
}
}
troque a Jogador.Vida = Vida - 40; por Jogador.Vida = Jogador.Vida - 40 ou Jogador.Vida -= 40; pois a variável vida é statica.
sabbath- MembroAvançado
- PONTOS : 3362
REPUTAÇÃO : 24
Respeito as regras :
Tópicos semelhantes
» (AJUDA) Alguem pode me ajudar com script da unity ADS
» Fiz um script mas não está funcionando corretamente. Alguém pode me ajudar?
» alguem pode me ajudar com esse script
» Alguém pode me ajudar com o Script de som dos passos?
» Meu script de movimentação não funciona, alguém pode me ajudar?
» Fiz um script mas não está funcionando corretamente. Alguém pode me ajudar?
» alguem pode me ajudar com esse script
» Alguém pode me ajudar com o Script de som dos passos?
» Meu script de movimentação não funciona, alguém pode me ajudar?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos