Como fazer objeto ficar na area ao passar em cima.
3 participantes
Página 1 de 1
Como fazer objeto ficar na area ao passar em cima.
Bom, eu queria saber como faço para, ao passar um objeto em cima do outro, ele fique numa certa posição.
Estou usando o OnMouseDrag para movimentar a letra e quero q quando a pessoa passe com a letra em cima de um dos quadrados, a letra fique lá.
Obs: Depois preciso verificar se as letras estão nas posições corretas.
Ex:
Estou usando o OnMouseDrag para movimentar a letra e quero q quando a pessoa passe com a letra em cima de um dos quadrados, a letra fique lá.
Obs: Depois preciso verificar se as letras estão nas posições corretas.
Ex:
ericdss- Membro
- PONTOS : 2633
REPUTAÇÃO : 5
Respeito as regras :
Re: Como fazer objeto ficar na area ao passar em cima.
ericdss escreveu:Bom, eu queria saber como faço para, ao passar um objeto em cima do outro, ele fique numa certa posição.
Estou usando o OnMouseDrag para movimentar a letra e quero q quando a pessoa passe com a letra em cima de um dos quadrados, a letra fique lá.
Obs: Depois preciso verificar se as letras estão nas posições corretas.
Tente usar um BoxCollider ou um RayCast ai quando a letra colidir com o raycast/collider você seta a posição sempre no raycast/collider pelo Vector3,transform.position dentre outros...Para a pontuação você poderia fazer a letra emitir +1 em uma int se caso ela colidir com o local certo,depois fazer a verificação da int e se a mesma for 5 por exemplo você torna uma bool true ou qualquer coisa q você quiser para quando acertar, caso não seja você pode reiniciar a cena com SceneManager...
- Código:
// Acho que seria tipo isso
// Com o Collider...
public GameObject Letra;
public int Contagem;
public bool Venceu,Travar;
void OnTriggerEnter (Collider col) {
if (col.gameObject.tag == "Letras") {
Travar = true;
// Esse letra.id seria tipo uma Identidade para a letra ai você poderia verificar se a mesma está correta...
if (Letra.Id == 1){
Contagem += 1;
}
}
}
void Update () {
if(Contagem >= 1){
Venceu = true;
} else {
Venceu = false;
}
if (Travar == true){
Letra.transform.position = this.transform.position;
}
}
// Não está um script completo... apenas um exemplo.
// Pode conter erros...
Re: Como fazer objeto ficar na area ao passar em cima.
- Código:
public GameObject Objeto;
string Tag;
public string Letra;
public bool WIN;
GameObject LetraObjeto;
void Update(){
if(WIN == true){
Objeto.transform.position = LetraObjeto.transform.position;
}
}
void OnTriggerEnter (Collider col) {
Tag = col.gameObject.tag;
LetraObjeto = col.gameObject;
if(Tag == Letra){
WIN = true;
}
}
Tenta isso.
Não testei mas deve funcionar.
Re: Como fazer objeto ficar na area ao passar em cima.
Eu jé tentei fazer com OnCollisionEnter2D e a colisão nem foi detectada quando passa com a letra em cima da forma. Achei alguns "bugs" que talvez estejam impedindo o funcionamento correto da função:
Esse é o Script que uso para movimentar a letra e limitar a posição dela dentro da camera.
Esse é o Script que uso para movimentar a letra e limitar a posição dela dentro da camera.
ericdss- Membro
- PONTOS : 2633
REPUTAÇÃO : 5
Respeito as regras :
Re: Como fazer objeto ficar na area ao passar em cima.
PauloFR escreveu:ericdss escreveu:Bom, eu queria saber como faço para, ao passar um objeto em cima do outro, ele fique numa certa posição.
Estou usando o OnMouseDrag para movimentar a letra e quero q quando a pessoa passe com a letra em cima de um dos quadrados, a letra fique lá.
Obs: Depois preciso verificar se as letras estão nas posições corretas.
Tente usar um BoxCollider ou um RayCast ai quando a letra colidir com o raycast/collider você seta a posição sempre no raycast/collider pelo Vector3,transform.position dentre outros...Para a pontuação você poderia fazer a letra emitir +1 em uma int se caso ela colidir com o local certo,depois fazer a verificação da int e se a mesma for 5 por exemplo você torna uma bool true ou qualquer coisa q você quiser para quando acertar, caso não seja você pode reiniciar a cena com SceneManager...
- Código:
// Acho que seria tipo isso
// Com o Collider...
public GameObject Letra;
public int Contagem;
public bool Venceu,Travar;
void OnTriggerEnter (Collider col) {
if (col.gameObject.tag == "Letras") {
Travar = true;
// Esse letra.id seria tipo uma Identidade para a letra ai você poderia verificar se a mesma está correta...
if (Letra.Id == 1){
Contagem += 1;
}
}
}
void Update () {
if(Contagem >= 1){
Venceu = true;
} else {
Venceu = false;
}
if (Travar == true){
Letra.transform.position = this.transform.position;
}
}
// Não está um script completo... apenas um exemplo.
// Pode conter erros...
Eu ja tentei usar OnCollisionEnter2D e a colisão nem foi detectada, coloquei umas imagens pra entenderem melhor.
ericdss- Membro
- PONTOS : 2633
REPUTAÇÃO : 5
Respeito as regras :
Re: Como fazer objeto ficar na area ao passar em cima.
Ok, tenta isso:
- Código:
GameObject PositionCorreta;//Cria um gameObjet Empty e coloca onde for a posição certa
GameObject Letra;
float dist;
bool WIN;
void Update(){
dist = Vector3.Distance(Letra.transform.position , PositionCorreta.transform.position);
if(dist < 1){
Vector3 Posi = PositionCorreta.transform.position;
Letra.transform.position = Posi;
WIN = true;
}
}
Tópicos semelhantes
» OLÁ! Como fazer um objeto (lazer no meu caso) cortar toda vez que passar em um collider?
» Como ativar som ao passar por cima de um objeto?
» Como fazer um chão quebrar ao passar por cima no Unity 3D
» [DÚVIDA] Fazer pontuação quando objeto passar por um collider
» Como fazer um objeto sumir e aparecer novamente em loop (ficar piscando) ?
» Como ativar som ao passar por cima de um objeto?
» Como fazer um chão quebrar ao passar por cima no Unity 3D
» [DÚVIDA] Fazer pontuação quando objeto passar por um collider
» Como fazer um objeto sumir e aparecer novamente em loop (ficar piscando) ?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos