2024/07 10

숫자의 신 개인 프로젝트 4일차

구현 내용1. 오브젝트풀 구현 디펜스 게임 특성 상, Block의 생성 파괴가 계속 반복된다. 프리팹의 Instantiate, Destroy 함수는 비용이 크기 때문에 오브젝트를 미리 생성해서 재사용하는 ObjectPool을 사용해서 최적화 했다.  ObjectPoolControllerpublic GameObject CreateBlock(string poolName, Vector3 startPosition){ GameObject block = ObjectPool.SpawnFromPool(poolName); block.transform.position = startPosition; block.SetActive(true); return block;}  ObjectPool[System.S..

숫자의 신 개인 프로젝트 3일차

구현 내용1. Block 생성 일정 시간마다 Block 프리팹을 반복해서 생성Block은 수평, 수직 방향으로 이동Block이 벽에 닿으면 수평 이동 방향 변경Destroyline에 닿으면 Block 파괴 2. Blcok 파괴 생성된 Block들 중, 계산 결과가 있다면 Block 파괴 후, Score 획득Block을 끝까지 계산 못하면 HP 감소  GameController 스크립트public Dictionary Blocks;IEnumerator COCreateBlock(){ while (true) { SetBlockNumber(10); yield return new WaitForSeconds(BlockCreateTime); }}private void Creat..

숫자의 신 개인 프로젝트 2일차

구현 내용1. GameScene 기본 UI 생성  2. 숫자 버튼 구현 클릭 시, 계산식 UI에 차례대로 입력C 클릭 시, 초기화  CalculationFormula 스크립트public void EnterNumber(int num){ if (_fillNumberFrames == _numberFramesCount) return; _numberFrames.transform.GetChild(_fillNumberFrames).GetChild(0).GetComponent().text = num.ToString(); _fillNumberFrames++;}public void ClearNumber(){ ResetNumberFrames(); _fillNumberFrames = 0;}  Cal..

숫자의 신 개인 프로젝트 1일차

프로젝트1. 초기 와이어프레임  2. 프로젝트 설명1. 제목 : 숫자의 신2. 장르 : 2D 하이퍼캐주얼 퍼즐 수집형 디펜스3. 설명 : 사칙연산을 통해 내려오는 블록을 막는 게임4. 목표 : 애드몹 보상형, 배너, 전면 광고 넣기, 구글 플레이 등록, 랭킹 구현, 누구나 쉽게 플레이 할 수 있는 게임 구현5. 목표 기간 : 4주  회고새로운 개인 프로젝트를 시작했다. 목표는 기본적으로 이전 프로젝트와 비슷하고, 이번에는 조금 더 짧은 개발 기간을 잡았고, 남녀노소 즐길 수 있는 간단한 게임 개발을 목표로 했다. 지난 멀티 게임을 개발 후, 느낀점은 PVP와 같이 실시간 멀티 게임은 유저가 적기 때문에 유저들이 즐길 수 없다는 것이다. 그래서 PVP 보다는 싱글 플레이의 Score를 랭킹에 적용되는 방식..

gitignore로 특정 폴더 Push 하지 않기

유료 에셋을 사용할 경우, GitHub에 Push하고 public으로 설정할 경우, 저작권 문제가 될 수 있다. 그래서 반드시 유료 에셋은 Push해서는 안된다. 개인 프로젝트에서 유료 에셋을 사용할 경우, 미리 다음과 같이 설정 후, 프로젝트를 시작하면 편하다. 미리 설정하지 않는 경우, 유료 에셋을 모두 삭제 후, Push하여 GitHub에는 유료 에셋 부분이 없도록하고 나의 프로젝트에 다시 삭제한 유료 에셋을 추가해야 한다.  설정 방법1. .gitignore 텍스트 파일 클릭  2. Push에서 제외할 폴더 작성 후, 저장   설정한 경로에 있는 위 폴더안에 추가되는 파일은 Push 되지 않는다.

GitHub 2024.07.16

푸쉬앤슬래시 개인 프로젝트 36일차

구현 내용1. 앱 이름 설정https://kkln2486.tistory.com/401 앱 이름 한글 설정Product Name을 한글로 입력하면 빌드 시, 오류가 난다. 앱 이름을 한글로 설정하기 위해서는 앱 이름을 국가별로 설정해야 한다. 설정 방법 1. 폴더 생성 다음 경로에 폴더 생성 2. 파일 생성 메모장kkln2486.tistory.com Project Settings의 Product Name과 앱 이름을 다르게 설정해야되기 때문에 따로 앱 이름을 설정했다. 예전 한글 앱 이름을 설정하기 위한 방법이었지만 영문 앱 이름을 설정도 가능했다.  2. 빌드 및 구글 플레이 업로드https://kkln2486.tistory.com/402 구글 플레이 업로드구글 플레이 업로드1. 초기 빌드 설정1. Bu..

푸쉬앤슬래시 개인 프로젝트 35일차

구현 내용1. Boss 추가  동일한 코드로 보스 3종류 추가 구현전체 4종류의 보스를 각각 5, 10, 15, 20 Stage에 배치  2. 튜토리얼 구현  PlayerPrefs로 최초 한번만 실행하도록 구현  Tutorial 스크립트private void Start(){ ButtonClickCount = 1; if(PlayerPrefs.GetInt("BattleSceneTutorial") == 0) StartCoroutine(COStartTutorial());}private void TutorialActive(int num){ for (int i = 0; i    회고보스를 추가 구현하고, 맵에 배치를 해서 드디어 프로젝트를 모두 완성했다. 그 외, UI를 정리하고, 유저들의 원활한 ..

푸쉬앤슬래시 개인 프로젝트 34일차

구현 내용1. 보스 구현 이미 구현한 Enemy의 AttackState를 수정IsBoss bool 추가기본 공격, 근접 스킬 공격, 원거리 스킬 공격 구현  회고오늘은 보스를 구현했다. 예상 프로젝트 완성일보다 많이 지나서 보스 구현을 넘어갈까 생각도 했지만, 이미 Enemy를 구현한 상황에서 조금만 수정해서 몇개의 공격 패턴만 만들면 되기 때문에 보스를 구현하기로 했다. 기존 Enemy는 단순히 근접, 원거리 적만 각각 존재했는데 보스는 근접 공격, 원거리 공격 모두 가능하게 해서, 각각 조건에 따라 여러가지 패턴으로 공격할 수 있도록 구현했다. 이제 같은 방식으로 보스를 3개더 추가 후, 배치하도록 하겠다.

푸쉬앤슬래시 개인 프로젝트 33일차

트러블 슈팅1. 멀티 공격 시, 콜라이더 인식하지 못함  빌드 후, 위 처럼 공격이 적용되어야 하지만, 안드로이드 환경에서는 공격이 진행되지 않았다. 이 오류를 해결하기 위해 구글링을 엄청했지만, 모든 방법이 적용되지 않았다.  시도한 방법1. CompareTag("Player") 대신 tag == "Player" 사용구글링 결과, 콜라이더의 tag를 판별하는 CompareTag가 모바일 환경에서 제대로 작동하지 않는 경우를 확인. tag == "Player" 로 수정했지만, 해결 실패 2. Tag 판별 대신, Layer 판별 콜라이더의 Tag로 판별이 문제가 있을 수 있다고 생각해서 Layer로 판별했지만 해결 실패 3.Tag명 변경기존에 유니티에 있던 Player Tag명이 아닌 다른 Tag명을 적용..