분류 전체보기40 21 스킬 시스템 기능 ※ 참고 사항 1. 엑셀로 정리된 데이터는 SkillData로 임시 보관한다. 1-1 SkillData는 인터페이스(IDataManager)를 기반으로 되어있다. 2. 스킬 활용의 경우 PlayerSkill에서 처리한다. 2-1 보유한 스킬, 보유한 퀵스킬, 버프 및 디버프 효과 적용, 스킬 데미지 범위 적용 등등... 2-2 보유 스킬이나 배워야할 스킬이 변화할 경우 UI를 갱신(delegeate 이용)한다 3. UI에서는 스킬의 아이콘부분만 On/Off한다. UI는 SkillUI, HealthBarUI(버프), MovementUI(퀵스킬)이 연관된다. 코드 더보기 - AddSkill()에서 조건문은 리스트에 무기 강화1, 무기 강화2, 무기 강화3를 동시에 넣지 않기 위해서다. - SID : 무.. 2020. 6. 8. 20 게임 최적화 기능 PC에서는 원할한 구동이 되었지만, 모바일에서는 그렇지 않았다. 그렇기에 1. 오클루전 컬링 2. 라이트 맵핑 3. 오브젝트 풀링등을 이용해 GC를 최대한 적게 호출하였다. ※ 참고 사항 1. 오클루전 컬링 : 카메라에 보이지 않는 오브젝트의 렌더링을 비활성화 시켜 랜더링할 오브젝트 수를 줄인다. 1-1 오클루디 : 다른 오브젝트를 가리지 않는 투명한 소재거나 가리는 영역이 매우 작은 오브젝트 2. 라이트매핑 : 라이트매핑은 씬의 표면 밝기를 미리 계산 Batch의 수를 줄여준다. 특정 맵에서 조명(실시간 조명 제외)을 사용하는 경우 라이트 매핑을 이용한다. 3. 오브젝트 풀링 : Instantiate과 Destroy의 경우 GC를 호출하게된다. 그렇기에 생성/제거를 하는 오브젝트들은 SetActi.. 2020. 6. 7. 19 아이템 드래그/드랍 기능 아이템을 클릭하여 원하는 인벤토리 장소에 놔둘 수 있다. ※ 참고 사항 1. 아이템을 클릭하면 해당 아이콘이 따라오고, 클릭을 해제하면 그 장소에 아이템을 둔다. 2. 마우스의 움직임에 따라 슬롯의 위치변화를 위해 InvisibleSlot을 따로 만든다. 해당 슬롯은 투명하다. 3. 아이콘의 상화좌우 위치에 따라 InvisibleSlot의 위치를 옮겨준다. 만약 좌측으로 이동한다면, InventorySlot[i-1] 번 위치에 InvisibileSlot이 들어가고 기존의 InventorySlot[i]에 InventorySlot[i-1]이 들어가게된다. 즉 [i-1]과 [i]의 위치를 스왑하는 것이다. ! 주의 사항 1. 인벤토리창 밖에 두더라도 오류가 나지 않아야 한다. 코드 더보기 구현 영상 리펙.. 2020. 6. 6. 18 비헤이비어 트리 기능 ※ 참고 사항 1. Action Task : 실제 행동을 표현하는 단말 노드로 항상 true나 false 를 반환해야한다. OnStart(), OnUpdate(), OnEnd()3가지 메소드를 가지는데, OnUpdate() 에서 true 나 false 를 반환하면 그 Action 의 작업이 끝난다. 메서드의 이름은 구현마다 달라진다. 스택에 처음 올라갈 때 OnStart() 가 불려진다. 다만 bool 값을 반환하지 않으면 계속해서 OnUpdate() 가 불린다. 그러다가 bool 값이 반환되면 스택에서 빠지면서 OnEnd() 가 불린다. 2. Composite Task : 여러 개의 자식으로 구성된 태스크로 Select, Sequence 등이 있다. Composite의 핵심 용도는 Node 의 흐.. 2020. 1. 20. 17 퀘스트 시스템 기능 ※ 참고 사항 (20.06.06 게시글 수정) 1. NPC 테이블에는 NPC가 보유한 퀘스트 정보가, 퀘스트에는 필요한 데이터 목록들이 저장되어있다. 2. 퀘스트 시스템은 퀘스트 데이터(QuestData)(QuestManager), 보유한 퀘스트(PlayerQuest), 보여줄 영역(QuestBookUI, MiniQuestUI) 3가지 영역으로 구분한다. 2-1 QuestBookUI : 일반적으로 모든 퀘스트를 볼 수 있는 퀘스트 UI이다. 퀘스트의 클래스와 지역에 따라 표시된다. 또한 퀘스트는 포기 및 미니퀘스트에 등록 가능하다. 2-2 MiniQuestUI : 인게임 화면에서 표시되는 퀘스트 UI이다. 3. 클라이언트는 서버로부터 퀘스트 정보를 요청한다. 요청받은 데이터는 QuestData에서 .. 2020. 1. 16. 15 UI 추가/수정 기능 ※ 참고 사항 1. 소비 아이템 사용시 효과를 적용한다. 2. 인벤토리의 탭 버튼에 따라 보여줄 아이템 목록을 달리한다. 3. 상점에서는 구매/판매가 가능하며, 판매시 보유 개수를 넘지 않도록 한다. 4. HealthBar를 구현한다. HP는 빨간색으로, MP는 파란색으로 화면 좌상단 지점에 표시한다. ! 주의 사항 코드 더보기 구현 영상 리펙토링 더보기 2020. 1. 11. 14 아이템 장착 및 해제 기능 획득한 아이템을 사용 및 장착 하도록 구현한다. ※ 참고 사항 1. 획득한 아이템들은 인벤토리에서 보여준다. 2. 인벤토리내 아이템을 클릭하면 설명창이 뜬다. 설명창에서 '사용'할지 '제거'할지 판단할 수 있다. 3. 장비아이템의 경우 '사용' 대신 '장착' 문구를 보여준다. 4. 아이템을 장착하면 장착 슬롯의 아이콘을 갱신하며, 인벤토리에서 제거한다. 5. 반대로 해제하면 장착 슬롯을 비워주며, 인벤토리에 추가한다. ! 주의 사항 아이템 장착 및 해제시 '캐릭터 스텟', '인벤토리', '인벤토리 UI', '장착 아이템 UI'를 갱신한다. 코드 더보기 구현 영상 리펙토링 더보기 2020. 1. 7. 013 몬스터 DB 기능 몬스터의 정보를 DB에서 부터 받아온다. ※ 참고 사항 1. 클라이언트는 몬스터에 대한 정보들을 서버에 요청한다. 2. 서버는 요청받은 몬스터 ID에 해당하는 정보를 몬스터 Table에서 가지고 온다. 3. 다시 클라이언트에 전송한다. ! 주의 사항 코드 더보기 구현 영상 리펙토링 더보기 2019. 12. 30. 012 아이템 정보 요청/갱신 기능 아이템 정보의 은닉과 보안을 위해, 클라이언트에 데이터를 보관하지 않고 서버에 요청한다. ※ 참고 사항 1. 아이템 정보가 필요하면 클라이언트는 서버에게 [GetItem] [아이템 ID] 를 전송한다. 2. 서버는 아이템 Table의 [아이템 ID]에 해당하는 데이터를 검색한다. 3. 해당 클라이언트에게 [SetITem] [select * from Item where id = 아이템 ID]을 전송한다. 4. 클라이언트가 패킷을 받으면, 아이템 정보를 갱신한다. ! 주의 사항 코드 더보기 구현 영상 리펙토링 더보기 2019. 12. 27. 이전 1 2 3 4 5 다음