Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

시작은 0부터

[Unity] 팀 프로젝트 ACC - 9/28 본문

개발일지

[Unity] 팀 프로젝트 ACC - 9/28

0base 2022. 9. 28. 21:16

오늘 작업 시간 : 1.25MH(10H)

 

Vector3.forward : '로컬' 좌표 기준으로 앞방향을 나타낸다.

transform.forward : '월드' 좌표 기준으로 앞방향을 나타낸다.

 

미사일 아이템을 구현하는데 플레이어의 앞방향을 가져와서 대입하기 위해 미사일 오브젝트의 transform.forward 에 플레이어의 transform.forward를 대입하고, rotation 값도 마찬가지로 대입하는 방법으로 간단하게 구현해보려고 했는데 왜 이상한 방향으로 나가나 했는데 역시나 접근방법이 틀렸었다.

 

미사일을 쏘는 문제도 싱글 게임에서는 Instantiate() 함수를 통해 생성할 때 인자값으로 부모를 설정하는 Transform 값을 넣어줄 수 있지만, 현재 멀티플레이를 위해 사용하는 Photon 에서 지원하는 Instantiate() 함수에서는 부모설정값을 인자로 지원하지 않았다. 싱글게임의 경우에서는 생성할 때 플레이어를 부모로 설정하고 생성 후에 부모 관계를 끊으면 플레이어의 값을 가져오면서 영향을 미치지 않을 수 있지만, Instantiate() 함수를 사용할 때(생성할 때) 바로 부모를 설정할 수 없어 따로 값을 넣어주는 방식으로 처리해야했다.

 

교수님과 동기들의 도움으로 발사하는 것까지는 성공했는데, 이제는 미사일 피격 판정이 제대로 작동하지 않는다. 미사일은 트리거 콜라이더가 달려있고, OnTriggerEnter() 함수를 통해 피격판정 여부를 판단하며, 피격 여부는 게임오브젝트의 태그로 정하도록 설정하였다. 미사일을 발사하는 플레이어 본인은 본인이 날리는 미사일에 피격되면 안되기 때문에 동기들의 조언을 얻어, 플레이어 오브젝트가 생성될 때, PhotonView.IsMine 이 true 라면 태그를 변경하여 다른 플레이어와 구분할 수 있도록 설정해주었다. 그럼에도 발사와 동시에 플레이어와 충돌처리가 되서 미사일이 키입력과 동시에 터지는 현상이 발생했는데, 자신의 화면 상에 존재하는 자신의 오브젝트는 자신을 나타내는 태그로 변경되었지만, 다른 클라이언트 상에서 존재하는 나의 리모트는 태그가 변경되지 않아서, 자신과 같은 위치상에 존재하는 리모트에 충돌하여 터지는 문제인 것 같다고 추측하고 있다.

 

문제는 위 문제를 해결하기 위해 코드를 수정하는 도중 특정 태그의 오브젝트만 충돌판정이 되고, 특정 태그의 오브젝트는 충돌판정이 나지 않는 또 다른 문제가 발생했다. 간단할 줄 알았던 아이템을 구현하는 것도 네트워크를 통해 동기화하는 과정에서 시간이 많이 소요되고 있다.

'개발일지' 카테고리의 다른 글

[Unity] 팀 프로젝트 ACC - 10/3  (0) 2022.10.04
[Unity] 팀 프로젝트 ACC - 9/29  (0) 2022.09.29
[Unity] 팀 프로젝트 ACC - 9/26  (0) 2022.09.27
[Unity] 팀 프로젝트 ACC - 9/22  (0) 2022.09.22
[Unity] 팀 프로젝트 ACC - 9/21  (0) 2022.09.21