전체 글
-
P.P.P - 01 - 이동구현
안녕하세요. Photon Projent Particle 를 따서 P. P. P의 제목을 지어 봤습니다. (임시로 지은 글의 제목이며 아직 게임 타이틀 명은 못정했습니다) 포톤 클라우드에 앞서 플레이어의 이동 구현을 스크립트로 작성해 보았습니다. 간단한 이동 구현만 현재 적용한 모습이며, 이번에 에셋은 타 사이트를 통해 무료로 다운로드하였습니다. https://unity-chan.com/contents/guideline/ 애니메이션은 Unity Aset Store에서 다운로드하였습니다. 현재는 씬에 플레이어만 혼자 외롭게 있으며 차차 동작 구현과 맵 등을 배치해줄 예정입니다. 이동 구현 스크립트를 보겠습니다. PlayerMovement의 스크립트를 생성하여 작성해 주었습니다. playerMoveSpeed ..
-
포톤 프로젝트 연습
안녕하세요 처음으로 포톤 클라우드를 이용해 네트워크 게임을 제작해 보았습니다. 직접 구현하여 제작한 것은 아니고 책을 통한 학습을 통해 만들어낸 결과물입니다. 하나씩 살펴보면 코드에서 이해가 안 가는 부분은 없었지만, 백지상태에서 직접 구현하려고 했을 시 함수명이나 사용되는 문법 등이 생소하여 생각이 안나는 부분이 많았습니다. (직접 제작해보며 지인과 만날 수도 있고 또한 빌드 실행 파일과 유니티 에디터에서 실행을 하여 직접 테스트도 해볼 수 있어서 정말 신기하고 재밌었습니다.) 모든 것을 제 것으로 만들 수는 없겠지만, 자료형 변수가 뭔지도 몰랐지만 현재는 직접 변수를 생성하여 값을 할당하는 것처럼 반복 학습을 통해 눈과 손, 그리고 머리에 익숙하게끔 만들 수는 있다고 생각합니다. 01 : 03초 현재..
-
메모장
개인 메모장 입니다. 속도 Speed와 속력 Velocity를 구분하자. 방향이 없고 값만 있을땐 속도 방향이 있고 값이 있을땐 속력 A좌표 - B좌표 = B 지점에서 A 지점으로 향하는 벡터 애니메이터 컨트롤에 정의한 파라미터는 모두 해시 테이블로 관리한다. 문자열로 호출할 때마다 내부의 해시 테이블을 검색하므로 속도 면에서 불리하기에 파라미터 해시값을 미리 추출해 인자로 전달하는 방식이 속도 면에서 바람직한 방법이다. ex) private readonly int hashAttack = Animator.StringToHash("IsAttack") (읽기 전용) 개발자가 정의한 일반 함수와 성격이 다른 이벤트 함수의 경우 항상 접두사(Prefix) On을 붙여주는것이 좋은 코딩 습관이자 일반적인 관례다.
-
CCI - 14 - 맵 디자인 (작성중)
안녕하세요 현재 제작 중인 Terrain입니다. 제작 중이라고 말씀드리기엔 상~당히 부족 하지만..!!! 제가 Terrain을 많이 다뤄본 적이 없어서 필요한 기능을 찾아보며 지형 높낮이 및 텍스처를 입혀 보며 제작을 하고 있습니다. 이번 글에선 Terrain 다루어보며 알게된 부분들의 설명과 함께 완성된 Terrain 캡처 사진과 다른 팀원분들의 결과물들을 합친 Main Scene와 더불어 Intro -> Story -> Main 순서 대로의 시연 영상을 추가하여 글에 추가(수정)을 하도록 하겠습니다. 또한 추가적으로 현재 학습 하고 있는 Onclusion 기능과 Input System도 기회가 된다면 같이 첨부하겠습니다. 유니버셜 렌더 파이프라인 (아직은.. Terrain이 제가 원하는 느낌이 아닙니..
-
CCI - 13 - 장애물 3
안녕하세요!! 오늘은 그간 문제가 있어서 동작이 안됐던 부분이 해결되어서 기분이 좋은 날입니다. 하지만 동작 구분은 해결됐지만 이유는 아직 명확히 깨닫지 못했습니다. (이게 더 중요한데...) 우선.. 제가 만들고자 했던 부분은 1. 이동하는 Ground 2. 이동하는 Ground에서 장애물 피하기 두 가지입니다. 시행착오라고 말씀드려야 하나.. 모두 데이터 화를 해 놓진 않았지만.. 하나씩 살펴보시면서 생각나는 문제점들과 해결 방법에 대해서 같이 올리겠습니다. 우선 첫 번째로 제가 원했던 구현은 상/하로 움직이는 Ground였습니다. 00 : 20초 상/하 뿐만이 아닌 좌/우 도 움직이게 원했고 이것을 인스펙터 창에서 조절이 가능하게 하길 원했습니다. 동작 부분을 구현하기 위한 스크립트부터 같이 살펴보..
-
CCI - 12 - 장애물 2
(영상 2개) 안녕하세요 오늘은 2번째 Stage인 회전하는 원형 판에 몬스터를 피해 지나가는 형태와 지난번에 만들었던 bridge를 약간 변화시켜 주어 연출해준 효과를 같이 살펴 보시겠습니다. 우선! 이 bridge를 먼저 보시겠습니다. 바로 코드부터 가시죠! BridgeOff라는 스크립트를 새로 생성하여 작성하였습니다. 현재 제가 원하는 동작 구현은 플레이어가 bridge위로 올라가게 되면 bridge는 깜빡깜빡 거리며 사라질 것 같은 분위기를 연출해 주고 일정 시간이 지나면 bridge는 비활성화가 됩니다. (플레이어가 위에 있다면 콜라이더가 사라져 추락하게 됩니다.) 또한 일정 시간이 지나면 다시 bridge는 활성화가 됩니다. time : bridge가 사라질 시간입니다. bridgeAni : ..
-
CCI - 11 - 장애물
안녕하세요. 오늘은 간단한 큐브에 받아온 에셋 이미지를 입혀서 돌이 굴러가는 형태의 장애물을 만든 과정을 살펴보시며 추가적으로 Restart기능의 버튼을 살펴보겠습니다. (현재는 RESTART 기능밖에 없지만 왼쪽에 Title Scene의 버튼을 만들 예정입니다.) (아직 TITLE Scene는 작업이 완성되지 않았기에 보류 중입니다.) 우선 Cube를 살펴보겠습니다. 이 Cube형태의 장애물은 굴러가는 형태로 구현을 할 것이며 또한 CubeRun이라는 Name을 지어 주었습니다. rigidBody의 AddTorque를 사용하여 회전을 해주었으며 Player와 충돌 시 플레이어는 넉백 효과를 받게 됩니다. 바로 코드를 살펴보겠습니다. CubeRun스크립트입니다. cubeRigidBody : 큐브가 갖고 ..
-
CCI - 10 - 플레이어 이동구현_2 & 화면회전
안녕하세요. 플레이어는 현재 조이스틱의 컨트롤러를 움직여 방향을 지정한 값을 PlayerMovement에 넘겨주어 이동을 하는 방식입니다. 맵을 디자인 하시는 분도 계시고 다른 퀴즈를 준비하는 분도 계셨고, 다양한 패턴의 적을 구현하는 분도 계셨습니다. 모두 이 플레이어를 이용해 동작을 구현하고 계셨기에 어찌 보면 중심이 되었다고도 할 수 있습니다. 요청이 들어온 것은 아니지만 회의를 하던 중 나중에 주석처리 및 보류를 하더라도 PC환경에서 테스트를 수월하게 할 수 있게 키보드로 값을 받아오는 건 어떨까? 하고 얘기가 나왔습니다. 저는 흔쾌히 승낙을 했고, 바로 집에 가서 코드를 작성했습니다. 코드를 작성하려던 저는 카메라 회전도 같이 된다면 좀 더 몰입감을 줄 수 있지 않을까? 라는 생각이 들어서 간단..
-
CCI - 09 - 맵 디자인 & Death zone
안녕하세요. 오늘은 간단한 맵 구성과 함께 플레이어가 맵에서 추락 시 닿으면 죽는 동작 구현을 함께 알아보겠습니다. 이 죽는 동작구현의 코드는, 플레이어의 하트가 모두 소진되었을 시에도 실행시켜 주어 같은 동작이 되게끔 하였습니다. 바로 이런.. 동작이 연출됩니다. 첫 번째 작업은 간단한 큐브 맵 이미지를 이어 붙여서 그 위에 CatEnemy들을 올려 두었습니다. 이후 이 맵 아래에 DeathZone을 설치하여 플레이어가 맵에서 이탈되어 추락 시 죽은 상태가 되게 구현을 해 주었습니다. 새로 생성한 PlayerDeath 스크립트입니다. 간단히 이 콜라이더에 충돌체 검사를 OnCollisionEnter로 받아 충돌 시 이벤트가 실행되게 해 주었으며 collision의 게임 오브젝트 태그가 Player일 시..
-
CCI - 08 - 플레이어 피격모션
안녕하세요. 이번 글에서는 적 (지정된 태그)에 피격 (충돌) 되었을 시 이렇게 플레이어가 뒤로 넉백 되는 부분에 대해서 알아볼 예정입니다. 간략하게 구현 동작 부분을 살펴보자면. 플레이어가 일정 물체랑 충돌 시 뒤로 지정된 값만큼 넉백 되며 이 넉백 되고 일정 시간 동안 다른 물체에게 피해를 입지 않습니다. (레이어 교체) 또한 피격 시 하트가 감소되는 부분도 함께 살펴보도록 하겠습니다. (하트 감소) Player의 충돌을 체크하는 부분은 OnCollisionEnter에서 구현하였습니다. 각 충돌된 collision의 태그가 "CatEnemy" 이거나 "Trap" 이거나 "CubeRun" 이거나 "CircleTrap" 일 때 실행되는 조건문입니다. (처음에는 레이어를 통일하거나 태그를 통일해서 적용을 ..
-
2D.MetalSlug 07. UI
https://youtu.be/sYnUdg4a17U 14 : 29초 영상 / 1STAGE (03초 - 22초) YOUTUBE 영상 1 Stage = 03초 ~ 22초 구간을 모작해 보고 있습니다. 오늘은 영상의 UI항목을 만들어볼 생각이며 UI항목을 하기 전 영상처럼 MISSION START가 파란 글씨로 다가와 회전 후 일정 시간이 지나면 퍼지는 모습을 먼저 구현해보겠습니다. ↑↑↑ 위의 선을 기준으로 위의 영상은 YOUTUBE의 영상 및 캡처입니다. 이제부터 Unity3 D 환경에서 직접 제작한 화면들을 보시겠습니다. 첫 번째로 Mission 1 Start를 만들었습니다. 각 글자는 텍스트가 아닌 Sprite를 가져와 작업을 했습니다. Text로도 애니메이션을 추가해 원하는 결과물을 만들 수 있겠지만..
-
CCI - 07 - 적 & 펫 스킬 적용
안녕하세요 오늘은 적(야옹이)과 함께 펫이 스킬을 사용하면 근처의 콜라이더를 추출 해 잠시 일시 정지하게 만들어주는 기능을 함께 보겠습니다. 음.. 우선 제가 처음에 만들었을 때는 야옹이를 입혀놓지 않고 단순 큐브로 태그만 지정해 주어서 테스트를 했었는데.. 현재는 야옹이가 담겨져 있으니 앞 뒤 흐름이 잘 맞진 않더라도.. 제작 했던 순서대로 천천히 나아가 보겠습니다. 우선 펫의 스킬을 사용하면 콜라이더를 추출하는 코드부터 살펴보겠습니다. 우선 첫 번째로 콜라이더를 추출할 스크립트를 새로 만들었습니다. FoxColExtract의 스크립트를 생성하여 제작했으며. 선언 변수는 간단합니다. listCols : 추출한 콜라이더들을 담을 list입니다. colExtractRadius : 추출할 범위입니다. pla..
-
CCI - 06 - 펫 스킬 (쿨타임)
안녕하세요! 오늘은 이 펫 스킬에 대해서 알아볼 건데요 2~3개 정도 플레이어에게 도움을 주는 스킬을 계획했지만 현재는 1개밖에 못 만들었습니다. 이 스킬에 간략히 설명을 드리자면. 이 스킬을 사용하게 되면 플레이어의 일정 범위 안에 있는 적 은 일정 시간 동안 "정지"를 하게 됩니다. 이후 일정 시간이 끝나면 다시 원 상태로 돌아오게 됩니다. 다른 버튼과 다르게 쿨타임 이 적용된 모습을 시각화로 보여 주었으며 이미지 타입의 Filled를 이용하여 조절을 해 주었습니다. 총 두 겹으로 뒤에는 일반 이미지로 BackGround를 표현해 주었으며 앞의 이미지는 Button으로 쿨타임 적용 모습을 보며 터치/클릭 시 상호작용이 가능하게 만들어 주었습니다. FoxSkill 스크립트입니다. coolDown : 0..
-
CCI - 05 - 펫!!
안녕하세요. 이번엔 플레이어를 따라다니는 펫을 알아보겠습니다. 나름 예쁘게 찍어주고 싶어서 여러 장 찍어 봤는데 음.. 뭔가 어색함이 연출되는 느낌을 지울 수가 없었습니다.. 유니티 에셋 스토어에서 무료로 받아온 Toon Fox입니다. 원래는 날아다니는 펫을 데리고 다니면서 적들을 공격하거나 플레이어를 도와주는 역할군으로 나누려고 했었는데, 첫 번째로, 저희가 회의를 거치면서 전투 씬이 없는 것이 좋을 것 같다는 의견이 나왔었습니다. 두 번째로, 도난당한 고양이를 구하는 Run 게임으로 그에 맞는 이미지를 구하고자 유니티 에셋 스토어를 찾던 중 괜찮은 에셋이 있어서 가져오게 되었습니다! 세 번째로, 귀엽습니다. 네 우선 바로 코드로 가겠습니다. FoxFSM이라는 스크립트를 생성해 주었습니다. 유한 상태 ..
-
CCI - 04 - Hp
안녕하세요. 오늘은 플레이어의 hp를 알아보려고 합니다. 음.. 우선 살짝 정리가 안되는데 최대한 작업했던 순서대로 나아가 보겠습니다. 첫 번째로 플레이어의 체력을 먼저 보겠습니다. 이 하트 Sprite는 플레이어의 체력을 대신할 것입니다. 하트가 비어 지거나 풀로 채워지며 시각적인 이미지를 보여 줄 수도 있고 하트(hp)가 추가 / 삭제 가 될 수 있습니다. 하트의 초기 설정 (최대치)는 8개로 정했습니다. 바로 코드로 넘어가 보시죠! PlayerHit라는 스크립트를 생성해 주었습니다. 플레이어가 적에게 맞거나, 혹은 맵에 있는 하트를 먹으면 하트가 생성되게 할 것입니다. 우선 선언 변수를 보자면 heart : 풀 하트 개수입니다. overHeart : 최대 하트 개수입니다. (풀 하트보다 높으면 빈 ..
-
CCI - 03 - 버튼 & Mini Map (UI)
안녕하세요!! 이번 글에서는 플레이어의 UI항목에 좀 더 알아보고자 합니다. 점프 버튼, 그리고 겟 버튼, 미니맵 구현 동작을 알아보려고 합니다. 우선 가장 먼저 변경된 조이스틱 이미지를 먼저 보신 뒤 나아가 보겠습니다. 변경한 터치패드 Sprite 입니다. 원하는 이미지를 얻고 싶었는데, 공부했던 책들 중 하나가 생각나서 사용한 프로젝트에서 이미지를 가져오게 됐습니다 ㅎㅎ (별건 아니지만 화면에 배치된 UI항목은 플레이 중이라면 계속 보게 될 화면이니.. 유저분들의 입장까진 아니더라도,, 제가 원하는 걸 하고 싶었습니다 ㅎㅎ) 네 우선 점프 버튼부터 알아보겠습니다. 우선 PlayerMovement 스크립트에서 OnClickJumpBtn이라는 점프 기능의 함수를 만들어 주었습니다. if문에서! isJum..
-
CCI - 02 - 플레이어 이동 구현
안녕하세요. 오늘은 플레이어 이동 구현에 대해 알아볼 예정입니다. 플랫폼은 모바일 환경으로 정하였고 개발 환경은 Unity입니다. 조이 스틱의 패드 역할을 하게 될 Sprite입니다. 조이 스틱의 컨트롤러 역할을 하게 될 Sprite입니다. 간단한 원형 이미지를 받아와 터치 패드를 구현했습니다. TochPad를 제어하기 위한 TochPad 스크립트를 새로 생성하였습니다. _touchPad : 조이스틱 패드 안에 엤는 컨트롤러입니다. 일반적인 3차원 공간에 있는 Transform이 아닌 Canvers상에 존재하는 위치이기에 RectTransform을 받아와 주는 모습입니다. _dragRadius : 조이스틱 패드의 반지름입니다. (가운데를 기준점을 잡고 움직일 위치의를 잡았습니다.) _startPos : ..
-
CCI - 01 - 에셋 및 기획 단계
안녕하세요. 이 C.C.I 카테고리에서는 팀업 프로젝트중 담당했던 부분을 동작별로 나누어 코드설명 및 영상을 올리려고 합니다. 또한 문제점 들 및 잘못된점 등을 같이 첨부를 하려고 합니다. 현재까지 진행된 부분을 영상으로 한 번에 보실 분들은 https://userkhk.tistory.com/53 CCI - 제작중 - (추가10)★★★★★ 안녕하세요. 이번 생존형 게임 카테고리에서는 장르는 정했지만 아직 기획적인 요소가 남아 있어 현재 제작 중인 프로젝트입니다. 현재 제작 중인 단계로 얼추 간추려지면 제작 과정과 함께 업 userkhk.tistory.com 페이지를 참고 하시면 시간 절약에 좋을 것 같습니다. 그럼 바로 시작하겠습니다! 우선 이 프로젝트는 팀업 프로젝트 입니다. 이 프로젝트에서 제 주요 ..
-
CCI - UI항목 별도 정리
00 : 40초 03 : 30초 1) 현재 까지 구현된 UI 항목 영상 2) 제안서 및 UI항목 코드 설명서 2) 항목 영상의 경우 PDF파일을 03분 30초의 동영상으로 5초씩 끊어서 촬영했습니다. 총 42페이이며, 작성한 제안서 및 코드 설명이 담겨져 있습니다. (흐름도도 담겨 있지만.. 처음 해보는 거라 많이 부족해도 너그러이 봐주시길 바라겠습니다... ㅎㅎ..) (하나씩 캡처를 하려고 했지만 시간 페이지가 분량이 길어지기에 보시는 분의 시간 절약을 하기 위한..) 앞으로 이 카테고리 에서는 팀업 프로젝트에서 담당했던 부분의 코드를 설명하며 나아가는 식으로 진행하겠습니다. 감사합니다.
-
2D.MetalSlug 06. Manager
안녕하세요 며칠 안됐지만 엄청 오랜만에 찾아오는 듯한 기분이 드는... 현재 c#공부에.. 코딩 테스트 준비에.. 새로운 프로젝트에.. 이것저것 정신이 없어서 업로드가 늦었는데요 ㅜㅜ https://userkhk.tistory.com/53 생존형 게임 00 -제작중- (추가8)★★★★★ 안녕하세요. 이번 생존형 게임 카테고리에서는 장르는 정했지만 아직 기획적인 요소가 남아 있어 현재 제작 중인 프로젝트입니다. 현재 제작 중인 단계로 얼추 간추려지면 제작 과정과 함께 업 userkhk.tistory.com ↑↑↑↑↑↑ (새로운 프로젝트 결과물들 영상 입니다.) 현재는 부분 동작 완성 영상만 추가적으로 업로드를 하고 있는데요. 어느 정도 간추려지면 초기 과정부터 영상과 코드 설명을 업로드할 예정입니다. Me..
-
2D.MetalSlug 05. Map 02 / 02
안녕하세요! 지난 첫 번째 글에서는 Edge Collider와 BoxCollider를 이용해 맵 지형을 제작했었는데요 오늘은 추가 맵 지형 애니메이션 제작 과정과 추가 부분 작업을 살펴보겠습니다. 사실 이걸 글로 올릴까 말까 고민을 하다가... (설명을 하기도 애매해서...) 연습 카트 고리니 남겨 놓으면 좋을 것 같아 남기게 됐습니다. 지난번 땅 지형에 이어 오늘은 물가 지형부터 맵 끝인 보스 지형까지, 그리고 뒷 배경을 제작 과정이 있었습니다. 또한 추가적으로 Player가 점프를 뛸 때 발판인 지형물에 막혀 점프가 막히는 현상을 수정했습니다. (간단한 enable을 true/false 해주는 동작이지만, 함께 살펴보겠습니다.) 우선 받아온 이미지 들은 Sprite Mode를 Multiple로 바꿔주..
-
RPG 듀토리얼 17. BOSS!!! 02 / 02 (Return & Die)
안녕하세요!! 오늘은 Boss의 Rturn 부분과 함께 대미지를 입어 Die 상태를 살펴보겠습니다. 사실 요즘 코딩 테스트를 하는 데 있어 저의 부족함을 깨닫고.. (절실히) 1일 1문제 (프로그래머스)를 실천해 보려고 했었습니다.. 만 Level 1 문제도 상당히 오랜 시간이 걸리며,, 저의 부족함을 절실히 깨닫고 알고리즘 공부에 힘을 싣고 있습니다... 해야 하는 것도 많고 준비해야 하는것도 너무 많은 것 같아 처음에는 상당히 불안했었는데요. 너무 복잡하게 생각하지 않고, 현재 할 수 있는 것부터 하나씩 하나씩 나아가기로 했습니다. 목표가 있다는 것이 즐거움 아니겠습니까? 허허!! (내일의 저는 오늘의 저보다 성장해 있습니다.) 자. 우선 그건 그거고 이건 이거니깐! 우선 구현한 Boss의 스크립트부..
-
RPG 듀토리얼 17. BOSS!!! 01 / 02 (Attack)
안녕하세요!!! 오늘은 튜토리얼의 클리어가 되는 조건인 소탕할 Boss에 대해서 작업을 하겠습니다! 이렇게 생긴 녀석인데 유니티 에셋 스토어에서 무료로 가져온 에셋입니다. (상당히 많은 에셋들이 듀토리얼의 Boss로 거쳐갔습니다...) 이 보스의 위치는 이 병사가? 알려주었었죠 ㅎㅎ 바로 스크립트로 넘어가 보겠습니다. 보스를 제어하기 위해 EnemyBoss 스크립트를 만들었고 열거형으로 boss의 상태 값을 선언해 주었습니다. enum은 상수의 일종으로 const대신 사용하며 const값을 입력하지 않아도 자동으로 0,1,2.... 의 값이 대입됩니다. (코드가 단순해지며 가독성이 좋고, 상수 이므로 if문 swith문에서 사용이 가능합니다.) Idle : 대기 Mve : 움직임 Attack : 공격 R..
-
2D.MetalSlug 04. Map 01 / 02
안녕하세요! 지난 글에서 Player의 이동 구현 및 공격 모션을 제작했었죠! 이번 작업은 플레이어가 전투를 펼칠 맵을 꾸며보려고 합니다. 구현 목록을 보시겠습니다. 1.Player 앞/뒤 이동 구현 2.Map 배치 및 Collider 충돌 체크 두 가지로 볼 수 있으며. 작업하는데 필요했던 세부사항들은 글을 쓰면서 올리도록 하겠습니다. player가 뒤를 보면 방향을 바꿔주는 모션을 진행해 보겠습니다. 원래 진행했던 방향은 SpriteRenderer를 이용해 flipX를 true/false로 바꿔주려고 했었습니다. 코드는 PlayerController에서 player가 Move 상태 일 시 조건에 맞게 flipX를 true/false로 제어를 해 주었고 -1.0f ~ 0 ~ 1.0f의 (좌 / 우 이동..
-
RPG 듀토리얼 16. Store buy and sell
안녕하세요!! 날씨가 따뜻해지다가 다시 추워지다가.. 오락가락합니다. 다들 감기 조심하셔야 할 듯합니다 ㅜㅜ (겉옷 꼭 챙겨 다니세요!) 오늘은 상점 팝업 기능까지 마쳤으니 상점에 있는 아이템을 구매 및 판매하는 부분을 작업할 예정입니다. 상점에 있는 물건들(npc가 갖고 있는 물건)과 npc를 클릭하면 store창과 bag창이 팝업이 됩니다. (닫기 버튼은 panel에 eventTrigger에 Pointer Down 을 사용하여 비활성화 되게 해 줬었습니다.) 아이템 정보 창이 활성화될 시에는 두 가지 조건이 있었습니다. 1. Bag 안에 있는 아이템일 때 클릭을 할 시 2. Store 안에 있는 아이템을 터치/클릭할 시 Item_Action 스크립트에서 가방에 있는지 체크할 inBag 불 변수와 상점..
-
RPG 듀토리얼 15. Npc Store OpenStore
안녕하세요. 이번 글에서는 상점 npc에 대해 다룰 예정입니다. 구현 동작 목록을 보자면 1. 상점 NPC를 클릭하면 상점이 열리게 됩니다. 2. 상점에 있는 아이템을 구매 및 판매를 할 수 있습니다. 2가지로 크게 볼 수 있을 것 같습니다. Store프레임과 Bag프레임입니다. (그림적 감각은 타고나야 한다고 하던데,, 살짝 감각이 있는 것 같기도 하고..) 네 STORE프레임은 간단한 이미지로 만들었으며 각 슬롯과 슬롯의 자식으로 텍스트를 붙여주었습니다. NPC들의 퀘스트 창과 똑같이 Panel을 만들어 Panel을 터치/클릭 시 비활성화를 되게 만들었으며 경계 선을 지점으로 위쪽은 StoreFrame이 비활성화되며 상점 npc를 터치 / 클릭 시 StoreFrame과 BagFrame이 같이 켜지게 ..
-
RPG 듀토리얼 14. Object Pool & item Gold
안녕하세요. 원래 상점 NPC를 작업하려고 했는데 ObjectPool을 적용한 코드 작업을 보려고 합니다. Enemy를 죽이면 50%의 확률로 골드 아이템이 생성됐었는데요. 새로 생성하는 것보다, 오브젝트 풀 방식으로 관리하는 게 훨씬 효율적이니 간단하지만, 효과적인.. 처음엔 잘 모르지만 점점 효과가 누적되면 태산이 되는 바로 저 같은.. 네. 바로 코드로 들어가겠습니다. 우선.. 작업한 부분을 어디서부터 봐야 할지 찾아보다가 gold 아이템 구현 부분을 설명 안 드린 것 같아 Enemy가 죽으면 떨어트릴 Gold Item 작업 부분부터 먼저 보면서 천천히 나가겠습니다. gold에 입혀질 Item_Gold스크립트의 전체 스크립트입니다. gold_Text : 얻는 골드를 시각화해줄 text입니다. (Te..
-
RPG 듀토리얼 13. player & NPC 상호작용
안녕하세요. 오늘은 player와 npc의 상호 작용하는 부분을 올리려고 합니다. 마을에는 각 npc들이 존재하며. 현재 배치할 npc오브젝트의 구현 목록은 마을 주민 / 장로 / 상점 / 교관 / 부상당한 병사 로 총 4명의 npc를 구성할 것입니다. 현재 예상으로는 상점을 제외한 나머지 npc의 동작 구현 목록을 보며 상점의 팝업 기능과 구매/판매 기능을 따로 작성하지 않을까 싶습니다. 이 프로젝트는 단순 튜토리얼을 구현한 것이기에 따로 플레이어의 육성은 없지만, 보스를 소탕하기 전까지의 퀘스트를 NPC인 교관에게 받으며 안내를 받고 있습니다. 또한 NPC와 대화를 하거나 일반 몬스터를 잡을 때 경험치를 주며 퀘스트를 클리어할 때에도 경험치를 받을 수 있습니다. 각 렙에 맞게 스킬의 잠금이 해제됩니다..
-
2D.MetalSlug 03. Bullet Fire(Animation Event)
안녕하세요. 오랜만에 MestalSlug 모작 프로젝트를 업데이트하러 들어왔습니다. Player가 발사할 총알과 원하는 시간에 맞춰 발사를 구현 할 예정입니다. 총알은 머신건으로 시각적 효과를 줄 것이며 이미지를 무료로 다운로드하였습니다. 바로 제작 과정을 보겠습니다! 가장 먼저 이미지의 Typ과 Mode를 바꿔 주었습니다. Type은 2D에서 제작을 할 것이기에 Sprite(2D and UI)로 바꿔 주었으며 Texture Type은 존재하지만 기본값인 default 나 텍스처가 2D 게임에서 Sprite로 사용할 경우 권장 등 많은 Type들이 있습니다. Sprite Mode는 Multiple로 여러 개의 Sprite를 갖게 해 주었습니다. Sprite Mode는 3가지 타입이 존재하며 (single..