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 : 970
REPUTAÇÃO : 18
Respeito as regras :

» 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
» Problema com o ThirdPersonController
» Mecânica estilingue Angry Birds.
» Mecânica do Inimigo (Horror Survive)
» Mecânica de destruição de parte de um sprite
» Problema com o ThirdPersonController
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos