[DUVIDA EM CÓDIGO]ScreenPointToRay
4 participantes
Página 1 de 1
[DUVIDA EM CÓDIGO]ScreenPointToRay
- Código:
using UnityEngine;
using System.Collections;
using System;
public class Select : MonoBehaviour
{
public GameObject[] characters;
public GameObject characterSelected;
private int indexCharacterSelected;
void Start()
{
}
void Update()
{
SelectCharacterClick();
indexCharacterSelected = Mathf.Clamp(indexCharacterSelected, 0, characters.Length);
if (indexCharacterSelected > -1)
{
characterSelected = characters[indexCharacterSelected];
}
}
void SelectCharacterClick()
{
if (Input.GetMouseButtonDown(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
bool clickOverCharacter = Physics.Raycast(ray, out hit);
if (clickOverCharacter)
{
indexCharacterSelected = Array.IndexOf(characters, hit.collider.gameObject);
}
}
}
}
Poderiam me ajudar a minha unity esta dando erro nessa linha{Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);} o que eu posso fazer ?
Soulphantom- Membro
- PONTOS : 3226
REPUTAÇÃO : 3
Idade : 24
Áreas de atuação : PHP,HTML,C#,Blender etc
Respeito as regras :
Re: [DUVIDA EM CÓDIGO]ScreenPointToRay
qual exatamente e seu erro ?
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: [DUVIDA EM CÓDIGO]ScreenPointToRay
da erro aqui Camera.main.ScreenPointToRay Como se não estivesse no contexto.
Soulphantom- Membro
- PONTOS : 3226
REPUTAÇÃO : 3
Idade : 24
Áreas de atuação : PHP,HTML,C#,Blender etc
Respeito as regras :
Re: [DUVIDA EM CÓDIGO]ScreenPointToRay
Tente especificar qual camera voce quer usar.
fonte: http://answers.unity3d.com/questions/242023/raycast-an-object-to-the-mouse-position.html
- Código:
public Camera myCam;
// later
Ray vRay = myCam.ScreenPointToRay(Input.mousePosition);
fonte: http://answers.unity3d.com/questions/242023/raycast-an-object-to-the-mouse-position.html
RenanMSV- Instrutor
- PONTOS : 4484
REPUTAÇÃO : 356
Áreas de atuação : Programação em C#, PHP. SQL, JavaScript (Web)
Respeito as regras :
Re: [DUVIDA EM CÓDIGO]ScreenPointToRay
continua dando erro
esse erro
'Camera' does not contain a definition for 'ScreenPointToRay' and no extension method 'ScreenPointToRay' accepting a first argument of type 'Camera' could be found (are you missing a using directive or an assembly reference?).
esse erro
'Camera' does not contain a definition for 'ScreenPointToRay' and no extension method 'ScreenPointToRay' accepting a first argument of type 'Camera' could be found (are you missing a using directive or an assembly reference?).
Soulphantom- Membro
- PONTOS : 3226
REPUTAÇÃO : 3
Idade : 24
Áreas de atuação : PHP,HTML,C#,Blender etc
Respeito as regras :
RenanMSV- Instrutor
- PONTOS : 4484
REPUTAÇÃO : 356
Áreas de atuação : Programação em C#, PHP. SQL, JavaScript (Web)
Respeito as regras :
Re: [DUVIDA EM CÓDIGO]ScreenPointToRay
- Código:
using UnityEngine;
using System.Collections;
using System;
public class Select : MonoBehaviour
{
public GameObject[] characters;
public GameObject characterSelected;
public Camera camera;
private int indexCharacterSelected;
void Start()
{
}
void Update()
{
SelectCharacterClick();
indexCharacterSelected = Mathf.Clamp(indexCharacterSelected, 0, characters.Length);
if (indexCharacterSelected > -1)
{
characterSelected = characters[indexCharacterSelected];
}
}
void SelectCharacterClick()
{
if (Input.GetMouseButtonDown(0))
{
Ray ray = camera.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
bool clickOverCharacter = Physics.Raycast(ray, out hit);
if (clickOverCharacter)
{
indexCharacterSelected = Array.IndexOf(characters, hit.collider.gameObject);
}
}
}
}
Soulphantom- Membro
- PONTOS : 3226
REPUTAÇÃO : 3
Idade : 24
Áreas de atuação : PHP,HTML,C#,Blender etc
Respeito as regras :
Re: [DUVIDA EM CÓDIGO]ScreenPointToRay
Talvez o erro seja porque o argumento do ScreenPointToRay necessita ser tridimensional (um Vector3) e não um Vector2 (caso do Input.mousePosition)...
Experimenta trocar isso:
Ray ray = camera.ScreenPointToRay(Input.mousePosition);
Por algo assim:
Ray ray = camera.ScreenPointToRay(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 10f));
Obs: As coordenadas X e Y representam o ponto na tela, no caso a posição do mouse, mas para se traçar o raio é ainda necessário fornecer uma coordenada Z que significa a profundidade/comprimento no qual esse Ray vai avançar no mundo 3D apontando para a direção do X,Y.
Coloquei 10 como um valor qualquer para testar, mas isso pode ser ajustado conforme o caso específico.
Se isso não resolver, manda mais informação p/tentarmos aprofundar!
Experimenta trocar isso:
Ray ray = camera.ScreenPointToRay(Input.mousePosition);
Por algo assim:
Ray ray = camera.ScreenPointToRay(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 10f));
Obs: As coordenadas X e Y representam o ponto na tela, no caso a posição do mouse, mas para se traçar o raio é ainda necessário fornecer uma coordenada Z que significa a profundidade/comprimento no qual esse Ray vai avançar no mundo 3D apontando para a direção do X,Y.
Coloquei 10 como um valor qualquer para testar, mas isso pode ser ajustado conforme o caso específico.
Se isso não resolver, manda mais informação p/tentarmos aprofundar!
Tópicos semelhantes
» Duvida com codigo toutch
» (Duvida) Codigo secreto KEY's
» [Dúvida] - Pausar Código no Unity
» Dúvida se código da unity é obsoleto
» Como encurtar e melhorar meu código, elevador(+ dúvida sobre programação em unity)
» (Duvida) Codigo secreto KEY's
» [Dúvida] - Pausar Código no Unity
» Dúvida se código da unity é obsoleto
» Como encurtar e melhorar meu código, elevador(+ dúvida sobre programação em unity)
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos