일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 크래프톤정글
- 전쟁-전투
- 추상클래스와인터페이스
- 4기
- 알고리즘
- 네트워크
- 알고리즘수업-너비우선탐색2
- anonymous page
- Unity
- BFS
- 유니티
- 오블완
- 티스토리챌린지
- 크래프톤 정글
- 크래프톤정글4기
- 파이썬
- KRAFTON JUNGLE
- 백준
- project3
- 연결리스트
- kraftonjungle
- c#
- 다익스트라
- pintos
- 핀토스
- 크래프톤 정글 4기
- 이벤트 함수 실행 순서
- TiL
- User Stack
- C
- Today
- Total
목록전체 글 (167)
말감로그

컴퓨터 과학자인 에츠허르 데이크스트라는 "프로그램 테스트를 통해 버그의 존재를 증명할 수는 있지만, 버그가 없음을 증명할 수는 없다" 라고 말했다.디버깅은 스크립트를 작성할 때 중요한 부분이고, 디버깅 없이 오류를 추적하고 고치는 방법은 없다.Debug.Log를 이용한 디버깅 : 개발자 지정 메시지유니티에서 가장 고전적이고 잘 알려진 디버깅 기법은 콘솔에 프로그램 흐름과 오브젝트 속성을 보여주기 위해 진단 메시지를 출력하는 Debug.Log 함수를 이용하는 방법일 것이다.벡터와 컬러 오브젝트를 포함한 모든 유니티 오브젝트에는 ToString 함수가 있어 내부 멤버(X,Y,Z와 같은)를 사람이 읽을 수 있는 형태의 문자열로 출력할 수 있다. 디버깅 기법으로서 Debug.Log의 한계는 바로 코드 간결성과 ..

유니티를 공부하고 활용하면서, 초급 기법이 아닌 고급 기법을 적용시키고 싶다는 생각에 책을 구매하게 되었다.그리고 유튜브나 구글링을 하며 찾을 수 있지만 제대로된 책 한 권을 구매한 후 읽는 것도 나쁘지 않을 것같다는 생각이 든 것두 있다. 1장은 챕터명 그대로 C# 복습하기로 변수, 함수, 조건문, 클래스와 상속, 다형성 등에 대한 기본적인 내용을 다룬다.그 중 내가 헷갈리거나 정확히 알지 못했던 다형성, C# 프로퍼티에 대해서 짚고 넘어갈 것이다.다형성다형성은 개체 지향 프로그래밍의 중요한 특징으로, 동일한 인터페이스나 기본 클래스를 공유하는 객체들이 서로 다른 동작을 할 수 있게 하는 능력을 말한다.기본 클래스는 가상 메서드를 정의 및 구현할 수 있으며, 파생 클래스는 이러한 가상 메서드를 재정의할..
https://www.youtube.com/watch?v=bjgFsXweQw8 시네머신으로 카메라 이동 제한을 구현하는 방법은 Cinemachine Confiner 2D를 사용하면 된다.Cinemachine Confiner는 카메라의 위치를 제한하여 화면 가장자리가 2D 폴리곤으로 정의돈 모양 내에 있도록 하는 것이다. Confiner인 경우 Collider, Confiner2D인 경우 2D 폴리곤이나 composite collider로 영역을 지정해서 설정해야 한다. 1. CinemachineVirtualCamera > Extensions > Add Extension > Cinemachine Confiner 2D select2. Cam Border GameObject 생성 , Polygon Colli..

Unity remote 5로 매번 모바일 UI를 확인하는게 번거롭고, 다양한 기기에서 확인해보고 싶다고 생각을 했었다. 그러다 유니티의 Device Simulator 패키지를 발견하였다. Unity - Manual: Device Simulator docs.unity3d.com Device Simulator는 실제 기기에서 어떻게 보일지에 대해 정확하게 보여주는 시뮬레이터이다. 이 패키지를 사용하기 위해서는 PackManager에서 Device Simulator 패키지를 install 하고Window > General > Device Simulator를 클릭하면 Device Simualtor 창이 활성화된다. 시뮬레이터로 확인하면서 ui를 재배치 할 수 있었다는게 정말 간편하다고 생각했다. Device S..

1년전 처음 유니티를 배우고 스스로 만든 게임이었던 2D 플랫포머 게임을 리팩토링/수정하려고 한다. 우선 키보드 입력 플레이어 조작을 모바일 버튼 터치 조작으로 변경하였다.//PlayerCtrl.csprivate void HandleInput(){ dirX = Input.GetAxis("Horizontal"); transform.Translate(dirX * Time.deltaTime * moveSpeed, 0, 0); if (Input.GetKeyDown(KeyCode.Space) && IsGrounded()) { rb.AddForce(Vector2.up * jumpPower, ForceMode2D.Impulse); } if (Input.GetKeyDown(..
그동안 작성했던 코드들에 대해서 버그나 기능을 추가하거나 리팩토링하면서 전체적인 코드를 수정했다. 1. 저장 후 로드 시 인벤토리에 있는 씨앗을 심을 때 성장이 안되는 문제인벤토리에 아이템을 추가하고 저장 후 로드할 때 다른 아이템들은 잘 사용이 되지만, 씨앗 아이템들은 사용을 해도 성장이 되지 않는 문제가 있었다.그 이유를 찾아보니 식물 성장 시스템을 위해선 해당 아이템의 PlantData가 필요했지만, 저장 할 때 아이템의 데이터(ItemData)만 저장을 하고, PlantData는 저장하지 않아서 텅 비어있는 데이터로 인해 식물 성장 시스템이 작동하지 않았던 것이었다. 그래서 InventorySlotData에 plantName을 저장해서 해당 plantName으로 해싱하여 PlantData를 찾아서..

마우스 커서를 변경하기 위해서 마우스 Sprite의 Texture Type을 Cursor로 변경해줘야 한다. 그리고 SetCursor를 사용하여 내가 설정한 새로운 커서 텍스쳐 이미지로 커서를 변경한다.using UnityEngine;public class ChangeCursor : MonoBehaviour{ public static ChangeCursor instance; public Texture2D newCursorTexture; void Awake() { if (!instance) { instance = this; DontDestroyOnLoad(this.gameObject); } el..
Unity에서 코루틴을 실행하려면 MonoBehaviour 컴포넌트가 있어야 하지만 SoundManager는 MonoBehaviour를 상속받지 않는 정적 메서드를 사용하는 싱글톤 패턴을 구현한 클래스이다. private 생성자를 통해 외부에서 인스턴스를 생성하지 못하도록 제한한다. 싱글톤 패턴의 핵심인 "클래스의 인스턴스가 하나만 존재해야 한다'는 것을 보장하는 것이다.private 생성자를 사용하면 외부 코드에서 new SoundManager()와 같이 새 인스턴스를 생성하는 것을 방지할 수 있다.static 생성자는 클래스가 처음 로드 될 때 단 한 번만 실행된다.이를 통해 SoundManager.Instance가 초기화되며, 멀티 스레드 환경에서도 안전하게 인스턴스를 생성할 수 있다.public ..
인게임/아웃게임 사운드를 찾아서 사운드 매니저를 구성하였다. 사운드 매니저는 이분의 블로그를 참고하였다.https://ansohxxn.github.io/unity%20lesson%202/ch9-1/ Audio Source 컴포넌트 -> 소리 발생 근원지, MP3 PlayerAudio Clip -> 어떤 소리를 재생할 지, MP3 음원Audio Listner -> 듣는 사람, 귀 (Main Camera에 기본적으로 달려있는 컴포넌트) 소리를 발생시킬 오브젝트들에게 Audio Source 컴포넌트를 붙여주고, 이 컴포넌트의 Audio Clip에 원하는 음원을 할당하면 된다. 사운드 매니저를 사용하는 이유는 게임오브젝트가 비활성화 혹은 파괴되면 오브젝트에 붙어있는 Audio Source가 재생하던 소리들까지..