목록전체 글 (382)
Priv's Blog
Level up your code with game programming patterns A guide written by programmers, for programmers, that demonstrates how to leverage design best practices resources.unity.com 1. 오브젝트 풀 오브젝트 풀링(Object pooling)은 수많은 게임 오브젝트를 생성 및 파괴할 때 CPU 자원 소모를 최적화하기 위한 기술입니다. 오브젝트 풀 패턴은 비활성화된 “풀(pool)” 안에서 준비되어 대기 중인 초기화된 오브젝트들의 묶음을 사용하는 패턴입니다. 오브젝트가 필요할 때, 여러분의 애플리케이션은 해당 오브젝트를 인스턴스화하지 않습니다. 그 대신, 여러분은 풀 안에 있는..
Level up your code with game programming patterns A guide written by programmers, for programmers, that demonstrates how to leverage design best practices resources.unity.com 1. 팩토리 패턴 때때로 다른 오브젝트들을 생성하기 위한 특수한 오브젝트를 만드는 것이 유용할 수 있습니다. 많은 게임이 게임이 플레이되는 동안 수많은 오브젝트를 생성(spawn)합니다. 또한 런타임 상에서 실제로 언제 어떤 오브젝트가 필요한지 모르는 일도 종종 발생합니다. 팩토리 패턴은 여러분이 예측하신 것처럼 필요에 따라 ‘공장(factory)’ 역할을 해주는 특별한 오브젝트를 디자인하는 디자..
Level up your code with game programming patterns A guide written by programmers, for programmers, that demonstrates how to leverage design best practices resources.unity.com 1. 게임 개발자를 위한 디자인 패턴 SOLID 원칙에 대해 이해하셨다면, 이제 디자인 패턴에 대해 좀 더 깊게 파 보고 싶으실 겁니다. 디자인 패턴은 소프트웨어를 개발하면서 매일 같이 발생하는 문제들을 보편적인 해결책들을 통해 효과적으로 해결할 수 있게 해줍니다. 그러나 디자인 패턴은 규격화된 라이브러리 또는 프레임워크가 아닙니다. 특정 결과를 달성하기 위한 단계들을 묶어둔 알고리즘 또한 아니죠..
Level up your code with game programming patterns A guide written by programmers, for programmers, that demonstrates how to leverage design best practices resources.unity.com 1. SOLID 원칙 디자인 패턴을 본격적으로 다루기 전에, 디자인 패턴의 동작에 영향을 미치는 몇 가지 디자인 원칙들을 살펴봅시다. SOLID는 아래의 소프트웨어 디자인의 다섯 가지 핵심 기본 요소들의 앞 글자를 딴 두문자어입니다: - 단일 책임 원칙 - 개방-폐쇄 원칙 - 리스코프 치환 원칙 - 인터페이스 분리 원칙 - 의존관계 역전 원칙 이제 각각의 개념들을 검사하고 어떻게 여러분의 코드를 ..
Level up your code with game programming patterns A guide written by programmers, for programmers, that demonstrates how to leverage design best practices resources.unity.com 1. 디자인 패턴을 소개합니다. 여러분이 Unity에서 작업하실 때, 굳이 바퀴를 새로 발명할 필요는 없습니다. 이미 다른 분들이 여러분을 위해 발명을 해두었기 때문이죠. 여러분이 마주하는 모든 소프트웨어 디자인 문제는 수천 명이 넘는 개발자들도 이미 겪어본 문제입니다. 그렇기 때문에 여러분들이 문제를 마주할 때마다 조언을 얻고자 매번 그분들에게 질문을 남기는 것 대신, 디자인 패턴들을 통해 그분..
1. Pyinstaller Python은 인터프리터(Interpreter)를 사용하는 대표적인 언어입니다. 즉, 컴파일러(Compiler)를 사용하는 언어와 달리, 소스 코드 파일을 한꺼번에 전부 번역을 해둔 뒤에 실행하는 것이 아니라 소스 코드를 실행하면 실시간으로 번역하는 방식입니다. 이러한 인터프리터 방식은 컴파일 방식보다 개발 속도가 빨라져서 이점도 많지만, 그렇다고 항상 좋은 것만은 아닙니다. 당연하겠지만 Python은 다른 언어와 달리 '컴파일'이라는 개념이 없습니다. 즉, '바로 실행할 수 있도록 소스 코드를 미리 번역해 둔 결과물'이라는 개념이 없습니다. IDE에서 코드를 다 짰으면 Python을 설치하지 않은 환경에서도 프로그램을 실행할 수 있도록 만들어 배포해야 하는데, 여기서 좀 난감..
1. 개요 Python은 반복, 리스트, 문자열 등 프로그래밍을 하면서 정말 자주 마주하게 되는 매우 귀찮은(?) 상황들에 대해 정말 친절한 언어 중 하나입니다. Python에는 이터러블 객체(Iterable Object)라는 개념이 존재하며, 이는 말 그대로 '반복'이 가능한 객체입니다. map( ) 메서드는 이러한 이터러블 객체를 매개변수로 받아 데이터를 가공할 수 있습니다. 2. map( ) 백준 사이트에서 알고리즘 문제를 Python으로 풀다 보면 map( )을 굉장히 자주 사용하게 됩니다. 25305번, 커트라인 문제를 보면 다음과 같습니다. 예제 입력 부분을 보면 한 줄에 여러 개의 숫자를 입력하고, 이 값들을 배열에 저장한 뒤 값을 출력해야 합니다. 100 76 85 93 98이라는 총 5개..
출처 Toggle Button State On/Off - Unity Answers answers.unity.com 1. Toggle은 클릭될 때마다 isOn 변수 값을 바꿉니다. 위 사진은 클릭된 Toggle의 Inspector 창을 찍은 것입니다. 보시다시피 isOn 변수에 true 값이 들어가 있죠. Unity에서 사용하는 Toggle 오브젝트들은 위 사진처럼 클릭이 감지되면 Toggle 컴포넌트의 isOn 변수의 값을 바꿔서 기록합니다. 2. 코드 상에서 isOn 변수 값을 직접 바꾸는 건 위험합니다. 스크립트 상에서도 위의 isOn 변수의 값을 아래와 같이 직접 변경할 수 있습니다. [SerializeField] private Toggle screenSizeNative; screenSizeNati..