전체 글
-
포트폴리오_영상
RPG 프로젝트의 영상 입니다. 현재 알고 있는 지식을 활용하여 프로젝트를 작업하고자 했으며 영상물의 하단에 부가설명 자막을 첨부하였습니다. 3D_RPG_Tutorial첫 3D RPG 프로젝트 입니다. NPC 상호작용 -> 상점 -> 퀘스트 -> 몬스터 -> 보스 순서로 구성되어 있습니다. 소스코드 첨부 링크https://userkhk.tistory.com/category/%EC%9C%A0%EB%8B%88%ED%8B%B0%20%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8/RPG%20%EB%93%80%ED%86%A0%EB%A6%AC%EC%96%BC '유니티 프로젝트/RPG 듀토리얼' 카테고리의 글 목록천리 길도 한 걸음부터userkhk.tistory.com 2D_SpaceShoo..
-
Land Of Memories - Stat & DataManager
안녕하세요. 이번 작업은 스탯 관련 작업을 하였습니다. Exp, Level, Hp, Attack, Def 전체적인 흐름도는 다음과 같습니다. 1. 몬스터를 잡으면 Exp가 증가한다.2. Exp가 최대치가 되면 Level이 증가한다.3. Level이 증가하면 Stat Point가 증가한다.4. Stat Point로 Hp, Attack, Def를 조절할 수 있다.5. 값을 저장하면 즉시 반영된다.6. 재접속 시 유지된다. 우선 기존 플레이어가 공격을 당해 실행될 Hi() 함수를 다음과 같이 수정했습니다. 현재 체력과 최대 체력을 playerStat에서 받아와서 계산을 하였는데요. " playerStat" 스크립트를 보기 전 기존 DataManager에 추가 선언된 변수를 보겠습니다. playerLeve..
-
두뇌회전 & 순발력 게임
안녕하세요. 현재 Land Of Memories 프로젝트를 진행 중인데 요즘 이리저리 움직이게 되는 일이 많아서 작업을 많이 못했습니다. 내일부터는 다시 비교적 여유가 있을 것 같은데요. 시작 전! 기분 전환 겸(?), 재미있을 것 같은 게임 아이디어가 떠올라서 즉시 프로젝트 작업을 해보기로 했습니다. 작업시간은 약 5시간 정도 걸렸는데, 코드 구현 작업은 의외로? 비교적? 수월하게 진행됐는데 부가적인.. 요소들이 시간을 많이 잡아먹었습니다. 우선 이 이미지 뭐 같이 보이시나요.. 이번 프로젝트를 진행하면서 Image에 쓰일 Sprite를 픽셀 아트로 작업을 한건데.. 여러분들이 생각하시는 그거 맞습니다"티모" 살짝 실패했을 때 약 올리는? 것을 표현하려고 했습니다.전 사실 직접 손으로 그리는 걸 더..
-
Land Of Memories - Hp(Hit) - ObjectPool
이번 작업은 몬스터의 HP Bar 관련 구현과 Hit() 함수플레이어의 HP Bar 관련 구현과 Hit() 함수를 다뤘습니다. 바로 본론으로 들어가, Monster의 하이어라키 계층구조부터 살펴보겠습니다.Canvas를 World Space로 하여 3D 공간에 렌더링 되게 하였습니다. Canvas Render Mode Screen Space - Overlay일반적인 UI 모드로 카메라에 영향을 받지 않고 항상 화면 위에 고정인 형태화면 크기에 따라 UI 요소의 크기가 조정(메인 메뉴 UI 같은) Screen Space - Camera특정 카메라 기준으로 렌더링 됨Ui가 카메라 위치와 회전에 따라 움직일 수 있음(2D 미니맵 같은) World SpaceCanvas가 게임 오브젝트처럼 취급되며 이 Ui 요소..
-
Land Of Memories - Menu - Stage
안녕하세요. 이번글에서는 Menu - Stage와 DataManager의 stageLevel01이 동기화되는 작업을 구현하였습니다. 먼저 영상 부터 보시겠습니다. 먼저 MenuStage 스크립트에서 관리할 변수들을 선언해 주었습니다. 아마 다 아시겠지만 인스펙터창 에서 자물쇠를 잠가 주시면 다른 오브젝트를 선택해도 인스펙터창이 변하지 않고 여러 개의 오브젝트를 한꺼번에 저장을 할 수 있습니다.! satgeLevel01 or 02각 1번과 2번 Frame입니다. 각 Frame에는 맵이 각 8개씩 담겨 있습니다. StageLevel... 01 or 02... Img해금의 여부를 알리는 자물쇠 이미지입니다. stageLock... 01 or 02... Img자물쇠 이미지 아래 Star 이미지입니다.맵이 해금되..
-
Land Of Memories - UI Design
안녕하세요. 추가 기능 구현에 들어가기에 앞서 UI의 디자인부터 작업해 보았습니다. 현재는 버튼 클릭 기능 구현만 작업된 상태이며, 각 UI와 버튼에 대해 설명을 한 뒤 하나씩 차례대로 기능을 구현해 나가겠습니다. 화면 상단 좌측에 있는 Level 표시입니다.플레이어의 경험치가 100이 되면 Level이 증가하며 경험치는 0으로 초기화됩니다. 화면 상단 중앙에 있는 맵 Text입니다.플레이어가 현재 있는 맵의 위치를 나타 냅니다. 화면 하단 중앙에 있는 플레이어의 체력 HP Bar입니다.스탯을 통해 최대치를 증가시킬 수 있으며대미지를 입으면 체력이 깎이게 됩니다. 화면 하단 중앙에 있는 플레이어의 경험치 EXP Bar입니다.사냥 및 퀘스트를 통해 경험치를 수급할 수 있으며,범위는 00.00%부터 1..
-
Land Of Memories - Quest (2) - KeyObject
Cry Npc의 기능 구현과 Key Object의 기능 구현을 나누려고 일지를 나눈 이유도 있지만, 선언할 변수와 추가를 해야 할 것을 나누려는 이유도 있었습니다. 하지만 곰곰히 생각해 보니 초기 기획 흐름도에서 플레이어가 로그아웃을 하게 되면 '리셋'이 되고 추가 변수는 DataManager에 퀘스트가 완료 됐는지 판단할 변수와 Cry NPC는 이 변수를 가지고 조건을 걸어주면 되는 것이었습니다. 가장 먼저 DataManager에 'stageLevel01' 변수를 선언해 주었습니다. 초기 상태는 stageLevel01 = false로 해금 여부가 False 인 상태입니다. 다음은 KeyObjectController 스크립트의 선언 변수입니다. popupAnimation popupAnimation 스크..
-
Land Of Memories - Quest (1)
이번 작업은 플레이어가 NPC와 상호작용 하여 퀘스트를 완료하는 작업 구현을 진행하며 작성할 것입니다. 또한 이 퀘스트를 완료하게 되면 다음 Stage(맵)으로 이동할 수 있는 구현을 할 예정입니다. 가장 먼저 배치된 Npc에 Box콜라이더를 입혀 주었습니다.(다 아시겠지만 BoxCollider 2D 가 붙어야 합니다) 저처럼 일반 3D용 BoxCollider를 추가해서 레이가 감지가 안 되는 이유를 찾는 불상사가 없길 바랍니다. 다음은 기존 Npc (Helper)를 클릭했을 때 실행되는 스크립트에서 추가를 할 것입니다. 위와 같이 else if로 npc의 name을 검색하는 조건문을 추가해 주었으며, 로그를 찍어 확인을 해보았습니다. NPC_Helper를 클릭했을 때와 달리 NPC_Cry를 클릭하..
-
Land Of Memories - Pixel Art
이번 작업은 픽셀 아트를 이용해서 이미지를 만들어 보았습니다. 플레이어가 NPC와 상호작용 하여 퀘스트를 받는 구현을 구현하고자 했었는데 제가 원하는 Sprite를 찾질 못하였습니다.(앉아서 울고 있는 아이 모습) 픽셀 아트 링크https://www.pixilart.com/ Pixilart - Share & Create Art OnlinePixilart, free online drawing editor and social platform for everyone. Create game sprites, make pixel art, animated GIFs, share artwork and socialize online.www.pixilart.com 이번 기회에 연습해보고자 작업을 진행했으며 완성된 모습은..
-
Land Of Memories - Loading Image
이번 글에서는 로딩 이미지 구현을 작업하였습니다. 전체 흐름을 관리할 State는 Manager 스크립트에 추가하였습니다. 초기 상태는 Loading 상태이며, UI 오브젝트가 꺼질 때 State = Playing으로 변환됩니다. 다음은 로딩 이미지입니다. BackGround 이미지와 그 하위에 캐릭터 이미지, 텍스트, 그리고 애니메이션 이미지를 넣어 주었습니다. 애니메이션 이미지는 애니메이션 클립을 하나 생성하여 시작 시 'Loading'이 실행되게 해 주었습니다. 다음 작업은 LoadingController 스크립트를 생성하였는데 time 변수를 선언하여서 오브젝트가 활성화될 때 실행될OnEnable() 함수에서 인보크를 실행시켜 주었고 오브젝트가 비활성화될 때 실행될 이벤트 함수인 OnDis..
-
Land Of Memories - Data Save - JSON
이번 작업은 유니티를 종료할 때 위치를 저장하고 새로 시작할 때 해당 위치로 불러오는 작업을 했습니다. 사용 방식은 저장할 데이터를 JSON 문자열로 저장을 하였으며, 불러올 때 JSON 문자열을 객체로 변환해 주었습니다. JSON을 사용할 때 "왜 사용하는가?"에 대한 질문을 사수분께 한 적이 있습니다. 일반 바이너리로 데이터가 저장된 파일을 볼 경우 00101010 01000011 00001111... 과 같은 데이터로 저장이 되기에 사람이 봐도 어떤 의미인지 알 수 없는 반면 JSON 같은 경우에는 저장된 파일이 { "level": 10, "hp": 1000.} 과 같이 텍스트 형태로 저장이 되기에 직접 수..
-
Land Of Memories - Monster Movement & Player Attack
안녕하세요. 오늘 한 작업은 몬스터의 이동 구현과 플레이어의 공격 기능을 추가 작업 하였습니다. 먼저 코드를 살펴보겠습니다. "MonsterMovement" 스크립트입니다. 선언된 변수는 다음과 같습니다. 특이사항으로는 obstacleLayer에는 Obstacle 레이어와 Player 레이어를 설정해 주었습니다. 다음은 OnEnable() 함수를 통해 오브젝트(몬스터)가 활성화될 때 현재 리스폰이 될 때 사용할 저장 포지션인 initialPosition과이동될 때마다 저장될 현재 위치인 targetPosition입니다. 다음은 InvokeRepeating를 사용하여 함수를 실행시켜주었는데요. 인자로는 (함수명, 첫 시작 시간, 반복 시간)입니다. 정적 느낌을 없애기 위해 invokeTimer를 ..
-
Land Of Memories - Npc (helper) & DOTween
이번 작업은 npc와 상호작용 하여 조작법을 알려주는 창을 연출해 보았습니다. 먼저 Helper Npc를 배치하고 애니메이션을 게임 시작 시 Idle이 반복되게 해 주었습니다.(특별한 기능은 아니고 정적 현상을 없애기 위함입니다.) 다음은 Ui를 만들어 주었습니다. 애니메이션 클립을 만들어서 동작을 할까 하다가 DOTween을 사용해 보기로 했습니다. DOTween 패키지에 대해 알아본 바를 간단히 설명하자면 Unity에서 애니메이션을 간단하기 처리할 수 있도록 돕는 애니메이션 툴이라고 합니다. 2D, 3D 모두 지원을 하며 위치 이동, 회전, 크기, 변화 등 다양한 애니메이션을 부드럽게 구현을 할 수 있다고 합니다. 애니메이션으로 제작할 경우 애니메이션 클립 리소스를 따로 관리를 해줘야 하는데 코드..
-
Land Of Memories - Tile Map (2)
안녕하세요. "세상에서 하나뿐인" 저만의 맵이 완성되었습니다. 기존 Water, Grass, Ground 세 가지를 조합해서 만들어 주었습니다. 이후 동작 테스트를 해보던 중 해결하지 못한 것들이 있어서 하나씩 해결을 해주었는데요. 첫 번째로 맵 밖으로 플레이어가 나가지 못하게 외각 Collider를 타일맵으로 입혀 주었습니다. 현재 Gird는 총 3가지가 있습니다.1. 기본 지형.2. Collider를 가진 지형.3. 투명화 된 Collider를 가진 지형.두 번째 로는 맵 밖으로 카메라가 이동되는 걸 방지하기 위해 로직을 걸어 주었습니다. 기존 "CameraFollow2D" 의 스크립트에서 작성을 하였습니다. 카메라가 움직일수 있는 최소, 최대 값입니다. 인스펙터창에서 테스트를 하며 값을..
-
Land Of Memories - Tile Map
안녕하세요. 오늘은 타일맵을 활용해 맵 디자인을 해보았습니다. 에셋은 'Top-Down 2D RPG Assets Pack'을 사용하였습니다. 먼저 타일맵의 레이아웃을 Rectangular로 만들어 주었습니다. 이후 Tle Palette에 Sorite를 올려 주었습니다. 구현하고자 하는 맵의 Grid는 다음과 같습니다. 다음은 Rule Tile을 만들어 주었습니다. 새로 생성한 룰 타일의 규칙도 같이 설정해 주었습니다.이후 나머지 타일들도 규칙을 설정해 주었습니다. 맵을 구성하고 디자인하던 도중 Water 타일은 Obstacle 레이어로 설정하여 이동이 안되게 하고 싶었습니다. 그리하여 타일을 하나 더 만들어 주었고, TilemapCollider에 TilemapCollider2D를 둔 뒤, 레이..
-
Land Of Memories - Camera Follow
카메라가 플레이어를 따라 이동하는 구현을 추가로 작업을 했습니다. 원래 이 전 글에서 이어서 일지를 작성을 하려다가.. 관리상 기능 별로 분할해서 작성하는 게 나중에 찾아보기도 편하고 관리하기가 보다 수월 할 것 같아 따로 작성을 하기로 했습니다. CameraFollow2D의 전체 스크립트 입니다. LateUpdate에서 카메라의 위치를 업데이트하는 이유는 플레이어의 이동이 완료된 후에 카메라가 따라가도록 하기 위함입니다. 또한 플레이어의 정보가 없다면 null을 반환하게 해 주며 정보가 있다면 조건문 안으로 들어와 계산을 합니다. Vector3의 x, y, z의 플레이어 position을 받아와서 Lerp를 사용해 주었습니다. Lerp의 인자는 (카메라 현재 위치, 카메라 목표 위치, 그리고 ..
-
Land Of Memories - Player Attack (Basic)
우선 가장 먼저 수정 사항이 있어 작성하도록 하겠습니다. 플레이어가 이동하려는 방향에 'Obstacle' 레이어를 갖은 콜라이더가 있으면 이동이 안되게 구현이 되어있습니다. 하지만 위와 같은 동작 구현이 되었을 때 위로 보는 방향키를 눌러도 위를 바라보지 않고 멈춰있는 현상이 있었습니다. 코드를 보면 장애물이 있다면 if-else에 else로 들어와 이동했던 방향의 Idle 애니메이션을 실행하는데요. 장애물이 있다고 판단하고 방향(direction)을 업데이트해주지 않아 발생한 문제였습니다. 이제 이동을 할 때 장애물에 막혀있다면, 이동은 하지 않더라도 방향은 업데이트가 됩니다. 다음은 플레이어의 기본 동작 구현 했습니다. 크게 3가지를 구상해 보았는데요. 1. 애니메이션 클립을 좌, 우,..
-
Land Of Memories - Player Movement (Anim)
플레이어 이동 관련 추가 업데이트를 하였습니다. 캐릭터 모델은 무료 에셋을 사용하였습니다. 유니티 엔진에서 설정한 것들을 먼저 살펴보겠습니다. 가장 첫 번째로 카메라의 Size를 조절하여 좀 더 넓게 시야를 볼 수 있게 해 주었습니다. 두 번째로 플레이어가 장애물에 가려지는 것을 없애기 위해 Sprite Renderer의 Order in Layer를 1로 조정해 주었습니다.(Obstacle 은 0입니다) 세 번째로 애니메이션 컨트롤러에 클립을 정리해 두었습니다.Idle_DownIdle_UpIdle_LeftIdle_RightWalk_DownWalk_UpWalk_LeftWalk_Right 로 총 8개의 애니메이션 클립이 있습니다. 네 번째로 Sprite Editor를 사용하여서 중심점을 잡아 주었습니다..
-
Land Of Memories - Player Movement
가장 처음으로 플레이어의 이동 로직을 구현해 보았습니다. Unity 엔진 부터 살펴보겠습니다. Sprite를 활용해 플레이어와 사각의 벽을 세워 둔 모습이며 사각의 벽 (Obstacle) 에는 레이어를 'Obstacle'로 적용해 주었습니다. 다음은 스크립트입니다. 스크립트명은 'PlayerMovement'입니다. 선언된 변수들은 다음과 같습니다. SerializeField 속성으로 설정되어 있으면 private 라도 인스펙터 창에서 값 조정이 가능합니다. moveSpeed플레이어가 목표 위치로 이동하는 속도를 나타냅니다. obstacleLayer이동을 막는 장애물 레이어 입니다. targetPosition 플레이어가 이동할 목표 타일 좌표를 저장합니다. isMoving 플레이어가 이동 중인지 ..
-
Land Of Memories - Prolog
안녕하세요. 이번에 2D 형태의 RPG 게임을 개발하면서 과정을 일지로 올리려고 합니다. 이전에 'RPG 튜토리얼'이라는 프로젝트를 3D로 개발한 경험이 있는데https://userkhk.tistory.com/32 이번 2D 게임은 100% 기획을 구성하고 작업을 한다기보다는 예전에 가장 많은 시간을 투자하고 또한 재밌게 했었던 '바람의 나라'라는 게임을 모티브로 개발을 해보려고 합니다. 또한 이러한 생각을 갖고 있던 중 우연히 '바람의 나라 - 클래식' 버전이 출시된다는 글을 보았고 유튜브를 통해 살펴보았는데, 잠시 추억의 나라로 빠졌었습니다.. 그리고 든 생각이.. 누군가 프로젝트를 제작해 보라고 부추기는 것 같았습니다..ㅎㅎ 솔직히 말씀드리면 아직 감이 잘 안 잡히는 부분도 있고 의외로 ..
-
로블록스 데이터 저장
안녕하세요. 이번 글에서는 데이터 저장을 하는 방법에 대해 다뤄 보려고 합니다. 우선 사용한 방식은 도구상자 / 데이터 매니저를 사용하였습니다. 보다 더 상세한 내용은 https://www.youtube.com/watch?v=qYXex74gGYI 제가 참고했던 유튜브 링크를 남겨 드립니다. DataManager와 ProfileService는 크게 건드리지 않고 현재 사용 하려는 곳은이 공간 입니다. 초기 단계는 레벨을 0에서 시작하도록 만들었습니다. 이제 제가 원하는 기능 구현은 플레이어가 일정 영역에서 Prompt와 상호작용을 하면 Level이 1로 올라가게 되는 것이 첫 번째이고. 두 번째는 재접속을 했을 때 데이터를 유지하면서 로비에서 텔레포트를 타면 Level1의 Spawn 위치로 이동되게..
-
로브록스 재미 요소 추가
안녕하세요. 이번글에서는 로블록스의 간단한 재미 요소를 추가해 보려고 합니다. 오징어 게임의 유리 다리를 추가해 보려고 작성을 하던 도중 실시간으로 무언갈 감지를 하는 것보다는 강화 유리가 아닌 파트에만 터치 이벤트를 해주면 되겠다고 생각이 들었습니다. 각 Bridge1,4,5의 파트는 다음과 같이 될 것입니다. 가장 먼저 서버 스크립트를 생성해 주어 터치 이벤트를 연결시켜 주었습니다. 플래그로 제어를 한 이유는 재동작을 방지하기 위함입니다. 또한 위에서부터 보자면 Workspace 공강 내에 Bridge 폴더에 Bridge1~3의 Part에 접근하는 모습입니다. 다음 터치 이벤트시 생기게 될 구현은 bridge 파트의 콜라이더를 false로 끄고, 투명도를 1로 완전히 없어진 것처럼 구현을 한..
-
로블록스 텔레포트
안녕하세요. 이번 글에서는 텔레포트를 관련해서 다룰려고 합니다. 이 기능.. 멀티 테스트를 하기 전까지 약간(?) 많은.. 시행착오가 있던 작업 인데요. 결과적으로 먼저 말씀 드리자면 첫번째로 동기화 문제. 두번째로 코드의 모호성 문제. 입니다. 글을 작성해 나가면서 하나씩 살펴 보겠습니다. 다음과 같이 맵을 구성했습니다. 캐릭터가 처음 스폰될 위치는 LobbyZone 플레이어가 게임을 즐길 공간은 GameZone 으로 하였습니다. 다음은 GameZone으로 이동할 텔레포트 Part와 스폰 위치가 될 GameZonSpawn 을 만들었습니다. 여기서 초기 로블록스 스튜디오를 R&D 하고 바로 코드작업을 들어갔을때는 로컬 스크립트에 작성을 하였습니다. 단순히 혼자 하는거면 로컬 여려명이 적용되하면..
-
로블록스 루아 스크립트
안녕하세요! 로블록스에 어떤것 부터 작성하면 좋을까 생각을 해봤는데 가장 먼저 rua 스크립트의 기초에 대해서 알아보려고 합니다. 유니티의 게임을 만들기 위해선 유니티엔진의 c# 언어를 사용 하는것을 아실겁니다. 로블록스 게임을 만들기 위해선 로블록스 스튜디오의 Lua 언어를 사용 한다고 보시면 됩니다. 가장 큰 차이로는 Lua 는 인터프리터 언어로 간단한 문법을 사용하며c#은 컴파일 언어로 객체 지향 구조를 사용한다고 합니다. 또한 Lua는 가벼운 성능으로 소규모 프로젝트에 적합c#은 고성능 처리 가능, 비교적 대규모 프로젝트에 적합 하다고 합니다. 보다 더 많은 차이점은 조금만 찾아봐도 알 수 있기에, 이러한 지식 보다는 직접 겪고 느낀것들을 바탕으로 작성하도록 하겠습니다. 가장 처음 느낀것은..
-
로블록스 스튜디오 작업공간
안녕하세요 이번 글 에서는, 로블록스 스튜디오의 기본 환경인 탐색기의 작업 공간에 대해서 작성하고자 합니다. 로블록스를 만들기 위해서는 위와 같은 '로블록스 스튜디오' 공간이 필요합니다. 또한 이 공간이 필요하다는것은, 이와 친숙해져야 한다는 것을 의미합니다. 이 중 오늘 다룰 주제는 작업공간 입니다. 만일 본인의 언어에 맞는 환경이라면 하나씩 눌러보면서 파악을 할 순 있지만 이 작업공간은 처음에 어디서부터 건드려야 하는지 감이 안 잡혀서 이곳저곳 찾아보곤 했었습니다. 모든 것을 다루진 않고, 기본 적인 초기에 필요한 기본적인 공간 정보 들만 다루고 나머지는 차차 글을 작성해 나가며 필요시 공간 소개를 하도록 하겠습니다. 가장 먼저 'Workspace' 게임의 3D 환경을 구성하는 모든 오브젝트..
-
로블록스
먼저 영상을 보시겠습니다. 첫 2인으로 프로젝트를 개발한 시연 영상중 일부 입니다. 로블록스 스튜디오의 rua 스크립트를 처음 알게 되었고, 시행착오가 상당히 많았던 프로젝트라고 할 수 있습니다... 초기 부터 지금까지 겪었던 난관들과 기억, 그리고 팁(?) 은 아니지만 소소하게 생각나는 것들을 기록하기 위해 글을 작성 하게 되었으며, 뭔가 단순히 c#과 rua 스크립트의 차이점이 뭐라고 생각하냐는 질문이 온다면..! 각자의 언어마다 장단점이 존재하며 각자 개성이 다른 편리한 장점들이 있다? 라고 말을 할 수 있을것 같습니다. 디자인이 적용돼서 멋진 프로젝트가 됐다! 라기 보다는 되도록 기본 파트(오브젝트)를 가지고 기능 위주로 글을 작성하겠습니다. 감사합니다.
-
UI 공격 & 대쉬 버튼
현재 작업 진행중인 영상 입니다.이번 작업을 진행 하면서, 초기 플랫폼을 명확히 타겟하고 작업을 진행해야 한다고 느꼈습니다. 기존 Input으로 Horizontal과 left shift를 입력 받아 공격과 대쉬를 구현하였었는데, 이를 버튼클릭으로 변경하다 보니 점프 버튼과 플레이어 이동 조이스틱도 필요할 것으로 생각이 들었습니다. 우선 작업 진행 방식은 기존 로직을 코루틴으로 변경 하는것으로 작업해 주었습니다.private void Update(){ if (playerMovement.dashing == true) return; GetInputs(); Attack();}private void GetInputs(){ isAttack = Input.GetMouseButtonDown(0)..
-
UI 아이템 패널 - 물약
물약 버튼 클릭시 체력 회복과 쿨타임을 로직을 구현 하였습니다. 간단한 흐름도를 보자면 1. 물약 버튼을 클릭한다2. 물약의 개수가 1개 이상일때 실행한다3. 플레이어의 체력이 최대 체력보다 낮을때 실행한다4. 물약을 먹은 플레이어의 체력 값이 최대 체력보다 높으면 최대체력, 낮으면 회복값을 그대로 더해준다. 스크립트를 보면서 UI와 함께 살펴 보겠습니다.public class ItemPotion : MonoBehaviour{ [SerializeField] private TextMeshProUGUI potionQuantity; [SerializeField] private GameObject cooltime_Gameobject; [SerializeField] private Image coo..
-
UI 정보 패널 & 미니맵
현재 작업 진행중인 영상 입니다.플레이어 정보 패널과 미니맵 UI 연결 과정 작업을 진행하였습니다. 가장 먼저 유니티 하이어라키 창에서 Manager 스트립트를 만들고 Static 변수로 만들고 플레이어의 정보 들을 담은 PlayerInfomations 스크립트와 UI를 다룰 uiManager 스크립트를 public으로 인스펙터 창 에서 연결해 주어 접근을 용이하게 했습니다. using System.Collections;using System.Collections.Generic;using UnityEngine;public class Manager : MonoBehaviour{ public static Manager Instance = null; public PlayerInfomations pl..
-
UI 기획 (1차)
현재 작업 진행중인 영상 입니다.몬스터의 공격 구현과 함께 플레이어가 피격 되는 동작 구현을 하기 전 간단한 UI를 배치해 보았습니다.컨셉은 Figma를 이용하여 간단히 UI 도안을 작성해 보았고 각 버튼 별로 텍스트가 적혀 있지만 패널마다 하나씩 살펴 보겠습니다. 플레이어 정보패널과 미니맵 입니다. 레벨과 HP가 보여지며 플레이어의 공격 값 과 방어 값 을 텍스트로 넣었습니다. 하단에 보시면 Item이 장착되는 칸이 있습니다. 물약과 같은 소비 아이템을 넣어 플레이어와 상호작용을 구현할 예정 입니다. 플레이어 공격 패널 입니다. 현재 마우스 클릭으로 공격 모션을 취하고있고 Left Shift로 대쉬를 하고 있지만 모바일에서도 상호 작용을 하기 위해 공격 버튼과 대쉬 버튼을 따로 두어 쿨타임을 걸어줄 예..