시도 1. 중점 기준으로 45도 각도별로 4방향으로 나누어 이동시킴
→ 수직벽과 경사로 예외처리를 추가하니 코드가 점점 늘어나고 원하는 각도가 간혹 안나오는 문제 발생 → 설치 오브젝트 3d모델링 교체
이유 : 유니티 기본오브젝트로 회전시키고 크기값을 조정해둔것을 쓰고있었는데 그로 인해 원하는 forward값이 안나오는 문제가 생김
시도 2. 중점기준으로 x,z축 값 비교 후 이동시키기 및 수직은 Tag찾아서 비교해서 처리
→ 수직 벽이나 트랩류들이 그리드사이즈의 절반만큼만 이동해야하다보니 설치가 힘들어 프리팹에서 그리드 사이즈 절반만큼 이동시켜놔서 특정 위치에서 회전값을 주면서 설치해야되서 번거로움
시도 3. Hit내부에 normal값으로 비교하여 tag로 비교하던것을 빼고 Bounds값을 이용하여 그리드사이즈의 절반으로 이동하더라도 의도하지 않는 설치가 안되게 수정 및 프리뷰 타입 변경
•
프리뷰의 콜라이더의 x,z값이 설치되어있는 오브젝트의 x,z축보다 크다면 설치가능
•
수직벽은 기준값이 달라져서 프리뷰의 y축값을 프리뷰의 bounds의 extents.y값으로 체크하여 프리뷰 오브젝트와 같은 위치값에 있는 오브젝트의 forward의 각도를 측정하여 1or-1이 나올경우 설치 가능으로 변경
→ 수직벽의 설치는 쉬워졌으나 트랩은 번거로워졌고 위치에 맞는 콜라이더를 찾아서 세팅해주고서 forward값을 비교해주고 있으나 간혹 의도한 바대로 작동하지 않아 회전 값을 주어야만 설치 가능으로 변할 때가 있어 수정 필요
시도 4. Trigger로 설치 가능 체크하던 것을 각 타입별로 나누어 RayCast와 CheckBox로 체크하며 Update에서 PreviewObject의 Move와 건설 가능여부를 체크
•
BuildSystem <- Preview → BuildSystem ← Preview ← BaseType(Default, verticalWall, OnSurface, OnWall)
→ 똑같이 빠르게 움직일때 중복설치 되는 문제 발생
시도 5. 스냅 기능 쪽에서 좀 더 넓게 스냅 되면 좋겟다는 피드백이 많아 Default와 VerticalWall만 RayCast를 쏴서 땅이 잡힌다면 BoxCast를 쏘도록 변경
→ 스냅 처리가 원활해졌으나 1인칭이 아니다보니 카메라와 플레이어 사이에 벽이 있을 경우 잘못설치되며 BoxCast를 Preview의 bounds로 날리다보니 사이즈를 잘 조절해줘야함