오늘은 "사격"과 "마력탄" 스킬을 구현했다.
투사체는 이펙트만 생성하면 됐던 "타격" 스킬과는 다르게
양 클라이언트에서 각각 처리하는 방식이 아닌 호스트 쪽에서 네트워크 오브젝트로 투사체를 생성하는 식으로 진행했다.
투사체 생성 자체는 의외로 단순하게 끝났는데.. 시간이 걸린 건 네트워크 오브젝트 생성이 아니라 투사체가 작동하는 방식 자체였다.
첫째로 투사체를 목표물을 향하도록 회전시키는 게 문제다. 이건 결국 오늘 내로 해결 못했는데.. 목표 방향의 벡터와 기본 방향의 벡터(사격 시의 화살은 기본적으로 우측 방향, 마력탄은 좌측 방향으로 되어 있다)를 통해 Vector2.Angle() 함수를 이용할 수 있을 것 같기는한데.. 방향이 조금씩 어긋나지만 시간이 너무 끌릴거 같아 일단 다음으로 넘어갔다.
둘째로는 투사체의 충돌 판정이었다. 여기서 날리는 투사체로 인해 다른 물체가 밀려나서는 안되니 콜라이더를 트리거로 설정했는데, 예상 외로 이곳 저곳에서 충돌이 많이 발생했다.. 이 현상 때문에 로그가 화살을 쏘자마자 화살이 로그에게 맞아 화살이 사라지는 일이 생겼는데, 이게 투사체 생성이 안되는 문제인 줄 알고 한참을 헤맸다.
그 외에도 물체에 부딪혔을 때와 적에게 부딪혔을 때의 판정 등을 호스트에서만 처리하도록 해주는데에 시간이 좀 걸렸다.
결국 마력탄은 초기에 생각했던 유도기능을 구현하지 못했고, 둘 다 스프라이트 방향이 타겟을 향하도록 올바르게 회전시키지는 못했지만 일단 투사체를 타겟을 향해 날리고 부딪히면 데미지를 주는데 까지는 성공했다.