메인카메라 정중앙에 Ray를 쏠때 안됐던 이유
2024. 10. 30. 11:34ㆍ카테고리 없음
메인카메라 정중앙에 Ray를 쏠때 안됐던 이유
해당 필드에서 Camera 를 가져와서 해당카메라의 정중앙 위치에 레이를 쏴서 해당 레이에 부딪힌 오브젝트 정보를 볼려고 했는데 안되서 이유를 찾아봤다.
Interaction 클래스 안의 카메라 내용들만 뽑음
private Camera camera;
void Start()
{
camera = Camera.main;
}
void Update()
{
if(Time.time - lastCheckTime > checkRate)
{
lastCheckTime = Time.time;
Ray ray = camera.ScreenPointToRay(new Vector3(Screen.width / 2, Screen.height / 2));
RaycastHit hit;
if(Physics.Raycast(ray, out hit, maxCheckDistance, layerMask))
{
if(hit.collider.gameObject != curInteractGameObject)
{
curInteractGameObject = hit.collider.gameObject;
curInteractable = hit.collider.GetComponent<IInteractable>();
SetPromptText();
}
}
else
{
curInteractGameObject = null;
curInteractable = null;
promptText.gameObject.SetActive(false);
}
}
}
이렇게 카메라 정보를 메인카메라에서 가져온 다음에 그 해당카메라의 위치에 따라 레이를 쏘는데 안됐던 이유는 정확한 이유는 찾아봐야겠지만 아마 에셋에서 메인카메라를 건드리는게 있었어서 메인카메라가 내가 원하는 값이 들어가지 않아 레이가 이상한 방향을 쏘고 있었던게 문제였다.
해결
[SerializeField] private Camera camera;
void Start()
{
//camera = Camera.main;
}
카메라의 정보를 드래그엔 드롭으로 가져와서 실행해보니 내가원하는데로 레이가 갔다.