Inimigo ao encostar morre e player leva dano UNITY 5 2D
3 participantes
Página 1 de 1
Inimigo ao encostar morre e player leva dano UNITY 5 2D
Gente to tendo um erro quando meu player encosta no meu inimigo ele leva dano mas meu inimigo morre, quero que ao inimigo encoste no player ele leve dano e o inimigo sobreviva
Aqui ta o script deles
https://pastebin.com/uQ5ePrs0 Script do Player
https://pastebin.com/wdpyA0Qp Script do inimigo
https://pastebin.com/P37pSEuw Script do Dano
Aqui ta o script deles
https://pastebin.com/uQ5ePrs0 Script do Player
https://pastebin.com/wdpyA0Qp Script do inimigo
https://pastebin.com/P37pSEuw Script do Dano
guilhermeprata- Iniciante
- PONTOS : 2655
REPUTAÇÃO : 0
Respeito as regras :
Re: Inimigo ao encostar morre e player leva dano UNITY 5 2D
Acho que o problema está na linha 91 do script do inimigo, apaga ou comenta ela e depois tenta
kalel013- Avançado
- PONTOS : 3143
REPUTAÇÃO : 30
Idade : 24
Áreas de atuação : Artista 3d (blender), iniciante em programação (python e PHP), iniciante em arte 2d (InkScape)
Respeito as regras :
Re: Inimigo ao encostar morre e player leva dano UNITY 5 2D
Se eu tira funciona, mas esse void serve pra quanto meu player pular nele matar, queria saber um jeito que funcione os dois, quando player encostar no inimigo de lado ele(player) morre e quando player pular no inimigo morre
guilhermeprata- Iniciante
- PONTOS : 2655
REPUTAÇÃO : 0
Respeito as regras :
Re: Inimigo ao encostar morre e player leva dano UNITY 5 2D
Cria uma trigger e colocar ou nos pés do player ou na cabeça do inimigo
kalel013- Avançado
- PONTOS : 3143
REPUTAÇÃO : 30
Idade : 24
Áreas de atuação : Artista 3d (blender), iniciante em programação (python e PHP), iniciante em arte 2d (InkScape)
Respeito as regras :
Re: Inimigo ao encostar morre e player leva dano UNITY 5 2D
O que eu mudaria no script ? Eu n sei muito sobre programação to aprendendo
guilhermeprata- Iniciante
- PONTOS : 2655
REPUTAÇÃO : 0
Respeito as regras :
Re: Inimigo ao encostar morre e player leva dano UNITY 5 2D
Voce pode fazer assim ativar o objeto de collisao ao pular ou atacar
Re: Inimigo ao encostar morre e player leva dano UNITY 5 2D
Então nao sei como faz no script, to aprendendo ainda sksk
guilhermeprata- Iniciante
- PONTOS : 2655
REPUTAÇÃO : 0
Respeito as regras :
Re: Inimigo ao encostar morre e player leva dano UNITY 5 2D
- Código:
public GameObject objetoDeColisao;//aqui voce colocar o objeto de colisao com o script de dano
if(Input.GetButtonDown("Jump"){
objetoDeColisao.SetActive(true);//Toda vez que voce pular ele vai ativar e causar o dano no inimigo ao colidir
}
else
{
objetoDeColisao.SetActive(false);//ao termina o pulo desativando ele
}
Re: Inimigo ao encostar morre e player leva dano UNITY 5 2D
- Código:
using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.SceneManagement; public class PlayerBehaviourScript : MonoBehaviour { private Rigidbody2D rb; private Transform tr; private Animator an; public Transform verificaChao; public Transform verificaParede; public int curHealth; public int maxHealth = 100; private bool estaAndando; private bool estaNoChao; private bool estaNaParede; private bool estaVivo; private bool viradoParaDireita; private float axis; //Variavel que controla se estou andando direita ou esquerda public float velocidade; public float forcaPulo; public float raioValidaChao; //Valida se o player se ta tocando no chao public float raioValidaParede; public LayerMask solido; void Start () { rb = GetComponent<Rigidbody2D> (); tr = GetComponent<Transform> (); an = GetComponent<Animator> (); estaVivo = true; viradoParaDireita = true; curHealth = maxHealth; } void Update () { estaNoChao = Physics2D.OverlapCircle (verificaChao.position, raioValidaChao, solido); estaNaParede = Physics2D.OverlapCircle (verificaParede.position, raioValidaParede, solido); if (estaVivo) { axis = Input.GetAxisRaw ("Horizontal"); estaAndando = Mathf.Abs (axis) > 0f; //Verifica se o player esta virando pro lado ou pro outro if (axis > 0f && !viradoParaDireita) flip (); else if (axis < 0f && viradoParaDireita) flip (); //Quando player apertar o botao de pulo if (Input.GetButtonDown ("Jump") && estaNoChao) rb.AddForce (tr.up * forcaPulo); Animations (); if (curHealth > maxHealth) { curHealth = maxHealth; } if (curHealth <= 0) { Die (); } } } void FixedUpdate() { if (estaAndando && !estaNaParede) { if (viradoParaDireita) rb.velocity = new Vector2 (velocidade, rb.velocity.y); else rb.velocity = new Vector2 (-velocidade, rb.velocity.y); } } void flip () { viradoParaDireita = !viradoParaDireita; tr.localScale = new Vector2 (-tr.localScale.x, tr.localScale.y); } void Animations(){ an.SetBool("Andando",(estaNoChao && estaAndando)); an.SetBool ("Pulando", !estaNoChao); an.SetFloat ("VelVertical", rb.velocity.y); } void OnDrawGizmosSelected(){ Gizmos.color = Color.red; Gizmos.DrawWireSphere (verificaChao.position, raioValidaChao); Gizmos.DrawWireSphere (verificaParede.position, raioValidaParede); } void OnTriggerEnter2D(Collider2D other){ if (other.gameObject.CompareTag ("Enemy")) { other.gameObject.GetComponent<EnemysBehavior> ().enabled = false; BoxCollider2D[] boxes = other.gameObject.GetComponents < BoxCollider2D> (); foreach (BoxCollider2D box in boxes) { box.enabled = false; } } } void Die (){ SceneManager.LoadScene (SceneManager.GetActiveScene().buildIndex); } public void Damage(int dmg){ curHealth -= dmg; } public IEnumerator KnockBack(float knockDur,float knockbackPwr, Vector3 knockbackDir){ float timer = 0; while (knockDur > timer) { timer += Time.deltaTime; rb.AddForce (new Vector3 (knockbackDir.x * -100, knockbackDir.y * knockbackPwr, transform.position.z)); } yield return 0; }}
guilhermeprata- Iniciante
- PONTOS : 2655
REPUTAÇÃO : 0
Respeito as regras :
Re: Inimigo ao encostar morre e player leva dano UNITY 5 2D
guilhermeprata escreveu:[list=text]
[*]using System.Collections;
[*]using System.Collections.Generic;
[*]using UnityEngine;
[*]using UnityEngine.SceneManagement;
[*]public class PlayerBehaviourScript : MonoBehaviour {
[*] private Rigidbody2D rb;
[*] private Transform tr;
[*] private Animator an;
[*] public Transform verificaChao;
[*] public Transform verificaParede;
[*] public int curHealth;
[*] public int maxHealth = 100;
[*] private bool estaAndando;
[*] private bool estaNoChao;
[*] private bool estaNaParede;
[*] private bool estaVivo;
[*] private bool viradoParaDireita;
[*] private float axis; //Variavel que controla se estou andando direita ou esquerda
[*] public float velocidade;
[*] public float forcaPulo;
[*] public float raioValidaChao; //Valida se o player se ta tocando no chao
[*] public float raioValidaParede;
[*] public LayerMask solido;
[*] void Start () {
[*] rb = GetComponent<Rigidbody2D> ();
[*] tr = GetComponent<Transform> ();
[*] an = GetComponent<Animator> ();
[*] estaVivo = true;
[*] viradoParaDireita = true;
[*] curHealth = maxHealth;
[*] }
[*] void Update () {
[*] estaNoChao = Physics2D.OverlapCircle (verificaChao.position, raioValidaChao, solido);
[*] estaNaParede = Physics2D.OverlapCircle (verificaParede.position, raioValidaParede, solido);
[*] if (estaVivo) {
[*] axis = Input.GetAxisRaw ("Horizontal");
[*] estaAndando = Mathf.Abs (axis) > 0f;
[*] //Verifica se o player esta virando pro lado ou pro outro
[*] if (axis > 0f && !viradoParaDireita)
[*] flip ();
[*] else if (axis < 0f && viradoParaDireita)
[*] flip ();
[*] //Quando player apertar o botao de pulo
[*] if (Input.GetButtonDown ("Jump") && estaNoChao)
[*] rb.AddForce (tr.up * forcaPulo);
[*] Animations ();
[*] if (curHealth > maxHealth) {
[*] curHealth = maxHealth;
[*] }
[*] if (curHealth <= 0) {
[*] Die ();
[*] }
[*] }
[*] }
[*] void FixedUpdate() {
[*] if (estaAndando && !estaNaParede) {
[*] if (viradoParaDireita)
[*] rb.velocity = new Vector2 (velocidade, rb.velocity.y);
[*] else
[*] rb.velocity = new Vector2 (-velocidade, rb.velocity.y);
[*] }
[*] }
[*] void flip () {
[*] viradoParaDireita = !viradoParaDireita;
[*] tr.localScale = new Vector2 (-tr.localScale.x, tr.localScale.y);
[*] }
[*] void Animations(){
[*] an.SetBool("Andando",(estaNoChao && estaAndando));
[*] an.SetBool ("Pulando", !estaNoChao);
[*] an.SetFloat ("VelVertical", rb.velocity.y);
[*] }
[*] void OnDrawGizmosSelected(){
[*] Gizmos.color = Color.red;
[*] Gizmos.DrawWireSphere (verificaChao.position, raioValidaChao);
[*] Gizmos.DrawWireSphere (verificaParede.position, raioValidaParede);
[*] }
[*]
[*] void OnTriggerEnter2D(Collider2D other){
[*] if (other.gameObject.CompareTag ("Enemy")) {
[*] other.gameObject.GetComponent
[*] BoxCollider2D[] boxes = other.gameObject.GetComponents < BoxCollider2D> ();
[*] foreach (BoxCollider2D box in boxes) {
[*] box.enabled = false;
[*] }
[*] }
[*] }
[*] void Die (){
[*] SceneManager.LoadScene (SceneManager.GetActiveScene().buildIndex);
[*] }
[*] public void Damage(int dmg){
[*] curHealth -= dmg;
[*] }
[*] public IEnumerator KnockBack(float knockDur,float knockbackPwr, Vector3 knockbackDir){
[*] float timer = 0;
[*] while (knockDur > timer) {
[*]
[*] timer += Time.deltaTime;
[*] rb.AddForce (new Vector3 (knockbackDir.x * -100, knockbackDir.y * knockbackPwr, transform.position.z));
[*] }
[*] yield return 0;
[*] }
[*]}
[/list]
Eu acabei n entendo como colocar no script desculpa skssksksks
guilhermeprata- Iniciante
- PONTOS : 2655
REPUTAÇÃO : 0
Respeito as regras :
Tópicos semelhantes
» dano inimigo em player
» Como colocar dano no inimigo? e vida no player?
» Ajuda com scripts de inimigo e player'' interação de zumbi e player''
» AJUDA COM PROBLEMA QUANDO INIMIGO MORRE
» dano inimigo 2D
» Como colocar dano no inimigo? e vida no player?
» Ajuda com scripts de inimigo e player'' interação de zumbi e player''
» AJUDA COM PROBLEMA QUANDO INIMIGO MORRE
» dano inimigo 2D
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos