Problema em mecânica top down
Página 1 de 1
Problema em mecânica top down
Estou precisando de ajuda com uma mecânica:
Meu jogo é 2D top down, então eu queria que, quando o player passar por debaixo de um objeto com a tag DownVision, este mesmo objeto ficaria transparente, para conseguirmos enxergar por baixo.
Ao passar por debaixo da árvore, as folhas ficam transparentes corretamente, porém, ao personagem atacar, as folhas começam a piscar.
Não entendo o motivo desse problema.
Eu coloquei o script de ataque no gameObject das sprites dos braços(eles estão separados do corpo do player), e a ideia seria ele ter um trigger 2d que ativa ao entrar em contato com determinadas coisas. O script de DownVision ficou no corpo do player, e a ideia sereia ele também ter um trigger 2d que ativa ao entrar em contato com objetos da tag DownVision.
Achei que, por serem triggers em objetos diferentes, pararia de piscar, porém, continuou.
Vocês sabem alguma forma de separar o trigger do ataque do trigger da árvore para o trigger de ataque não funcionar com o trigger do DownVision?
SCRIPTS
PlayerAttack:
DownVision
Meu jogo é 2D top down, então eu queria que, quando o player passar por debaixo de um objeto com a tag DownVision, este mesmo objeto ficaria transparente, para conseguirmos enxergar por baixo.
Ao passar por debaixo da árvore, as folhas ficam transparentes corretamente, porém, ao personagem atacar, as folhas começam a piscar.
Não entendo o motivo desse problema.
Eu coloquei o script de ataque no gameObject das sprites dos braços(eles estão separados do corpo do player), e a ideia seria ele ter um trigger 2d que ativa ao entrar em contato com determinadas coisas. O script de DownVision ficou no corpo do player, e a ideia sereia ele também ter um trigger 2d que ativa ao entrar em contato com objetos da tag DownVision.
Achei que, por serem triggers em objetos diferentes, pararia de piscar, porém, continuou.
Vocês sabem alguma forma de separar o trigger do ataque do trigger da árvore para o trigger de ataque não funcionar com o trigger do DownVision?
SCRIPTS
PlayerAttack:
- Código:
[size=14]using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerAttack : MonoBehaviour
{
public PlayerMove playerMove;
public PlayerStats playerStats;
void Update()
{
if(Input.GetMouseButton(0))
{
playerMove.anim.SetBool("IsAttacking", true);
playerStats.isAttacking = true;
} else
{
playerMove.anim.SetBool("IsAttacking", false);
playerStats.isAttacking = false;
}
}
void OnTriggerEnter2D(Collider2D other)
{
if(other.gameObject.tag == "Enemy" && playerStats.isAttacking == true)
{
other.gameObject.GetComponent<EnemyStats>().EnemyLifeFunction((float)playerStats.attackValue);
}
if(other.gameObject.tag == "Resource" && playerStats.isAttacking == true)
{
if(other.gameObject.GetComponent<NaturalResources>().CompareType(TYPE_RESOURCE.TREE))
{
other.gameObject.GetComponent<NaturalResources>().ResourceDamage((float)playerStats.attackValue);
} else if(other.gameObject.GetComponent<NaturalResources>().CompareType(TYPE_RESOURCE.ROCK))
{
} else if(other.gameObject.GetComponent<NaturalResources>().CompareType(TYPE_RESOURCE.PLANT))
{
other.gameObject.GetComponent<NaturalResources>().ResourceDamage((float)playerStats.attackValue);
}
}
if(other.gameObject.tag == "Animal" && playerStats.isAttacking == true)
{
other.gameObject.GetComponent<AnimalStats>().AnimalLifeFunction((float)playerStats.attackValue);
}
}
}
[/size]
DownVision
- Código:
using System.Collections;[size=14][/size]
using System.Collections.Generic;[size=14][/size]
using UnityEngine;[size=14][/size]
[size=14][/size]
public class DownVision : MonoBehaviour[size=14][/size]
{[size=14][/size]
void OnTriggerStay2D(Collider2D other)[size=14][/size]
{[size=14][/size]
if(other.gameObject.tag == "DownVision")[size=14][/size]
{[size=14][/size]
other.gameObject.GetComponent<SpriteRenderer>().color = new Color(other.gameObject.GetComponent<SpriteRenderer>().color.r, other.gameObject.GetComponent<SpriteRenderer>().color.g, other.gameObject.GetComponent<SpriteRenderer>().color.b, 0.5f);[size=14][/size]
}[size=14][/size]
}[size=14][/size]
[size=14][/size]
void OnTriggerExit2D(Collider2D other)[size=14][/size]
{[size=14][/size]
if(other.gameObject.tag == "DownVision")[size=14][/size]
{[size=14][/size]
other.gameObject.GetComponent<SpriteRenderer>().color = new Color(other.gameObject.GetComponent<SpriteRenderer>().color.r, other.gameObject.GetComponent<SpriteRenderer>().color.g, other.gameObject.GetComponent<SpriteRenderer>().color.b, 1.0f);[size=14][/size]
}[size=14][/size]
}[size=14][/size]
}
erickfabio366- Membro
- PONTOS : 1396
REPUTAÇÃO : 18
Respeito as regras :
Tópicos semelhantes
» Mecânica simples no estilo Jogo da Memória
» Dúvida com mecânica de voltar o tempo
» Mecânica estilingue Angry Birds.
» Mecânica do Inimigo (Horror Survive)
» Mecânica de destruição de parte de um sprite
» Dúvida com mecânica de voltar o tempo
» Mecânica estilingue Angry Birds.
» Mecânica do Inimigo (Horror Survive)
» Mecânica de destruição de parte de um sprite
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos