과제 13

[Unity3D,C#] 게임개발 숙련 팀 프로젝트 1일차

🎯이번 프로젝트 목표디자인 패턴 적극활용객체 지향 구조로 코드 작성예외처리 코드 작성최대한 최적화 해보기👩🏻‍💻오늘 할일자원 획득과 가공 시스템을 위한 사전 준비데이터 관리는 ScriptableObjectItemData클래스를 만들어서 WeaponData FoodData가 ItemData를 상속받게 하였다. ▼아이템 관리 클래스 다이어그램 [System.Serializable] 과 struct(구조체) 를 활용하여 인스펙터에서 값을 설정할수있게 해주었다. 이 다음에는 자원 획득 가능한 오브젝트 데이터도 ScriptableObject로 만들어주었다.그리고 interface도 미리 작성해두었다.public interface IInteractable // 상호작용 인터페이스{ public stri..

과제 2025.03.12

[Unity,C#,3D] 게임 개발 숙련 개인 과제 3일 차

👩🏻‍💻오늘 할 일점프대아이템 사용대시움직이는 발판#1 점프대점프대를 구현해 봤는데 뭔가 자연스럽지 않았다.▼구현 코드 //용수철이 늘어나는 애니메이션 private IEnumerator ExpandSpring() { float localScaleY = m_SpringMinScaleY; while (Spring.localScale.y m_SpringMinScaleY) { localScaleY -= Time.deltaTime; Spring.localScale = new Vector3(1, localScaleY, 1); yield return null; } } 게임할 때는..

과제 2025.03.06

[Unity,C#,3D] 게임 개발 숙련 개인 과제 2일 차

👩🏻‍💻오늘 할 일체력바 UI아이템 설명문 표시새로운 노트북 환경설정😵‍💫오늘의 트러블 슈팅#1 작은 오브젝트 인식 문제화면 중앙에서 ray를 쏴서 물체를 감지하고 그 물체의 데이터를 가져와설명문을 표시하는 로직을 구현했다.하지만 아무것도 뜨지 않았다.  ▼문제영상 전체 화면에서 화면 복원은 무시해주세요...ray를 화면에 표시해서 확인해 보니 시야각이 작은 영향이 있고(작게 안 하면 플레이어 높이가 낮기 때문에 땅을 뚫는다) 컵케이크도 높이가 낮기 때문에 ray에 감지가 안되고 있었다. 해결방법을 찾아보니1.ray를 머리 배 다리 세 방향으로 쏘기2.SphereCast를 이용해 ray의 폭 늘리기3.OverlapSphere를 사용하기 이 세 가지가 있었다. 첫 번째는 3개의 ray를 쏘고 감지..

과제 2025.03.05

[Unity,C#,3D]게임 개발 숙련 개인 과제 1일 차

👩🏻‍💻오늘 할 일Git연동기본 에셋 Import플레이어 이동, 점프 😵‍💫오늘의 트러블 슈팅#1 URP 렌더링 문제URP인 에셋을 Import 해서 배치를 해봤는데 핑크색으로 뜨는 문제를 발견했다. 패키지매니저에서 Universal RP을 Import 했는데도 렌더링에 문제가 있는 것 같았다.이유를 찾아보니Editor> ProjectSettings> Quality에서 RenderPipelineAsset이 none이었기 때문이었다! 제대로 설정해 주니 해결이 되었다!#2 플레이어 이동3D라서 내 컴퓨터가 과부하가 온 것일까...velocity에 직접 이동값을 넣어줬더니 캐릭터가 순간이동 한 것처럼 움직였다.AddForce로 구현하면 부드럽게 움직인다기에 코드를 수정해 줬다.먼저 일단 가속도, 최..

과제 2025.03.04

[Unity,C#] 유니티 입문 팀 프로젝트 개발 1일차

본격적인 개발 시작!!!◈오늘 할일인게임UI게임 결과재화노래찾기오늘의 트러블 슈팅#1 게임 결과창이 활성화되지않는 문제 게임 결과창 오브젝트를 하이라키에 놓고 SetActive(false) 으로 해놓았다.체력이 0이 되었을때  SetActive(true) 로 하고싶어서 코드를 작성해놓고게임을 실행시켜보았는데 어떻게 해도 활성화가 되지않았다. 원인을 찾아보니Unity에서는 비활성화된 오브젝트를 비활성 상태 그대로 복제하기 때문에씬에 직접 놓은 오브젝트가 SetActive(false) 상태라면 활성화하는 코드로는 활성화 되지않기때문이었다. 반면, Instantiate는 원본 오브젝트가 비활성이어도 활성 상태의 복제본을 생성하므로 Instantiate생성하는 코드로 수정한뒤 해결완료! //결과창 표시 ..

과제 2025.02.24

[Unity,C#] 메타버스 제작 과제 4일차

● 오늘 할 일교환 시스템미니 게임 이미지와 NPC 애니메이션간단하게라도 BGM SE 구현모자 대사 표시모자 데이터 추가필요 없는 데이터 삭제● 오늘의 트러블 슈팅#1 교환 함수의 중복 호출 문제 교환 기능을 가진 상호작용 가능한 물체를 구현하고 싶었다.교환 가능여부에 따라 마지막멘트를 변경하는 로직이 담긴 함수를 작성하였고실행을 했지만 모든 물체의 마지막 대사가 "다이아가 부족하군요..."로 뜨고 있었다. ▼문제 영상 상자에는 뜨면 안되는데....코드를 다시 읽어보니 상호작용이 가능한 모든 오브젝트에는 PropController 스크립트가 있는데PropController 안 Start()에서 아래 코드를 선언해주고 있었다.m_SceneController.DialogueController.OnLastDi..

과제 2025.02.20

[Unity,C#] 메타버스 제작 과제 3일차

● 오늘 할일뽑기미니게임 추가미니게임 보상탑승물NPC추가● 오늘의 트러블 슈팅 #1 코루틴 문제 뽑기를 구현하다가 한번 뽑기가 한번이 아닌 중복으로 되는 문제를 발견했다.코루틴 안에서 뽑기 결과 리스트가 반환이 되고 나서 뽑기 결과 씬으로 넘어가고 싶었기 때문에아래와 같은 코드를 작성했다. while (true) { yield return GetGachaRewards(count); //뽑기 쿠폰 사용 m_GachaCoupon.Use(count); //뽑기 결과 씬으로 이동 LoadScene("GachaResult", m_GachaRe..

과제 2025.02.19

[Unity,C#] 메타버스 제작 과제 2일차

● 오늘 할일커스텀 캐릭터데이터 관리 (ScriptableObject 사용)데이터 저장● 오늘의 트러블 슈팅#1 Json 역직렬화 문제데이터 관리를 ScriptableObject를 사용해서 해보기로 하였다.ScriptableObject를 상속받은 클래스를 담은 딕셔너리를 데이터 매니저에서 선언을 하였다. 딕셔너리가 담긴 데이터매니저를 저장하기 위해 Json으로 역직렬화 하는 코드를 작성하였다.에디터를 실행 해보니 TLS Allocator 오류가 나왔다. 원인을 찾아보니 데이터 매니저가 MonoBehaviour를 상속받고 있기때문에 JSON으로 역직렬화가 불가능 했었고 MonoBehaviour를 new() 하고 있었다.  저장할 데이터 리스트는 따로 SaveData라는 클래스로 빼서 수정해주었다.코드를 수..

과제 2025.02.18

[Unity,C#] 메타버스 제작 과제 1일차

● 이번 목표예외 처리나 방어 코드 꼭 쓰기객체 지향으로 코드 작성하기주석으로 코드 설명하기도전 과제 까지 다하기● 추가로 도전할 부분뽑기 구현 → 미니 게임 보상으로 얻은 티켓으로 뽑기 가능● 오늘 할일캐릭터 이동맵 설정카메라 추적과 이동 범위 제한NPC (대화는 아직, 기반은 구현)독버섯 피하기 미니게임, 점수 저장● 오늘의 트러블 슈팅#1 플레이어 정지 후 강제 플립 문제 아래와 같이 플레이어 이동 정지 후 강제 플립 되는 문제를 발견했다. ▼문제 영상원인을 찾아보니 아래와 같이 direction == 0 (정지일때) 의 조건도 같이 계산 하고 있었다.m_SpriteRenderer.flipX = direction.x  조건을 나누는것으로 해결했다. if (direction.x 0) ..

과제 2025.02.17