• [일반] 유니티 엔진에서 경험치 시스템을 만들려고 하는데2019.10.14 PM 10:10

게시물 주소 FONT글자 작게하기 글자 키우기

Desktop Screenshot 2019.10.14 - 22.07.35.38.png

 

15f 원형 범위안에 콜라이더 중에 Enemy 콜라이더만 따로 "Enemy Col" list에 넣었는데요


Enemy 오브젝트가 파괴 된걸 감지 할 수 있을까요?

 

15f 범위안에서 enemy 오브젝트가 파괴되면 경험치를 줄려고하는데 파괴된걸 감지를 어떻게 해야할지

 

그냥 저 enemy 오브젝트에서 ondestory를 사용해서 파괴됐을때 거리 체크해서 경험치 주는게 좋을려나요

 

 

---

 

아 그리고 탐지를 update문안에다 넣었는데 그냥 0.1초 코루틴 넣는게 성능은 더 좋겠죠?

 

유사 롤, 도타를 만들고 거기에 머신러닝 적용할려고 합니다.

댓글 : 8 개
개인적인 의견인데.
파괴 되었을때 안보이는 경험치 오브젝트(구슬)
을 생산하게 하고.
그 경험치 구슬들이 가장 가까운 Hero오브젝트에게 날아가도록 짜는건 어떨까요?

이런식으로 만들어 놓으면
경험치바가 인터페이스에 보일때
경험치가 단계적으로 올라가는 느낌을 구현하기에도 좋습니다.

데빌메이크라이 같은거 생각하시면 되죠.

물론 여유가 있다면 실제로 경험치 오브를 구현해서
먹는것까지 보여주면 더 좋은 연출이 되겠죠.
어떤식으로 하든 잘돌아가고 크게 버벅이지만 않으면 상관없긴합니다.
그래도 가능하면 최적화하고 비효율적인 코드는 줄이는게 좋겠죠.

Enemy 파괴만 감지한다면 처음 말한데로 Enemy 파괴 이벤트에서 파괴되는 순간에만
플레이어와의 거리체크 및 경험치 처리를 해되 되구요.

아니면 Enemy가 플레이어의 콜리더 15f 안에 들어가면 ( OnTriggerEnter ) ,
플레이어에 들어갔다는걸 기억하고 있다가 파괴시에 거리체크는 안해도 되고 경험치만 추가해도 되겠지요.

여튼 방법은 여러가지 입니다.
이벤트 시스템 쓰시는 게 어떨까요. 사망하는 유닛이 "내가 여기서 사망했다"고 이벤트를 쏘고, 플레이어 유닛이 그 이벤트를 구독하고 있다가 사망자의 종류가 적이며 나와의 거리가 이만큼이면 경험치를 얻도록 하는 방식입니다. 거기에 더해서, 내가 막타를 친 유닛만 경험치 수급 대상으로 삼으려면 사망하는 유닛이 쏘는 이벤트 데이터가 "내가 누구한테 맞아서 어디서 사망했다" 형식이면 되겠고요.
거리로 짜는건 전 반대인게
이럴경우 새로운 스킬을 구상하는데 걸림돌이 됩니다.

나중에 장거리 포격이나 창격 같은 스킬을 연구할때
플레이어가 적을 죽이고도 가깝지 않아서 경험치를 획득하지 못하는 구조가 되죠.

이럴거라면
공격프로젝타일 오브젝트가 발사터렛의 정보를 가지고
에니미 객체에 그 값을 전달해서 누가 죽였는지 체크한 상태에서 파괴 시키고
그에따라 경험치를 획득하게 하는게 더 나을 수도 있습니다.
  • Arken
  • 2019/10/14 PM 10:35
에너미가 공격받을때 공격자가 누구인지 정보를 받아 확인하는쪽이 좋을것 같네요
몬스터 객체에 대리자 만들어서
플레이어 범위 안에 들어 갔을때 해당 대리자에 경험치 올리는 이벤트를 등록하고
플레이어의 범위 밖으로 나갔을때 대리자 해제 해주면 될 거 같은데요?
몬스터가 파괴 될때,
플레이어 캐릭터에게 경험치 증가 클레스를 실행하게 하면 될듯하네요
이러면 다른이유로 파괴되도
플레이어가 경험치를 얻는 기현상
친구글 비밀글 댓글 쓰기