예비군 갔다와서 여태 쉬었음. 진짜 너무 빠졌다. 시간이 아까우니까 열심히 달려야돼.
using UnityEngine;
using UnityEngine.UI; // UI를 제어하기 위해 필요
public class CrosshairRaycaster : MonoBehaviour
{
public Camera playerCamera; // 플레이어 카메라
public Image crosshair; // 크로스헤어 이미지
public Color defaultColor = Color.white; // 기본 색상
public Color highlightColor = Color.red; // 쓰레기를 감지했을 때 색상
public float rayDistance = 100f; // 레이캐스트 최대 거리
void Update()
{
// 크로스헤어와 카메라가 올바르게 설정되었는지 확인
if (playerCamera == null || crosshair == null)
{
Debug.LogError("Camera or Crosshair is not assigned!");
return;
}
// 화면 중심에서 레이 발사
Ray ray = playerCamera.ScreenPointToRay(new Vector3(Screen.width / 2, Screen.height / 2, 0));
RaycastHit hit;
// 레이캐스트 실행
if (Physics.Raycast(ray, out hit, rayDistance))
{
Debug.Log($"Hit Object: {hit.collider.name}, Tag: {hit.collider.tag}");
// 감지한 오브젝트가 지정된 태그인지 확인
if (IsTrash(hit.collider.tag))
{
crosshair.color = highlightColor; // 크로스헤어를 빨간색으로 변경
}
else
{
crosshair.color = defaultColor; // 기본 색상으로 복구
}
}
else
{
crosshair.color = defaultColor; // 레이캐스트가 아무것도 감지하지 못했을 때
}
}
// 쓰레기 태그인지 확인하는 헬퍼 메서드
private bool IsTrash(string tag)
{
return tag == "Food" || tag == "Recycle" || tag == "Disposable";
}
}


--> Spawn Area 콜라이더가 쓰레기 콜라이더를 덮고 있었다..!
비교적 크기가 큰 브로콜리만 스폰구역 콜리이더를 뚫고 감지가 되고있었던것.
해결은 간단히 됐음. 레이어에 Ignore Raycast있길래 설정해줬더니 해결됐다.
press 'E' to pickup메시지 추가.현재 idle - pickup - throw 상태 중 플레이어의 몸을 카메라가 따라가는 방식은 pickup, throw 애니메이션이 나올때만 사용된다. 던지기 애니메이션이 끝나면 pickup camera에서 main camera로 전환되어야 하는데, 이 때 애니메이션 창에서 내가 원하는 프레임에 메서드를 추가해 줄 수 있다.
스크립트에 해당되는 메서드를 구현하고,

애니메이션 윈도우의 특정 프레임에서 이벤트를 추가하면 된다.
