[RESOLVIDO] Problema com resolucao do canvas, alinhamento da posicao do mouse e gameobject
3 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Problema com resolucao do canvas, alinhamento da posicao do mouse e gameobject
Tenho uma duvida no caso eu queria fazer um efeito onde apareceria um preview (imagem) no local exato onde o cursor do mouse estivesse quando o cursor passasse por cima de um objeto com tag especifica, porem eu pensava que bastava zerar todos os valores da posicao do rect transform e fazer receber os valores novos depois, mas pra minha surpresa os valores estao ficando todos bugados e mesmo depois de eu ter colocado algumas variaveis para corrigir a posicao, ainda sim estou tendo problema e piora quando a tela muda de tamanho, o cursor fica num ponto e o preview aparece do outro lado, queria saber se ha alguma maneira de se referenciar do tamanho da tela do canvas, e como seria possivel fazer um alinhamento preciso de uma imagem que vai aparecer no canvas na posicao do cursor do mouse em qualquer resolucao alinhada com o mouse e em qualquer posicao da tela? Desde ja agradeco pela boa vontade em ajudar.
- Código:
void Raycaster(){
// if(Input.GetMouseButtonDown (0)){
RaycastHit hit;
bool naMesa;
if(Physics.Raycast(kamera.ScreenPointToRay(Input.mousePosition),out hit)) {
if(hit.collider.gameObject.tag == "Cartas"){
Debug.Log (posiMouse);
int corrx = -580;
int corry = -250;
posiMouse = Input.mousePosition;
miniPreview.GetComponent<RectTransform>().anchoredPosition = new Vector3 (posiMouse.x+corrx, posiMouse.y+corry, posiMouse.z);
cardlocal = hit.transform.gameObject;
naMesa = cardlocal.GetComponent<Card1>().Ativado;
if(naMesa == true){
miniPreview.SetActive (true);
}
if(naMesa == false){
miniPreview.SetActive (false);
}
}
}
if(Physics.Raycast(kamera.ScreenPointToRay(Input.mousePosition),out hit)) {
if(hit.collider.gameObject.tag != "Cartas"){
miniPreview.SetActive (false);
cardlocal = null;
posiMouse = Input.mousePosition;
miniPreview.GetComponent<RectTransform>().anchoredPosition = new Vector3 (0,0,0);
}
}
// }
}
Ronmaster- Membro
- PONTOS : 2873
REPUTAÇÃO : 4
Respeito as regras :
Re: [RESOLVIDO] Problema com resolucao do canvas, alinhamento da posicao do mouse e gameobject
Olá, tudo bem?
Então, para você deixar uma resolução default:
Onde x e y é como se fosse 1280 e 720, por exemplo.
O fullscreen você deve saber..
Já a outra dúvida, é para você mudar a posição da imagem, no cursor do mouse??
Então, para você deixar uma resolução default:
- Código:
Screen.SetResolution(int x, int y, bool fullscreen);
Onde x e y é como se fosse 1280 e 720, por exemplo.
O fullscreen você deve saber..
Já a outra dúvida, é para você mudar a posição da imagem, no cursor do mouse??
NKKF- ProgramadorMaster
- PONTOS : 4820
REPUTAÇÃO : 574
Idade : 20
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras :
Re: [RESOLVIDO] Problema com resolucao do canvas, alinhamento da posicao do mouse e gameobject
Agradeco vou tentar implementar o SetResolution, no caso eu quero que a imagem apareça no ponto exato onde o mouse estiver sobre a carta automaticamente, a ideia inicial era usar a posicao do mouse na tela e fazer a imagem aparecer naquele ponto, mas o problema é que dependendo do lugar onde a carta esta a imagem aparece cada vez mais longe do cursor e piora quando a resolucao muda.NKKF escreveu:Olá, tudo bem?
Então, para você deixar uma resolução default:
- Código:
Screen.SetResolution(int x, int y, bool fullscreen);
Onde x e y é como se fosse 1280 e 720, por exemplo.
O fullscreen você deve saber..
Já a outra dúvida, é para você mudar a posição da imagem, no cursor do mouse??
Ronmaster- Membro
- PONTOS : 2873
REPUTAÇÃO : 4
Respeito as regras :
Re: [RESOLVIDO] Problema com resolucao do canvas, alinhamento da posicao do mouse e gameobject
Ué, como assim? Você usa o canvas no modo World ou no modo Screen?
NKKF- ProgramadorMaster
- PONTOS : 4820
REPUTAÇÃO : 574
Idade : 20
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras :
Re: [RESOLVIDO] Problema com resolucao do canvas, alinhamento da posicao do mouse e gameobject
Eu estou usando no modo screen, mas estou usando raycast e meio que estou embolando o acesso as informações de projecao 3d com 2d do canvas, voce acha que dar certo?NKKF escreveu:Ué, como assim? Você usa o canvas no modo World ou no modo Screen?
Ronmaster- Membro
- PONTOS : 2873
REPUTAÇÃO : 4
Respeito as regras :
Re: [RESOLVIDO] Problema com resolucao do canvas, alinhamento da posicao do mouse e gameobject
Nossa cara, deve ser uma loucura o seu projeto então, porque não usas um Event Trigger, ao invés de Raycast? Isto poderia facilitar seu trabalho
NKKF- ProgramadorMaster
- PONTOS : 4820
REPUTAÇÃO : 574
Idade : 20
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras :
Re: [RESOLVIDO] Problema com resolucao do canvas, alinhamento da posicao do mouse e gameobject
Blz vou testar com event triggers, na verdade eu queria ver se iria funcionar dessa forma, e quase funcionou mesmo se não tivesse dado problema na posição do mouse, então eu vou testar outras coisas pra ver
Ronmaster- Membro
- PONTOS : 2873
REPUTAÇÃO : 4
Respeito as regras :
Re: [RESOLVIDO] Problema com resolucao do canvas, alinhamento da posicao do mouse e gameobject
Boa noite Ronmaster, pelo que entendi do problema, creio que a solução mais simples seja utilizar o WorldToScreenPoint, pois assim, você teria a posição exata da tela onde o objeto em questão se encontra. Dessa forma, você só precisaria utilizar essas coordenadas para a imagem ficar sempre sobre o objeto.
Para que o tamanho da imagem seja proporcional em todos os tamanhos de tela, cabe a você estudar um pouquinho sobre âncoras e pivôs da UI da Unity, além de utilizar uma resolução de referência no canvas utilizando a opção Scale With Screen Size.
Boa sorte!
Isabela- Avançado
- PONTOS : 2837
REPUTAÇÃO : 260
Idade : 24
Respeito as regras :
Re: [RESOLVIDO] Problema com resolucao do canvas, alinhamento da posicao do mouse e gameobject
Oi Isabela obrigado por comentar, show de bola sua dica foi certeira funcionou certinho do jeito que eu queria, ainda bem que não apaguei o script agora só nao sei como tornar esse post como resolvido mas ta bão.Isabela escreveu:Boa noite Ronmaster, pelo que entendi do problema, creio que a solução mais simples seja utilizar o WorldToScreenPoint, pois assim, você teria a posição exata da tela onde o objeto em questão se encontra. Dessa forma, você só precisaria utilizar essas coordenadas para a imagem ficar sempre sobre o objeto.Para que o tamanho da imagem seja proporcional em todos os tamanhos de tela, cabe a você estudar um pouquinho sobre âncoras e pivôs da UI da Unity, além de utilizar uma resolução de referência no canvas utilizando a opção Scale With Screen Size.Boa sorte!
Ronmaster- Membro
- PONTOS : 2873
REPUTAÇÃO : 4
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Sprite posição mouse
» [RESOLVIDO] Problema com Dropdown ao alterar resolução
» Canvas e resolução nos UI
» problemas com resolução/canvas
» [Duvida] Como aumentar a resolução do Canvas
» [RESOLVIDO] Problema com Dropdown ao alterar resolução
» Canvas e resolução nos UI
» problemas com resolução/canvas
» [Duvida] Como aumentar a resolução do Canvas
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos