728x90

unity 17

Firestore 오류없이 저장/읽기 안 되는 현상, Firebase 에뮬레이터 UI로 테스트까지, Firebase Functions 배포된 함수 로그 확인하기 [슬기롭고 싶은 인턴생활]

Firestore 사용 시 오류없이 저장/읽기 안 되는 현상결론부터 말하자면 'Firestore에서 사용중인 DB의 이름이 있어서'였다. Firestore를 처음 설정할 때 Firebase에서 권장하는대로 디폴트 DB를 생성해서 쓰면, Firebase 공식 문서의 튜토리얼처럼 FirebaseFirestore.DefaultInstance; 로 Firestore에 접근해서 쓰면 간단하게 사용 가능하다. 하지만 나의 경우 다른 작업자분께서 초기 설정을 하시고 나한테 넘겨주셨기 때문에 커스텀 DB를 사용하고 있는지 몰랐다. 그래서 에러도 없이 아무 작동을 안해서 한참 고생했었다 ㅠㅠ 그래도 유니티에서 한 번 겪고나니 서버 함수를 작성할 때도 왜 안 되는지 바로 눈치챌 수 있었다. ㅎㅎ... 럭키비키?유니티에서..

실무 기록 2025.08.13

[Unity/TIL] 2D 최적화(2) - 드로우 콜 줄이기, 캔버스 중첩

드로우 콜 줄이기Frame Debugger 에서 지금 화면이 어떤 과정을 거쳐서 그려졌는지 볼 수 있다. Window > Analysis > Frame Debugger현재 예시 프로젝트에서 UI의 드로우콜이 33회 발생하고 있다. Sprite들을 한 번에 묶어서 그릴 수 있게 묶어줄 수 있는 Sprite Atlas가 있다.=> 묶여있는 Sprite끼리는 한 번에 그려짐=> 드로우 콜을 줄일 수 있다.! Sprite Atlas 만드는 방법Sprite Atlas를 Create하고, 한 번에 그릴 Sprite들을 넣어준다. 폴더째로 넣어줘도 된다. Tight Packing 끄기 (선택사항)Tight Packing을 켜주면 가운데가 비어있는 프레임 이미지같은 것들과 다른 이미지가 겹치기도 한다. Tight P..

[Unity/TIL] 인벤토리 / 아이템 구현, FSM, AI Navigation 복습

인벤토리 / 아이템 구현슬롯형 인벤토리를 만들었다.마우스 호버 시 아이템 정보를 보여주고 클릭 시 장착된다. 아쉬운 점아이템은 Scriptable Object로 관리했으나 데이터로서 관리되지 않고 아이템에 각각 붙어있다..ㅎ  이렇게 하면 데이터를 아이템마다 따로 복사해준 것이다. 한 아이템 데이터가 3개씩 3종류니까 SO가 총 9개 복사되어 있는 거다. 원래 SO들을 어딘가에 한 번 로드해두고 참조하는 식으로 해야 효율적이다.!!=> 데이터 개수만큼만 로드하고, 참조해서 사용하기. 애초에 오브젝트 풀도 없이 씬에 아이템 9개를 뿌려놓고 아이템이 사라지고 나면 알아서 3초뒤에 리젠되도록 만들었다.UI 구조플레이어 AI 만들기플레이어가 아이템을 스스로 먹으러 찾아 다니도록 만들고 싶었다. AI Naviga..

[Unity/TIL] UI에 바로 적용할 수 있는 기본 제공 이벤트 핸들러 (Hover, Exit, Down, Drag, ...)

IPointerEnterHandler, IPointerExitHandler  각각 Hover될 때와 커서가 나갈 때 호출됨. 인터페이스를 상속받고 구현하면 끝이다.EventSystem + Graphic Raycaster + Canvas 기반 UI에서만 동작하는 이벤트 인터페이스다. 예시... 너무 간단public class ItemSlot : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler{ public void OnPointerEnter(PointerEventData eventData) { // 아이템 정보창 보여주기 Debug.Log("마우스 호버"); Inventory.ShowItemDesc(Ite..

[Unity/TIL] 제네릭 활용(제네릭 싱글톤, 제네릭 오브젝트 풀 예제)

제네릭 활용스탠다드반 강의를 도강하면서 유용한 정보들을 쏙쏙 뽑아왔다. (대충 꺼억콩)제네릭 싱글톤다양한 Manager 클래스를 만들 때 싱글톤으로 만드는 코드가 반복되는데, 제네릭을 사용해서 싱글톤 객체를 효율적으로 만들 수 있다. public class Singleton : MonoBehaviour where T : MonoBehaviourSingleton : MonoBehaviour  Singleton 클래스가 MonoBehaviour를 상속받는다. (그래야 FindObjectOfType 가능)where T : MonoBehaviour T에 들어올 클래스가  MonoBehaviour를 상속받고 있어야 한다.using System.Collections;using System.Collections.Ge..

[Unity/TIL] Unity 입문 팀 프로젝트 - '닌자의 전설' 개발 일지 (1)

'닌자의 전설' 개발 일지저번주에 팀원들과 기획 회의와 간단한 설계를 마치고, 첫번째 역할로 몬스터 구현을 맡게 되었다. 몬스터 : 플레이어 감지 및 따라가기, 공격 플레이어가 1명인 게임이기 때문에 씬에 있는 FindObject 등으로 Player를 찾거나 에디터에서 처음부터 넣어줘도 되고, Collision으로 감지해도 된다. 방법이 많아서 고민했는데, 플레이어 감지 이후에도 몬스터의 공격 사거리 내에 들어오는지를 판단해야 하기 때문에 감지는 직관적인 방법으로 하고, 사거리 내에 들어오는 것은 Distance로 판단하였다. 플레이어 감지 상태에서는 Target인 플레이어를 따라간다. 만약 공격 사거리 내에 플레이어가 들어오면 따라가는 것을 멈추고 공격하도록 했다. 아직 공격 처리는 비어있다.데이터 테..

[Unity/TIL] 미니 프로젝트 '팀원을 찾아라' 마무리

미니 프로젝트 미니 프로젝트를 진행하면서 얻게 된 깨달음을 위주로 마지막 소감을 기록하려고 한다. 깨달은 점들을 앞으로의 프로젝트에 참고하면 성장이 있을지도!? 💭 결과물 링크 : https://youtu.be/LobEpEj56nI?si=Xz4Qbj_21OdI85kz  프로젝트 소개내일배움캠프의 가장 첫번째 챕터로 미니 프로젝트를 진행했다. 내배캠의 사전캠프에서 수강했던 유니티2D 기초 강의를 이해하고 응용해보며 협업을 위한 Git 사용법, 프로젝트 마감 기한을 지키는 연습을 하게 되는 챕터이다. 강의의 내용 중에 '카드 뒤집기' 게임을 우리 팀만의 이야기를 담을 수 있는 '팀원 소개 카드게임'으로 만드는 것을 목표로 한다.개인적으로는 깃허브 중에서도 브랜치를 활용해보는 것이 추가 목표였다.종합 목표G..

[Unity/TIL] 버그 수정 - 애니메이션 전환 조건, Invoke 하는 동안 상호작용 막기

히든 스테이지에서만 카드가 뒤집혔다가 Idle로 안 돌아오는 버그 수정현재 레벨이 3(= 히든 스테이지) 일 때도 anim.SetBool("isOpen", false); 를 실행해줘야 하는데 else문에 있어서 생긴 문제였다. 주의하도록 허자~ // Card.cs void CloseCardInvoke(){ anim.SetBool("isOpen", false); // 이 코드는 어떤 레벨이든 실행해야 한다. if (GameManager.Instance.CurLevel == 3) { front.GetComponent().SetInteger("HiddenCard", -1); } front.SetActive(false); back.SetActive(true);} 카드..

[Unity/TIL] 카드 Lerp 이동, 애니메이터, Scene이 Merge 충돌날 때, Button Component 안 먹힘, 싱글톤에서 Start 함수 실행 횟수

작업 내용카드 섞는 연출 만들기처음에 카드가 모였다가 이동하는 연출을 애니메이션으로 만들어보려고 했다. 카드가 스크립트에서 부여받은 위치를 애니메이션을 통해 그위치로 천천히 이동하게 하려고 했다. 이것저것 해보는데 애니메이션에서 스크립트의 변수값을 바꿀 수는 있었으나 값을 받아오는 것이 안됐다. 튜터님께 여쭤보니 프리팹 각각 다른 값을 가지고 이동하는 거라서 애니메이션이 아니고 스크립트로 직접 이동해야 한다고 말씀해주셨다. 카드들이 가운데에 모여있다가 자기 자리로 Lerp이동하도록 만들었다. 가운데에 모여있다가 이동이 끝나고서 CardIdle 상태가 되도록 하기 위해 애니메이터에 있는 변수를 조건으로 활용하였다.// Board.csprivate void Update(){ if(isCardShuffl..

[Unity] "르탄이 카드 뒤집기" 2D 게임 만들기 (1)

카드 뒤집기 게임 만들기게임 설명카드를 뒤집어 르탄이 이미지의 짝을 맞추는 게임이다. 플레이모습  학습 목표1. 보드 게임을 만들어보기2. 카드 뒤집기 게임을 만들면서, 총복습하기3. 게임에 필요한 "로직"을 경험하기 목차1. 기본 씬 구성하기2. 씬 추가 구성 - 카드 한 장과 시간 시스템3. 카드 만들기 - 배치하기4. 카드 만들기 - 이미지 랜덤 로직5. 카드 만들기 - 애니메이션과 뒤집기 6. 카드 만들기 - 판정 시스템7. 게임 끝내기  1. 기본 씬 구성하기이번에도 UnityPackage로 이미지, 폰트, 사운드 에셋을 임포트해뒀다. StartScene 만들기 StartScene을 만들고 Start 버튼 UI에 Button 컴포넌트를 추가한다. OnClick() 리스트에 LoadScene 코드..

728x90