[RESOLVIDO] Como faço para clicar em um objeto e visualizar, girar...
4 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Como faço para clicar em um objeto e visualizar, girar...
Olá.
Sou iniciante, preciso de ajuda, como faço para apertar um botão e visualizar o objeto, poder gira-lo com o mouse e depois, o objeto voltar onde estava; Como no vídeo a seguir:
Ou algo parecido...
Desde já, agradeço.
Sou iniciante, preciso de ajuda, como faço para apertar um botão e visualizar o objeto, poder gira-lo com o mouse e depois, o objeto voltar onde estava; Como no vídeo a seguir:
Ou algo parecido...
Desde já, agradeço.
c4stor- Iniciante
- PONTOS : 2050
REPUTAÇÃO : 1
Idade : 23
Áreas de atuação : Desenvolvedor Unity VR - Cursando Sistemas de Informação
Respeito as regras :
Re: [RESOLVIDO] Como faço para clicar em um objeto e visualizar, girar...
Acho que isto é o mais próximo de um tutorial pronto que eu tenho sobre esse tema
Da pra fazer um OnMouseEnter, freezar a camera, aproximar o item até a posição (camera.tranform.position + camera.transform.forword * 2)
Depois, basta rotacionar o item de acordo com os inputs do GetAxis (Mouse X e mouse Y).
Bastante simples para falar a verdade. Se não conseguir, talvez eu grave um video quando eu conseguir um tempo livre (o que pode demorar um pouco)
Da pra fazer um OnMouseEnter, freezar a camera, aproximar o item até a posição (camera.tranform.position + camera.transform.forword * 2)
Depois, basta rotacionar o item de acordo com os inputs do GetAxis (Mouse X e mouse Y).
Bastante simples para falar a verdade. Se não conseguir, talvez eu grave um video quando eu conseguir um tempo livre (o que pode demorar um pouco)
Re: [RESOLVIDO] Como faço para clicar em um objeto e visualizar, girar...
MarcosSchultz escreveu:Acho que isto é o mais próximo de um tutorial pronto que eu tenho sobre esse tema
Da pra fazer um OnMouseEnter, freezar a camera, aproximar o item até a posição (camera.tranform.position + camera.transform.forword * 2)
Depois, basta rotacionar o item de acordo com os inputs do GetAxis (Mouse X e mouse Y).
Bastante simples para falar a verdade. Se não conseguir, talvez eu grave um video quando eu conseguir um tempo livre (o que pode demorar um pouco)
O vídeo funcionou bem. Tudo certo.
Mas não entendi como adapta-lo da forma que você escreveu aqui...
Se puder fazer um vídeo seria ótimo. Obrigado.
c4stor- Iniciante
- PONTOS : 2050
REPUTAÇÃO : 1
Idade : 23
Áreas de atuação : Desenvolvedor Unity VR - Cursando Sistemas de Informação
Respeito as regras :
Re: [RESOLVIDO] Como faço para clicar em um objeto e visualizar, girar...
c4stor escreveu:MarcosSchultz escreveu:Acho que isto é o mais próximo de um tutorial pronto que eu tenho sobre esse tema
Da pra fazer um OnMouseEnter, freezar a camera, aproximar o item até a posição (camera.tranform.position + camera.transform.forword * 2)
Depois, basta rotacionar o item de acordo com os inputs do GetAxis (Mouse X e mouse Y).
Bastante simples para falar a verdade. Se não conseguir, talvez eu grave um video quando eu conseguir um tempo livre (o que pode demorar um pouco)
O vídeo funcionou bem. Tudo certo.
Mas não entendi como adapta-lo da forma que você escreveu aqui...
Se puder fazer um vídeo seria ótimo. Obrigado.
Qual controlador você está usando? O FPSController?
Provavelmente a parte mais chatinha vai ser travar o movimento da câmera mesmo, o resto é fácil.
Re: [RESOLVIDO] Como faço para clicar em um objeto e visualizar, girar...
Sim o FPSController.MarcosSchultz escreveu:c4stor escreveu:MarcosSchultz escreveu:Acho que isto é o mais próximo de um tutorial pronto que eu tenho sobre esse tema
Da pra fazer um OnMouseEnter, freezar a camera, aproximar o item até a posição (camera.tranform.position + camera.transform.forword * 2)
Depois, basta rotacionar o item de acordo com os inputs do GetAxis (Mouse X e mouse Y).
Bastante simples para falar a verdade. Se não conseguir, talvez eu grave um video quando eu conseguir um tempo livre (o que pode demorar um pouco)
O vídeo funcionou bem. Tudo certo.
Mas não entendi como adapta-lo da forma que você escreveu aqui...
Se puder fazer um vídeo seria ótimo. Obrigado.
Qual controlador você está usando? O FPSController?
Provavelmente a parte mais chatinha vai ser travar o movimento da câmera mesmo, o resto é fácil.
c4stor- Iniciante
- PONTOS : 2050
REPUTAÇÃO : 1
Idade : 23
Áreas de atuação : Desenvolvedor Unity VR - Cursando Sistemas de Informação
Respeito as regras :
Re: [RESOLVIDO] Como faço para clicar em um objeto e visualizar, girar...
Ok, vou ver se consigo elaborar um tutorial nesse fim de semana. Ta meio corrido, mas vou tentar.
Re: [RESOLVIDO] Como faço para clicar em um objeto e visualizar, girar...
Valeu!MarcosSchultz escreveu:Ok, vou ver se consigo elaborar um tutorial nesse fim de semana. Ta meio corrido, mas vou tentar.
Se puder detalhar também, no vídeo, as partes do script que você vai mudar.
Porque no futuro eu vou fazer um esquema para: se o item for importante, ir para o inventario, se não voltar onde estava...
c4stor- Iniciante
- PONTOS : 2050
REPUTAÇÃO : 1
Idade : 23
Áreas de atuação : Desenvolvedor Unity VR - Cursando Sistemas de Informação
Respeito as regras :
Re: [RESOLVIDO] Como faço para clicar em um objeto e visualizar, girar...
Vou ter que ficar dando UP nesse tópico, pra lembrar de fazer o tutorial, heueheueheuh. Oh vida corrida.
Re: [RESOLVIDO] Como faço para clicar em um objeto e visualizar, girar...
Nossa man!MarcosSchultz escreveu:Ok, vou ver se consigo elaborar um tutorial nesse fim de semana. Ta meio corrido, mas vou tentar.
Isso iria me ajudar muito,iria deixar o meu jogo mais interativo,espero ancioso pelo o seu tutorial...
Apesar de ser um dos únicos que realmente da vontade de assistir,já aproveitando, tem como fazer um tutorial sobre a luz da nova Unity 2019? Falar sobre o realtime e o Bake,eu realmente estou tendo dificuldades com a luz na nova unity.
Re: [RESOLVIDO] Como faço para clicar em um objeto e visualizar, girar...
A dúvida é, você quer "travar" o seu jogador enquanto observa o objeto? O código que eu fiz no vídeo acima faz exatamente as partes de mover e rotacionar os objetos, etc...
A única coisa que daria pra modificar é "travar" o FPSController enquanto está vendo o objeto... no caso seria travar movimento e rotação.
A única coisa que daria pra modificar é "travar" o FPSController enquanto está vendo o objeto... no caso seria travar movimento e rotação.
Re: [RESOLVIDO] Como faço para clicar em um objeto e visualizar, girar...
Exato. Quero que quando eu clicar no objeto: não poder andar e nem olhar para os lados.MarcosSchultz escreveu:A dúvida é, você quer "travar" o seu jogador enquanto observa o objeto? O código que eu fiz no vídeo acima faz exatamente as partes de mover e rotacionar os objetos, etc...
A única coisa que daria pra modificar é "travar" o FPSController enquanto está vendo o objeto... no caso seria travar movimento e rotação.
O objeto chegue perto da minha visão e eu apenas possa clicar nele e girar.
Logo depois, quando clicar em uma tecla, o objeto voltar exatamente onde estava.
c4stor- Iniciante
- PONTOS : 2050
REPUTAÇÃO : 1
Idade : 23
Áreas de atuação : Desenvolvedor Unity VR - Cursando Sistemas de Informação
Respeito as regras :
Re: [RESOLVIDO] Como faço para clicar em um objeto e visualizar, girar...
Só vim dar um up, para lembrar de fazer quando tiver um tempo.MarcosSchultz escreveu:A dúvida é, você quer "travar" o seu jogador enquanto observa o objeto? O código que eu fiz no vídeo acima faz exatamente as partes de mover e rotacionar os objetos, etc...
A única coisa que daria pra modificar é "travar" o FPSController enquanto está vendo o objeto... no caso seria travar movimento e rotação.
c4stor- Iniciante
- PONTOS : 2050
REPUTAÇÃO : 1
Idade : 23
Áreas de atuação : Desenvolvedor Unity VR - Cursando Sistemas de Informação
Respeito as regras :
lidog- Iniciante
- PONTOS : 2615
REPUTAÇÃO : 0
Respeito as regras :
Re: [RESOLVIDO] Como faço para clicar em um objeto e visualizar, girar...
Fiz um script que funcionou bem, se alguém precisar, ta aí:
Modificação no script mouse look
Se o pivo estiver errado(não estiver girando no meio):
Crie um GameObject vazio dentro do objeto
Desvincule o GameObject vazio do objeto
Mova ou rotacione o GameObject vazio...(para o meio)
Coloque o objeto como filho do GameObject vazio
Vincule o "objetoPai" ao GameObject
Pode marcar o tópico como resolvido
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class VisuOBJ : MonoBehaviour
{
Camera mainCamera;
float rotXTemp;
float rotYTemp;
public GameObject objetoPai;
Vector3 posicaoInicial;
Quaternion rotacaoInicial;
//
public static bool ativVisualizar;
bool mouseDentroDoObjeto;
public GameObject player;
public float distanciaMinima = 2;
public KeyCode teclaParaPegar = KeyCode.E;
//
private void Awake()
{
mainCamera = Camera.main;
}
private void Start()
{
ativVisualizar = false;
mouseDentroDoObjeto = false;
//
posicaoInicial = objetoPai.transform.position; //new Vector3(1, 1, 1);
rotacaoInicial = objetoPai.transform.rotation;
}
//
void Update()
{
float distance = Vector3.Distance(player.transform.position, objetoPai.transform.position);//medir a distancia
if (distance < distanciaMinima)
{
if (mouseDentroDoObjeto == true)
{
if (Input.GetKey(teclaParaPegar))
{
ativVisualizar = true;
}
else
{
ativVisualizar = false;
}
}
}
//
if (ativVisualizar == true)//girar
{
objetoPai.transform.position = mainCamera.transform.position + mainCamera.transform.forward * 0.4f;//trazer o item para frente da tela
Time.timeScale = 0;//travar movimento
rotXTemp = Input.GetAxis("Mouse X") * 5.0f;
rotYTemp = Input.GetAxis("Mouse Y") * 5.0f;
objetoPai.transform.Rotate(mainCamera.transform.up, -rotXTemp, Space.World);
objetoPai.transform.Rotate(mainCamera.transform.right, rotYTemp, Space.World);
}
else//voltar a posição inicial
{
Time.timeScale = 1;
objetoPai.transform.rotation = rotacaoInicial;
objetoPai.transform.position = posicaoInicial;
}
}
//
private void OnMouseEnter()
{
mouseDentroDoObjeto = true;
}
private void OnMouseExit()
{
mouseDentroDoObjeto = false;
}
}
Modificação no script mouse look
- Código:
public void LookRotation(Transform character, Transform camera)
{
if (!Input.GetKey(KeyCode.E))//contrario! // segure E e trava as rotações.
{
float yRot = CrossPlatformInputManager.GetAxis("Mouse X") * XSensitivity;
float xRot = CrossPlatformInputManager.GetAxis("Mouse Y") * YSensitivity;
m_CharacterTargetRot *= Quaternion.Euler(0f, yRot, 0f);
m_CameraTargetRot *= Quaternion.Euler(-xRot, 0f, 0f);
}
Se o pivo estiver errado(não estiver girando no meio):
Crie um GameObject vazio dentro do objeto
Desvincule o GameObject vazio do objeto
Mova ou rotacione o GameObject vazio...(para o meio)
Coloque o objeto como filho do GameObject vazio
Vincule o "objetoPai" ao GameObject
Pode marcar o tópico como resolvido
c4stor- Iniciante
- PONTOS : 2050
REPUTAÇÃO : 1
Idade : 23
Áreas de atuação : Desenvolvedor Unity VR - Cursando Sistemas de Informação
Respeito as regras :
Tópicos semelhantes
» [DÚVIDA] FAZER OBJETO GIRAR EM TORNO DE SI QUANDO CLICAR E ARRASTAR O OBJETO PARA OS LADOS
» Como faço para mudar a posição de um objeto para perto de outro.
» Como que faço para rotacionar um objeto na posição do player como o cenario
» Como fazer para aparecer um objeto na tela ao clicar com o mouse ou apertar um botão?
» [RESOLVIDO] Como faço pra um objeto/item acionar um evento?
» Como faço para mudar a posição de um objeto para perto de outro.
» Como que faço para rotacionar um objeto na posição do player como o cenario
» Como fazer para aparecer um objeto na tela ao clicar com o mouse ou apertar um botão?
» [RESOLVIDO] Como faço pra um objeto/item acionar um evento?
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos