Procurar
Últimos assuntos
Tópicos mais ativos
Tópicos mais visitados
Top dos mais postadores
JOZGamer | ||||
Enrraim | ||||
AlissonSB | ||||
MetaRidley | ||||
jpnuclear | ||||
VictaoxD | ||||
douganderson | ||||
Sunao de corvo | ||||
LucasHasory | ||||
ander27andy |
Os membros mais ativos do mês
Nenhum usuário |
Os membros mais ativos da semana
Nenhum usuário |
Quem está conectado?
Há 1 usuário online :: 0 registrados, 0 invisíveis e 1 visitante :: 1 motor de buscaNenhum
[ Ver toda a lista ]
O recorde de usuários online foi de 139 em Qua Abr 07, 2021 11:14 am
[Tutorial] Usando a função Raycast
Página 1 de 1
[Tutorial] Usando a função Raycast
Esse tutorial foi publicado por The Doctor do The Game Maker Brasil
Raycast
O raycast é uma função muito útil e o que ele faz é bem simples, lança um raio de um ponto de originem em um direção até uma certa distancia e retorna verdadeiro ou falso caso colida com algum objeto. Todos objetos que conter o componente collider( Box, Capsule, Sphere, Mesh, etc...) ele pode ser atingido por um Raycast, para evitar alguma colisão com raycast você pode utilizar outra mask(mascara).
Para entender melhor fiz uma imagem demostrando como é em jogo:
O objeto azul: Lança o raycast
Raycast: Colide com outro objeto
Ao colidir o raycast retorna true(verdadeiro).
Alguns exemplos que pode ser feito com Raycast:
Abrir um porta, lança um raycast com a porta ao aperta botão do mouse e envia a função de Abrir_Fechar() por exemplo.
Criar um objeto, lança um raycast em direção ao terreno e instancia o objeto no x, y e z onde o raycast colídio.
Código para utilizar o Raycast: ( C# )
- Código:
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); //Direção do raio
RaycastHit hit; //Cria um váriavel hit(onde ele bate)
if (Physics.Raycast(ray, out hit, 100)) //Primeiro argumento: Direção, Segundo: Váriavel para receber a colisão, Terçeiro: Distancia máxima do raio
{
print("Raycast colidindo!!!"); // Print no console para vê se está funcionando
}
Apenas com isso já consegue enviar um raycast na direção do mouse, se travar o mouse no centro da tela pode utilizar em jogos de primeira pessoa ou pode utilizar isso:
- Código:
int x = Screen.width / 2;
int y = Screen.height / 2;
Ray ray = Camera.main.ScreenPointToRay(new Vector3(x, y)); // Direção do raio no centro da tela
Qualquer erro por favor me avisar, estou escrevendo sem ajuda do compilador.
Uma coisa bem legal para acompanhar o Raycast é GetCompnent, Tag, Input:
- Código:
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); //Direção do raio
RaycastHit hit; //Cria um váriavel hit(onde ele bate)
if (Physics.Raycast(ray, out hit, 100)) //Primeiro argumento: Direção, Segundo: Váriavel para receber a colisão, Terçeiro: Distancia máxima do raio
{
if (Input.GetButtonDown("Fire1")) //Se o botão do mouse esquerdo for pressionado
{
// Componente
Porta objporta = hit.collider.GetComponent<Porta>(); //Verifica se o objeto tem o componente Porta
if(objporta != null){ //Se tiver
//Algo acontece
}
// Tag
if(hit.collider.tag == "porta"){ // Caso o objeto tenha a tag porta
//Algo acontece
}
/* Nunca na sua vida utiliza os 2 juntos, é a mesma coisa que declarar variável A = 5; e depois dizer que é 5;
private int a = 5;
a = 5;
*/
}
}
Caso utilizar TAG, lembre-se de criar ela e colocar no objeto.
Tutorial feito por mim, fique a vontade para utilizar e modificar o código.
Bom acho que é isso. Caso tenha algo faltando ou tenha alguma duvida avise-me.
Use e abusem dessa função(Extremamente leve) quando utilizado com colliders simples.
Tópicos semelhantes
» [Tutorial] Usando a interface
» [Vídeo-Aulas] Desenvolvimento de Games - Tutorial de Unity 3D (por Desenvolvimento de Games - Tutorial de Unity 3D)
» [Tutorial] Introdução ao unity3d
» [Tutorial] Como usar o plugin para enviar "Push Notifications"
» [Mini-tutorial] Como baixar o Unity3D gratuitamente
» [Vídeo-Aulas] Desenvolvimento de Games - Tutorial de Unity 3D (por Desenvolvimento de Games - Tutorial de Unity 3D)
» [Tutorial] Introdução ao unity3d
» [Tutorial] Como usar o plugin para enviar "Push Notifications"
» [Mini-tutorial] Como baixar o Unity3D gratuitamente
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|
Qui Abr 27, 2017 3:44 pm por Maxmiliano Maia de Freita
» Compatibility smartphones with unity and google cardboard sdk
Seg Abr 03, 2017 11:39 am por Convidado
» como usar o tempo na unity
Dom Set 04, 2016 10:29 pm por italo
» Posso comercializar modelos criados no 3DsMax?
Ter Ago 23, 2016 9:41 am por VictaoxD
» O lugar que você pertence
Sáb Ago 13, 2016 7:48 pm por Enrraim
» Beverage Hunter
Sáb Ago 13, 2016 4:17 pm por Enrraim
» Olá sou o Victor Aragon
Qui Ago 11, 2016 9:49 am por VictaoxD
» [Video-Aula] Mecânica de Armas com Unity (por Camaleão Digital)
Sex Ago 05, 2016 5:05 pm por JOZGamer
» [Concurso de Arte #001] Melhor logo (Resultado)
Qua Ago 03, 2016 5:44 pm por JOZGamer