본문 바로가기

분류 전체보기31

기다리시는 분들께 정신없이 상반기를 보낸 것 같습니다. 블로그 활동은 거의 못했지만요.. 포스팅을 기다리는 분들께 죄송하지만 미뤄놨던 일들을 하려 합니다. 자격증 따기, 묵혀놨던 애플리케이션 출시, 팀 프로젝트 보완 등등.. 그리고 최근에 댓글 여러 개가 달렸는데 확인하지 못했습니다. 오류에 대한 피드백을 할 때 댓글로 알 수 없는 경우 프로젝트를 열어서 직접 확인을 해야 하고, 이게 쌓이다 보면 엄청 시간을 잡아먹습니다. 혼자서는 조금 벅찬 느낌이 있네요. 죄송합니다. 그래도 할 일들을 차차 마무리하면 다시 시간을 내서 도와드릴 수 있을 것 같습니다. 2021. 6. 18.
[유니티 강좌] 2D RPG 게임 만들기 - 16 / 스테이터스 클래스 정리하기 처음에는 정말 기초만 포스팅하고 끝내려 했는데 예상치 못하게 많이 진행이 되면서 점점 코드가 복잡해지고 있습니다. 스크립트 파일을 나누지 않으면 점점 개발이 힘들어지니 이번 포스팅에서 약간이나마 깔끔하게 정리하는 시간을 가지려고 합니다. 한 분이 질문 주셨는데요. "여러 적을 만들 때 일일이 스크립트를 만들어서 스테이터스를 설정하는 건 비효율적이고 귀찮은 작업인 것 같다. 이 문제를 해결할 방법이 있는지 궁금하다" 라고 질문해주셨습니다. 질문한 분의 고민은 기존에 스테이터스 객체가 정의되지 않아서 발생했던 문제로 이번 포스팅을 따라해보시면 해결하실 수 있을 겁니다. 먼저 설명을 드리기 전에 말씀드리고 싶은 것은 제가 설명드릴 방법이 실무에서 쓰이는 정석이 아닐 수 있다는 점, 그리고 제가 프로그래밍을 공.. 2021. 5. 13.
파이썬 기초 압축 - 2 / 반복문 while, for 반복문 while 무한 반복 while True: print("반복") ctrl + c 로 실행을 중지할 수 있습니다. 10번 반복 cnt = 0 while cnt < 10: print("반복 : " + str(cnt)) cnt += 1 반복문 for 5번 반복 for i in range(5): #== range(0,5): print(i) 배열 반복 list = [123,456,789] for i in list: print(i) 2차원 배열 반복 list = [['a',1],['b',2],['c',3]] for c, i in list: print(c + ", " + str(i)) 2중 for문 list = [['a',1],['b',2],['c',3]] for i in list: print("배열:" + .. 2021. 5. 4.
[유니티 강좌] 2D RPG 게임 만들기 - 15 / 플레이어의 죽음 이 게임에서 플레이어가 죽는 경우는 체력이 0 이하가 되었을 때 땅 밑으로 떨어졌을 때 위 두 가지 경우로 나눌 수 있는데요. 이번 포스팅에서는 죽으면 die 애니메이션을 실행하고, 게임을 재시작 하는 것까지 구현해보겠습니다. 스크립트 코드는 sword_man.cs에 추가해주세요. using UnityEngine.SceneManagement; // 클래스 위에 적기 bool isSwordManDead = false; void Start() { ~~~ // 기존 코드 밑에 StartCoroutine(CheckSwordManDeath()); } void Update() { if (isSwordManDead) return; // 조작 못하게 하기 ~~~ // 기존 코드 위에 } IEnumerator Check.. 2021. 5. 2.
파이썬 기초 압축 - 1 / 입출력문과 변수 설명이 생략되어 있는 부분 있어서 프로그래밍을 처음 접해보셨다면 이해가 힘들 수도 있습니다. 시작 전 준비 포스팅에 나오는 코드를 실행하려면 python이 깔려있어야 합니다. 파이썬은 공식 홈페이지에서 다운로드할 수 있습니다. Welcome to Python.org The official home of the Python Programming Language www.python.org 코드 실습은 IDLE Shell에서 진행했습니다. IDLE Shell을 켜면 위와 같은 첫 화면이 나옵니다. 글자 크기가 작아서 변경하고 싶다면 Options -> Configure IDLE 에서 변경할 수 있습니다. File -> New File 로 코드를 입력할 창을 띄울 수 있습니다. 첫 화면에서 코드를 바로 입력이 .. 2021. 4. 26.
숫자 야구 게임 만들기 - AI 숫자 맞추기, Player 숫자 맞추기 Player가 숫자 맞추는 프로그램은 간단한 게임을 만드는 것에 가깝습니다. 랜덤으로 숫자 4개를 생성하고 플레이어가 입력한 숫자에 따라 스트라이크, 볼을 출력해주면 됩니다. AI가 숫자 맞추는 프로그램은 위 그림과 같이 특정 숫자와 모든 경우의 수를 비교하고, 스트라이크나 볼의 개수가 다른 숫자들을 제거하는 식으로 반복해서 마지막 남은 하나가 정답이 됩니다. 의사코드 1. Player 숫자 맞추기 ranNums = 겹치지 않는 (0~9)숫자 4개 랜덤 생성 LOOP answerNums = 4개의 숫자 입력 FOR i = 0 to 3 FOR j = 0 to 3 IF ranNums[i]와 answerNums[j]의 자릿수와 숫자가 같을 때 THEN strike++ ELSE IF 숫자만 같을 때 THEN b.. 2021. 4. 6.
공지 - 2D RPG 게임 만들기 / 따라 하던 중 오류 있을 때 오류로 고생하는 분들이 계셔서 포스팅합니다. 따라 하면서 배울 때 오류가 나는 건 당연한 거라고 생각합니다. 문제는 오류로 질문 주실 때 제가 빨리 확인해드리면 좋겠지만 보통 1~2일 정도 걸립니다. 때문에 빨리 오류를 해결하려면 먼저 구글에 오류를 검색해보세요. ex) 오류 메시지 NullReferenceException: Object reference not set to an instance of an object Enemy.OnTriggerEnter2D (UnityEngine.Collider2D col) (at Assets/Scripts/Enemy.cs:42) NullReferenceException 검색 null 값에 접근할 때 뜨는 오류라는 것을 확인할 수 있습니다. null 값이 나오는 건 값.. 2021. 4. 4.
[유니티 강좌] 2D RPG 게임 만들기 - 14 / 사운드 RPG 만들기 - Google Drive 이 폴더에 파일이 없습니다.이 폴더에 파일을 추가하려면 로그인하세요. drive.google.com 드라이브에 예제 사운드 파일을 추가했습니다. Scripts폴더에 Sounds폴더를 만들고 BGM, SFX를 관리하는 스크립트를 생성합니다. SFXManager.cs public class SFXManager : MonoBehaviour { public static SFXManager Instance { get; private set; } public AudioClip playerAttack; AudioSource audioSource; private void Awake() { Instance = this; } private void Start() { audioSou.. 2021. 3. 28.
[유니티 강좌] 2D RPG 게임 만들기 - 13 / 함정 MineTile -> Texture -> Misc에 있는 가시 이미지를 사용했습니다. Thorns.cspublic class Thorns : MonoBehaviour { private void OnTriggerEnter2D(Collider2D col) { if (col.CompareTag("Player")) { Sword_Man swordMan = col.GetComponent(); swordMan.nowHp -= 10; if (swordMan.nowHp < 0) swordMan.nowHp = 0; } } } Polygon Collider 2D의 Edit Collider를 누르면 충돌체를 다각형으로 수정할 수 있습니다. 만든 함정 오브젝트를 Prefabs에 저장합니다. 2021. 3. 24.