게임 개발(25)
-
[ 개발 일기 ] Post Processing 내부 값 코드로 바꾸는 방법
기본적인 Weight 같은 값은 그냥 변경할 수 있다. 하지만 안에 있는 효과들의 값은 바로 변경할 수가 없는데 이럴 때는 TryGet을 사용해주면 된다.Volume.profile.TryGet(out value);를 해주면 해당 클래스를 가져와 클래스 내부 값을 코드에서 변경할 수 있다.
2024.06.13 -
[ 개발 일기 ] Screen Space - Camera UI에 PP가 적용되지 않도록 하는 방법
네모 오브젝트가 UI이고, 흐림 효과와 어두워지는 효과가 안 적용되는 모습이다. 졸업 작품을 진행하면서 PP 색 변경 효과를 넣었는데 UI까지 색이 변경되어서 해결하기 위한 방법을 찾던 도중 배운 내용이다.일단 두 가지 방법이 있다. 1. Canvas를 Screen Space - Overlay로 변경한다.가장 간단한 방법이다.하지만 UI에 쉐이더가 들어가있을 경우 Screen Space - Camera로 해야되는 경우가 발생한다. 2. 두 개의 카메라를 사용한다. 1. 기본 카메라의 복사본을 만들고 이를 UICam으로 이름을 변경합니다.2. UI 카메라에서 모든 스크립트와 오디오 리스너를 제거합니다. 3. UI 카메라에서 포스트 프로세싱을 선택 취소합니다. 4. UI 카메라를 기본 카메라의 하위로 설정하..
2024.06.12 -
[ 개발 일기 ] FSM은 어렵다
근데 구조를 짜고 에디터를 짜서 Unity Graph view를 사용해 FSM을 사용하기 편하게 만드는 것은 어렵다.Unity Graph View에 대해서는 찾아봐도 자료가 잘 안 나온다. 사실 자료는 나오긴 하는데 Unity 공식 문서거나, 2019년도 자료가 대부분이다. 유튜브 동영상을 하나 찾긴 했는데 코드로 설명하면 알아듣겠으나 영상에 대부분이 말로만 설명해 조금 더 찾아봐야할 것 같다. 그래도 프로젝트는 진행해야되니 일단은 Enum 형태로 디자인했다.using System.Collections;using System.Collections.Generic;using UnityEditorInternal;using UnityEngine;public enum TempFSMDesignAIState{ ..
2024.05.29 -
[ 개발 일기 ] FSM 디자인 고민중..
현재 FSM 디자인을 고민 중이다.Chicken Fly에서 Boss AI를 짤 때 사용할 겸 제작해보고 있는데 뭔가 마음에 들지 않는다.. 일단 원래 짜려고 했던 건 Root AI 오브젝트 아래에 여러 State가 있고, Editor를 활용해 Transition과 조건들을 설정할 수 있게 제작하려고 했다. 그런데 FSM_State를 상속한다고 Editor가 상속되지는 않아서 실패했다. 그래서 일단 오브젝트 밑에 자식으로 오브젝트를 생성해 AI가 실행되도록 해놨는데, 뭔가 오브젝트 밑에 여러 오브젝트가 들어가 한 눈에 잘 보이지가 않는다.( 나중에 버그 나면 쉽게 못 찾을 것 같다. ) 다른 작품에서는 이렇게 AI_Controller를 상속하는 오브젝트를 만들어서 State 구조를 코드에서 제작했다.근..
2024.05.28 -
[ 개발 공부 ] Sprite Atlas의 장단점
Unity Sprite Atlas Sprite Atlas는 Unity 2D 제작 환경에서 여러 개의 텍스처를 단일 텍스처로 결합하는 에셋이다.이를 통해 드로우 콜을 줄인다. 예를 들어 개별 이미지 3개를 그려줄 때 드로우콜이 3번 실행되는데,개별 이미지 3개를 Sprite Atlas로 묶어주면 드로우콜이 1번 실행되도록 할 수 있다. 장점드로우 콜 실행 횟수가 적어져 최적화가 된다. 단점1. 메모리가 두 배가 된다.개별 이미지, 묶인 이미지가 둘 다 존재하기 때문에 메모리가 두 배가 된다. 2. 너무 많은 스프라이트를 하나의 아틀라스에 묶었을 경우, 하나의 오브젝트를 그릴 때 가져오는 텍스처를 한 번에 로드할 때 메모리 문제가 생겨서 오히려 성능이 떨어질 수 있다.스프라이트 아틀라스를 여러 개로 분할해 ..
2024.05.24 -
[ 개발 공부 ] 객체지향의 4대 특징
객체지향, OOP의 4대 특징추상화, 상속, 다형성, 캡슐화 1) 추상화어떤 대상/집단의 공통적이고 본질적인 특징을 추출하여 정의하는 것abstract class, interface가 활용된다. 예를 들어 트럭, 비행기, 스포츠카, 배가 있다고 한다면,모두 탈 수 있는 이동 수단이기 때문에 Riding이라는 추상 클래스를 만든다.Riding은 탑승을 실행하는 Ride함수와 이동 속도인 Speed값을 가지고 있다. 이 중에서도 트럭과 스포츠 카는 둘 다 바퀴를 가지고 있기에Car라는 추상 클래스를 만들어 바퀴 값을 추가로 가지게 한다. 이러한 과정을 추상화라고 보면 된다. 결과적으로 트럭, 스포츠 카는 Car를 상속받고, 비행기와 배는 Riding을 상속받는다. 2) 상속상위 개념을 하위 개념이 물려받는..
2024.05.22