Como obter componentes de outro objeto usando raycast ?
5 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Como obter componentes de outro objeto usando raycast ?
Pessoal eu quero saber como pegar componentes e variáveis de script de outro objeto onde o raycast bateu?
Willian Wii- Avançado
- PONTOS : 3032
REPUTAÇÃO : 10
Idade : 26
Áreas de atuação : Multiplayer com unity
Respeito as regras :
Re: Como obter componentes de outro objeto usando raycast ?
Desculpe, não deu para entender, se possível explique melhor, está meio confuso isso que disse para outras pessoas conseguirem entender também.
Rafael.- Membro
- PONTOS : 2897
REPUTAÇÃO : 5
Áreas de atuação : Programação. Desenvolvimento de Software.
Respeito as regras :
Re: Como obter componentes de outro objeto usando raycast ?
Provavelmente oque ele quer dizer e Como pegar valores de Variaveis componente de um objeto e Scripts de onde o rayCast Encostou
DragonEarthGamesProggrame- Membro
- PONTOS : 2923
REPUTAÇÃO : 6
Idade : 21
Áreas de atuação : Modelagem & C#
Respeito as regras :
Re: Como obter componentes de outro objeto usando raycast ?
sim e isso.DragonEarthGamesProggrame escreveu:Provavelmente oque ele quer dizer e Como pegar valores de Variaveis componente de um objeto e Scripts de onde o rayCast Encostou
Willian Wii- Avançado
- PONTOS : 3032
REPUTAÇÃO : 10
Idade : 26
Áreas de atuação : Multiplayer com unity
Respeito as regras :
Re: Como obter componentes de outro objeto usando raycast ?
Quando voce faz um raycast voce deve passar um RaycastHit, e então se o raycast colidir com algum GameObject(que tenha colisor), as informações do objeto que colidiu vai para o RaycastHit, então voce pode usar um GetComponent no objeto do RaycastHit e alterar seus valores(se estes forem publicos).
Re: Como obter componentes de outro objeto usando raycast ?
Obrigado cara!Manawydan escreveu:Quando voce faz um raycast voce deve passar um RaycastHit, e então se o raycast colidir com algum GameObject(que tenha colisor), as informações do objeto que colidiu vai para o RaycastHit, então voce pode usar um GetComponent no objeto do RaycastHit e alterar seus valores(se estes forem publicos).
GetComponent ().transform.tag;
E assim eu queria pegar a tag do objeto
Willian Wii- Avançado
- PONTOS : 3032
REPUTAÇÃO : 10
Idade : 26
Áreas de atuação : Multiplayer com unity
Respeito as regras :
Re: Como obter componentes de outro objeto usando raycast ?
- Código:
public class InteractableBaseObject
{
// Base class for interactable objects...
public string ObjectName { get; private set; }
}
- Código:
public class Interaction
{
[SerializeField] private LayerMask _interactableObjects;
private void Update()
{
if (Input.GetButtonDown("Fire1"))
InteractionRay();
}
private void InteractionRay()
{
RaycastHit hit;
Ray ray = (Camera.main.ScreenPointToRay(Input.mousePosition)
if (Physics.Raycast(ray, out hit, 1000.0f, _interactableObjects))
{
InteractableBaseObject interactableBaseObject = hit.collider.GetComponent<InteractableBaseObject>()
if (interactableBaseObject != null)
{
Debug.Log(interactableBaseObject.ObjectName);
}
}
}
}
Basicamente isso, mais pra frente irei postar um asset basico aqui no forum pra gerenciar esses sistemas de interações que muita gente necessita...
Se precisar de ajudar pra entender o script, so perguntar.
Re: Como obter componentes de outro objeto usando raycast ?
GetComponent é usado para pegar componentes, tag não é um componente e sim uma propriedade do GameObject.
Logo no seu RaycastHit voce pode usar a propriedade transform.tag pra verificar a tag do objeto que colidiu, ou ja comparar a tag com transform.CompareTag
Então suponhamos que seu RaycastHit se chama hit, voce faz:
Logo no seu RaycastHit voce pode usar a propriedade transform.tag pra verificar a tag do objeto que colidiu, ou ja comparar a tag com transform.CompareTag
Então suponhamos que seu RaycastHit se chama hit, voce faz:
- Código:
if(hit.transform.CompareTag("Player")){
print("O Raycast colidiu com objeto de tag Player");
}
Re: Como obter componentes de outro objeto usando raycast ?
vlw cara funcionou!Manawydan escreveu:GetComponent é usado para pegar componentes, tag não é um componente e sim uma propriedade do GameObject.
Logo no seu RaycastHit voce pode usar a propriedade transform.tag pra verificar a tag do objeto que colidiu, ou ja comparar a tag com transform.CompareTag
Então suponhamos que seu RaycastHit se chama hit, voce faz:Ps: Apaguei suas 2 ultimas postagens, pra manter o topico organizado sempre que for adicionar algo use o botão Edit para editar seu topico invez de fazer outra postagem, evitando spam.
- Código:
if(hit.transform.CompareTag("Player")){
print("O Raycast colidiu com objeto de tag Player");
}
Willian Wii- Avançado
- PONTOS : 3032
REPUTAÇÃO : 10
Idade : 26
Áreas de atuação : Multiplayer com unity
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Como fazer um objeto 2D rotacionar em direção a outro objeto
» Como obter o componente do objeto q está colidindo?
» Como fazer para interagir um objeto com um outro objeto [Estilo Granny]
» Como fazer o objeto emitido pela partícula ser direcionado até outro objeto
» Como mudar rotacao de um objeto em relacao a posicao do outro objeto
» Como obter o componente do objeto q está colidindo?
» Como fazer para interagir um objeto com um outro objeto [Estilo Granny]
» Como fazer o objeto emitido pela partícula ser direcionado até outro objeto
» Como mudar rotacao de um objeto em relacao a posicao do outro objeto
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos