분류 전체보기
-
17장 좀비 서바이버 : 최종 완성과 포스트 프로세싱Unity/레트로의 유니티 게임 프로그래밍 에센스 2021. 5. 20. 18:05
17.1 HUD Canvas와 UI 매니저 17.1.1 HUD Canvas 추가 17.1.2 UIManager 스크립트 17.1.3 싱글턴 프로퍼티 17.1.4 UIManager의 필드 17.1.5 갱신 메서드들 17.1.6 게임 재시작 메서드 17.1.7 재시작 버튼 설정 17.2 게임 매니저 17.2.1 싱글턴 프로퍼티 17.2.2 GameManager의 필드 17.2.3 Awake() 17.2.4 Start() 17.2.5 AddScore() 17.2.6 EndGame() 17.3 적 생성기 17.4 아이템 생성 17.5 포스트 프로세싱 17.5.1 포스트 프로세싱 스택 - 포스트 프로세싱 : 후처리. - 게임 화면이 최종 출력되기 전에 카메라의 이미지 버퍼에 삽입하는 추가 처리. 17.5.2 렌더..
-
티스토리 Latex 문법. \sum 아래첨자 위치, 모양.기타(공개) 2021. 4. 23. 17:47
이렇게 하면 1. $ 로 감싼 건 $q_{\pi}(s,a) = r^a_s + \gamma \sum_{s' \in S} { P^a_{ss'} \sum_{a' \in A}{\pi(a'|s')q_{\pi}(s',a')} } $ 1-1. $로 감싼 경우 \sum 아래 첨자 아래로 보내기 $ \begin{align} q\_{\pi}(s,a) = r^a\_s + \gamma \sum\_{s' \in S} { P^a\_{ss'} \sum\_{a' \in A}{\pi(a'|s')q\_{\pi}(s',a')} } \end{align} $ $ \begin{align} q_{\pi}(s,a) = r^a_s + \gamma \sum_{s' \in S} { P^a_{ss'} \sum_{a' \in A}{\pi(a'|s')q_{..
-
16장 좀비 서바이버 : 생명과 좀비 AIUnity/레트로의 유니티 게임 프로그래밍 에센스 2021. 2. 17. 23:46
16.1 다형성 16.1.1 상속 관계에서 다형성 16.1.2 다형성을 사용한 패턴 16.1.3 오버라이드 - virtual 키워드로 지정된 메서드는 가상 메서드가 됨. 가상 메서드는 자식 클래스가 오버라이드할 수 있도록 허용된 메서드. 기존의 부모 타입으로 변환하고 메서드를 실행해도 자식 타입에서 재정의한 메서드가 실행됨. - base : 부모 클래스를 지칭. 16.2 LivingEntity 16.2.1 LivingEntity 전체 스크립트 16.2.2 LivingEntity의 필드 - protected 접근 한정자 : 클래스 외부에서는 접근 불가능하지만 자식 클래스에서는 접근 가능. 즉, 해당 클래스를 상속하면 변경가능. - private는 상속을 해도 접근 불가. 16.2.3 Action - Act..
-
15장 좀비 서바이버 : 총과 슈터Unity/레트로의 유니티 게임 프로그래밍 에센스 2021. 2. 13. 01:47
15.1 인터페이스 15.1.1 C# 인터페이스 - 인터페이스를 상속하는 클래스는 해당 인터페이스의 메서드를 public으로 반드시 구현해야함. - 인터페이스의 메서드는 선언만 존재하고 구현이 없음. 형태만 결정(선언만 함). 15.1.2 느슨한 커플링 (loose coupling) - 어떤 코드가 특정 클래스의 구현에 결합되지 않아 유연하게 변경 가능한 상태. - 인터페이스처럼 특정 메서드의 행위는 신경쓰지 않고, 해당 메서드가 구현되어 있어서 사용할 수 있는지만 신경씀. 15.1.3 IDamageable - 공격 당할 수 있는 모든 대상이 상속하도록... 15.2 총 게임 오브젝트 준비 15.2.1 Gun 게임 오브젝트 준비하기 - 탄알 궤적. Add Component > Effects > Line ..
-
14장. 좀비 서바이버 : 레벨 아트와 플레이어 준비Unity/레트로의 유니티 게임 프로그래밍 에센스 2021. 2. 12. 10:05
- 다루는 내용 14.1 프로젝트 구성 14.2 레벨 아트와 라이팅 설정 14.2.1 레벨 아트 추가하기 14.2.2 라이트맵 - 라이팅은 연산 부담이 큼. 라이팅 데이터 에셋(Lighting Data Asset)을 사용해서 씬의 변화가 감지될 때마다 매번 새로운 라이팅 데이터 에셋을 생성. - 라이트맵 : 오브젝트가 빛을 받았을 때 어떻게 보일지를 미리 그려둔 텍스쳐 - 라이트맵을 생성 -> 라이트맵을 굽는다 14.2.3 라이팅 설정하기 14.2.4 글로벌 일루미네이션 - 글로벌 일루미네이션(Global Illumination)은 물체 표면에서 직접 들어오는 빛뿐만 아니라 다른 물체의 표면에서 반사되어 들어온 간접광까지 표현 - 실시간 글로벌 일루미네이션 : 라이트맵을 여러 방향에 대해 생성. 여러 경..
-
04장. 강화학습 기초 3: 그리드월드와 큐러닝 // 미완Machine Learning/파이썬과 케라스로 배우는 강화학습 2020. 12. 13. 14:10
- 강화학습과 다이내믹 프로그래밍의 차이는 강화학습은 환경의 모델을 몰라도 환경과의 상호작용을 통해 퇴적 정책을 학습한다는 것. - 예측 : 에이전트는 환경과의 상호작용을 통해 주어진 정책에 대한 가치함수를 학습하는 것. 몬테카를로 예측, 시간차 예측 - 제어 : 가치함수를 토대로 정책을 끊임없이 발전시켜 나가서 최적 정책을 학습하려는 것. 시간차 제어 - 살사, 오프폴리시 제어 - 큐러닝 1. 강화학습과 정책 평가 1: 몬테카를로 예측 1.1 사람의 학습 방법과 강화학습의 학습 방법 - 강화학습은 환경의 모델 없이 환경이라는 시스템의 입력과 출력 사이의 관계를 학습. ㄱ. 일단 해보고 ㄴ. 자신을 평가하며 ㄷ. 평가한 대로 자신을 업데이트 ㄹ. 반복 1.2 강화학습의 예측과 제어 - 다이내믹 프로그래밍..
-
13장. 유니런 : 발판 반복 생성과 게임 완성Unity/레트로의 유니티 게임 프로그래밍 에센스 2020. 11. 18. 15:20
13.1 발판 만들기 13.1.1 Platform 스크립트 13.1.2 Platform의 OnEnable() 메서드 - OnEnable() 메서드는 Awake()나 Start() 같은 유니티 이벤트 메서드 - Start() 메서드처럼 컴포넌트가 활성화될 때 자동으로 한 번 실행됨. 처음 한 번만 실행되는 Start() 와 달리 스크립트 컴포넌트가 활성화 될 때마다 실행됨 => 스크립트 컴포넌트를 끄고 켜는 방식으로 재실행할 수 있음. 또는 게임 오브젝트를 활성화/비활성화로도 가능 - Random.Range(0, 3) : 0, 1, 2 중에서 한 숫자를 랜덤으로 변환. 13.1.3 Platform의 OnCollisionEnter2D() 메서드 13.1.4 Platform 스크립트의 전체 코드 13.1.5 ..
-
12장. 유니런 배경 스크롤링과 게임 매니저Unity/레트로의 유니티 게임 프로그래밍 에센스 2020. 11. 17. 18:08
12.1 배경 추가하기 12.1.1 정렬 레이어 - 스프라이트 렌더러 컴포넌트가 그리는 그래픽의 앞뒤 정렬은 트랜스폼 컴포넌트의 위치값과 상관없음 => z축이 필요한데 2D에서는 z축 값이 무의미하게 취급되기 때문.. - 2D 게임 오브젝트가 그려지는 순서는 스프라이트 렌더러의 정렬 레이어가 결정. - 레이어 목록에서 가장 아래쪽 정렬 레이어가 가장 앞쪽에 그려짐. => 배경은 가장 위쪽 캐릭터는 가장 아래쪽. 12.2 움직이는 배경과 발판 12.2.1 ScrollingObject 12.2.2 반복되는 배경 만들기 - Box Collider 2D 컴포넌트는 2D 스프라이트 게임 오브젝트에 추가되면 자동으로 그 크기에 맞춰짐. - Awake() : Start() 메서드처럼 초기 1회 자동 실행되는 유니티 ..