복잡한 설명 주의
조언 및 팁은 언제나 감사
던전에서 몹 어그로가 그지같이 아무한테나 랜덤으로 끌리는걸 가장 가까운 사람한테 끌리게끔 바꿔볼려고 함.
잡몹이면 대충 좀 넘어가도 모르겠는데, 보스전에서는 치명적인 문제라 (뒤져서 리스폰해있는 사람한테도 어그로가 감) 해결할 필요가 있음.
그러면 이 '가장 가까운 사람'을 어떻게 판단하느냐....
커스텀 스크립트만 먹는다면 초딩도 할 수 있겠지만 우리에게 그런건 없다.
이걸로 한참 머리털 쥐어뜯다가 떠올린 알고리즘이 아래와 같음.
1. 몬스터에 하위 오브젝트(Obj_1)를 넣고 LookAt 스크립트와 특수 레이어를 가진 작은 트리거 콜라이더를 넣어준다. vrc_object_sync 는 넣지 않는다.
2. Obj_1의 하위로 그냥 비어있는 Obj_2를 만들어 주고 비활성화 한다.
3. 몬스터에 들어간 LookAt 스크립트는 Obj_2를 보도록 만든다.
4. Obj_1에 BroadCast를 Local 로 하고 타이머 + set velocity 액션을 넣든 Follow Target을 쓰든 해서 플레이어를 따라다니게 만든다.
-> 싱크가 없으므로 각 플레이어는 자기한테 이게 붙어있는걸로 인식
5. 몬스터에게 애니메이션을 이용, 빠른속도로 커지는 트리거 콜라이더를 만들어서 1초마다 실행시킨다
6. 몬스터 인식 콜라이더에 Obj_1이 들어갈 경우 BroadCast를 Local로 해서 Obj_2를 활성화.
7. 동시에 BroadCast를 Always 로 하여 몬스터를 Obj_2로 돌진시키면서 몬스터 인식 콜라이더도 초기화한다.
-> 몬스터에는 당연히 vrc_object_sync가 들어가 있으므로 Obj_2에 대해선 싱크가 안맞아도 해당 유저에 의한 몬스터 돌진명령은 싱크로가 됨.
.....
.
.
.
아마도..... 이렇게 하면 되지 않을까........
사실 안해봤고 글쓰면서 생각 정리함. 해보고 올께. 안되면 글 지움.
혹시 팁이 있다면 부디 알려주시길...