일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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기
- c#
- TiL
- User Stack
- project3
- 전쟁-전투
- 이벤트 함수 실행 순서
- 크래프톤정글
- anonymous page
- Unity
- 다익스트라
- 핀토스
- 크래프톤 정글
- KRAFTON JUNGLE
- kraftonjungle
- 연결리스트
- 알고리즘
- 크래프톤정글4기
- 알고리즘수업-너비우선탐색2
- 백준
- C
- 크래프톤 정글 4기
- BFS
- 추상클래스와인터페이스
- 네트워크
- 유니티
- 파이썬
- pintos
- 티스토리챌린지
- 오블완
- Today
- Total
목록전체 글 (160)
말감로그
이벤트 주도적 프로그래밍을 통해 성능 향상을 얻을 수 있다!이벤트: 행동들 간에 중요한 관계를 맺고, 이러한 연결이나 결합을 이벤트라고 부르는데, 각각의 개별적인 연결은 하나의 이벤트가 된다. 이벤트 주도적 프로그래밍: 이벤트 주도적 프로그래밍은 게임 속 대부분의 사건들이 이벤트의 예라는 것을 알고서 일반적인 개념으로 이해하는 것으로부터 시작된다.즉, 이벤트의 개념은 정해진 시간에 일어나는 것뿐만 아니라 특정 시간에 발생하는 특정 이벤트를 포함하는 것이다. Update와 이벤트: 게임 월드는 이벤트와 응답으로 조직된 온전한 시스템이라고 할 수 있다.이런 식의 월드에서 Update 함수가 매 프레임 동작을 진행하는 방식에 의존하는 대신 이벤트를 사용하는 것이 성능을 향상시키는 데에 어떤 도움을 주는지 의문..
이번 장은 유니티 스크립트를 능수능란하게 다루려면 씬과 오브젝트, 오브젝트 간의 통신이 어떻게 일어나는지에 대한 구조를 이해하는 것이 중요하다! 가 포인트이다. 어떻게 오브젝트 간에 통신이 이뤄지고 오브젝트를 만들고 이것이 옮겨질 때 데이터를 유지하도록 만들어주는 정적멤버와 싱글턴 등의 대해서도 알아보자.게임 오브젝트기본적인 단위나 씬 안의 개체 등 여러 가지 의미를 가진다.컴포넌트는 기본적으로 MonoBehaviour에서 파생한 클래스로서 씬 안의 게임 오브젝트에 붙어 동작을 변화시킬 수 있다. 컴포넌트 상호작용 - GetComponent데이터 형식을 알고 있는 특정한 컴포넌트 하나에 직접 접근할 때 사용.게임오브젝트에 붙여진 컴포넌트 중 일치하는 첫번째 컴포넌트에 접근하도록 해준다.Transform ..
컴퓨터 과학자인 에츠허르 데이크스트라는 "프로그램 테스트를 통해 버그의 존재를 증명할 수는 있지만, 버그가 없음을 증명할 수는 없다" 라고 말했다.디버깅은 스크립트를 작성할 때 중요한 부분이고, 디버깅 없이 오류를 추적하고 고치는 방법은 없다.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..