Como fazer Escudo seguir a movimentação do Player?
3 participantes
Página 1 de 1
Como fazer Escudo seguir a movimentação do Player?
Ola pessoal, estou com problemas. Criei um power up de escudo, mas ele não segue o player, ele vai "pintando infinitamente" por meu player vai andando e essa "linha de pintura" que ele deixa não some quando o tempo se esgota e o power up e desativado.
Como posso arrumar isso? Procurei na net mas não achei nada que me ajudasse.
Esse e meu script de coleta da power up (esta funcionando perfeitamente)
Codigo faz o escudo funcionar dentro da Classe Jogador
Como posso arrumar isso? Procurei na net mas não achei nada que me ajudasse.
Esse e meu script de coleta da power up (esta funcionando perfeitamente)
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PowerUpEscudo : MonoBehaviour {
private Rigidbody2D rb2d;
[SerializeField]
private float velocidade;
void Start () {
Movimentar ();
}
private void Movimentar()
{
rb2d = GetComponent<Rigidbody2D>();
rb2d.velocity = transform.up * velocidade;
}
void OnTriggerEnter2D(Collider2D outro)
{
ColetaP(outro);
}
void ColetaP(Collider2D outro)
{
if (outro.tag == "Player")
{
Destroy (gameObject);
}
}
}
Codigo faz o escudo funcionar dentro da Classe Jogador
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Jogador : MonoBehaviour {
public bool escudoprotetor = false;
[SerializeField]
private GameObject Escudo;
[SerializeField]
public Transform instanciadorEscudo;
void FixedUpdate()
{
if(escudoprotetor)
{
AtivarEscudo ();
StartCoroutine("Countdown",0);
}
}
void OnTriggerEnter2D(Collider2D outro)
{
ColetaP(outro);
}
void ColetaP(Collider2D outro)
{
if (outro.tag == "shield")
{
escudoprotetor = true;
}
}
private void AtivarEscudo()
{
Escudo.SetActive (true);
Instantiate (Escudo, instanciadorEscudo.transform.position, Quaternion.identity);
}
IEnumerator Countdown()
{
yield return new WaitForSeconds (5f);
escudoprotetor = false;
}
}
RobinF- Iniciante
- PONTOS : 2649
REPUTAÇÃO : 0
Respeito as regras :
Re: Como fazer Escudo seguir a movimentação do Player?
Explica melhor o problema. O escudo não segue o player ou ele não some?
Se não me engano... Quando um objeto qualquer é instanciado, ele não é afiliado automaticamente a outro objeto (no caso o player) Por isso ele não ta seguindo o player.
Filia o escudo ao player e deixa ele desativado. quando coletar o escudo, ativa e quando acabar o tempo, desativa
Se não me engano... Quando um objeto qualquer é instanciado, ele não é afiliado automaticamente a outro objeto (no caso o player) Por isso ele não ta seguindo o player.
Filia o escudo ao player e deixa ele desativado. quando coletar o escudo, ativa e quando acabar o tempo, desativa
JorgeLuizxd- Membro
- PONTOS : 2887
REPUTAÇÃO : 2
Respeito as regras :
Re: Como fazer Escudo seguir a movimentação do Player?
JorgeLuizxd escreveu:Explica melhor o problema. O escudo não segue o player ou ele não some?
Se não me engano... Quando um objeto qualquer é instanciado, ele não é afiliado automaticamente a outro objeto (no caso o player) Por isso ele não ta seguindo o player.
Filia o escudo ao player e deixa ele desativado. quando coletar o escudo, ativa e quando acabar o tempo, desativa
Oi cara e ai?
Então o problema é que ele não segue o player, sumir ele some quando o tempo acaba. Eu Filiei o Escudo no player primeiramente mas ele ficava parado aonde o player nascia.
RobinF- Iniciante
- PONTOS : 2649
REPUTAÇÃO : 0
Respeito as regras :
Re: Como fazer Escudo seguir a movimentação do Player?
Filia o escudo ao player via script.
- Código:
//atache o player na variavel
public GameObject Player;
Transform.parent = Player.transform;
JorgeLuizxd- Membro
- PONTOS : 2887
REPUTAÇÃO : 2
Respeito as regras :
Re: Como fazer Escudo seguir a movimentação do Player?
JorgeLuizxd escreveu:Filia o escudo ao player via script.Coloque no script que fica atachado no escudo.
- Código:
//atache o player na variavel
public GameObject Player;
Transform.parent = Player.transform;
Cara, você não acredita mas na verdade ele não tava indo este tempo todo porque ele tinha rigidbody 2D, ai so foi eu desativar e fazer o que tu falou que deu certo.
RobinF- Iniciante
- PONTOS : 2649
REPUTAÇÃO : 0
Respeito as regras :
Re: Como fazer Escudo seguir a movimentação do Player?
Desculpa incomodar, mais uma pergunta.
Quando um inimigo colide com meu escudo, o inimigo é destruído mas faz meu player perder vida também, sera que meu código do escudo esta faltando algo?
Script Escudo
Quando um inimigo colide com meu escudo, o inimigo é destruído mas faz meu player perder vida também, sera que meu código do escudo esta faltando algo?
Script Escudo
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Escudo : MonoBehaviour {
void OnTriggerEnter2D(Collider2D outro)
{
Proteger (outro);
}
void Proteger(Collider2D outro)
{
if (outro.tag == "Asteroide")
{
Destroy (outro.gameObject);
}
if (outro.tag == "InimigoNave")
{
Destroy (outro.gameObject);
}
if (outro.tag == "TiroIni")
{
Destroy (outro.gameObject);
}
}
}
RobinF- Iniciante
- PONTOS : 2649
REPUTAÇÃO : 0
Respeito as regras :
Re: Como fazer Escudo seguir a movimentação do Player?
Olha se o collider do seu player é maior que o collider do escudo. o collider do escudo tem que ficar por fora do collider do player
JorgeLuizxd- Membro
- PONTOS : 2887
REPUTAÇÃO : 2
Respeito as regras :
Re: Como fazer Escudo seguir a movimentação do Player?
JorgeLuizxd escreveu:Olha se o collider do seu player é maior que o collider do escudo. o collider do escudo tem que ficar por fora do collider do player
O colider do player é do tamanho dele, e o escudo é maior que o player e seu colider tbm, dei uma checada e o colider do escudo é bem maior e fica longe do colider do player, toda vez que o inimigo colide com o escudo ele nem chega a relar no player, mas mesmo assim o player acaba perdendo vida. E também descobri outro bug, o player não esta mais morrendo quando a vida dele chega a 0, ele esta morrendo agora quando a vida chega a -1, mesmo a função dizendo para ele morrer quando chegar a 0.
RobinF- Iniciante
- PONTOS : 2649
REPUTAÇÃO : 0
Respeito as regras :
Re: Como fazer Escudo seguir a movimentação do Player?
tenta setar a posição do escudo por script e deixa ele não filiado ao player
- Código:
public GameObject Player;
private GameObject Escudo;
public Vector3 OffSet;
void Update()
{
Escudo.transform.position = new Vector3(Player.transform.position + OffSet);
}
void Start()
{
Escudo = this.gameObject;
}
Phph09- Profissional
- PONTOS : 3790
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Re: Como fazer Escudo seguir a movimentação do Player?
acho que no seu caso o que estava acontecendo é que por seu escudo estar filiado ao seu player o trigger do seu player também é detectado quando colide com o escudo
Phph09- Profissional
- PONTOS : 3790
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Re: Como fazer Escudo seguir a movimentação do Player?
Phph09 escreveu:acho que no seu caso o que estava acontecendo é que por seu escudo estar filiado ao seu player o trigger do seu player também é detectado quando colide com o escudo
Acabei conseguindo fazer o escudo funcionar. Criei uma booleana que ativa a minha função de perder vida só quando o escudo esta inativo. O que estou com problemas para entender é por que meu escudo é destruído depois que eu pego o power-up mais de 1x. Não tenho nenhuma função ou comando pedindo para que o código faça isso. Ele simplesmente destrói o objeto, e isso não faz o menor sentido.
RobinF- Iniciante
- PONTOS : 2649
REPUTAÇÃO : 0
Respeito as regras :
Tópicos semelhantes
» como fazer um objeto seguir o player 2D
» Como fazer a câmera começar com uma visão do topo e seguir o player
» Unity2D - Como fazer a IA do inimigo patrulhar e quando chegar perto do player, seguir ele
» Como fazer a lógica de movimentação do player - asset importado do MIXAMO
» Ajuda pra fazer uma IA para um pet seguir o player.
» Como fazer a câmera começar com uma visão do topo e seguir o player
» Unity2D - Como fazer a IA do inimigo patrulhar e quando chegar perto do player, seguir ele
» Como fazer a lógica de movimentação do player - asset importado do MIXAMO
» Ajuda pra fazer uma IA para um pet seguir o player.
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos