본문 바로가기

분류 전체보기

(82)
23.09.22 게임개발숙련 개인과제 해설 염예찬 튜터님 녹화하신 개인과제 해설 영상을 봤는데 팝업 캔버스와 UI 캔버스를 분리해서 구성하셨다. 선발대 강의에서도 그렇고 팝업을 따로 해놓는게 좋은 것 같아서 앞으로는 그렇게 해야겠다고 생각했다.
23.09.21 Unity : Pop Up 기능 오늘 선발대 세션이 있었는데 UI 프로그래밍에 대해 다뤘다. 그 중에서 팝업창을 띄우는 것에 대한 내용이 가장 중요하게 들렸다. 아래는 팝업과 관련된 기능이 있는 UIManager 클래스의 코드이다. 세션에서 보여주신 코드에는 더 많은 내용이 있었는데 그 중에 간단한 부분만 정리해서 올려주셨다. using System.Collections.Generic; using UnityEngine; ​ public class UIManager : MonoBehaviour { ​ private static UIManager _singleton = new UIManager(); public static UIManager Get() { return _singleton; } public s..
23.09.20 오늘은 과제2에 사용할 에셋을 찾았다. 무료 에셋중에서 찾았는데 에셋들은 많았지만 마음에 드는 건 잘 보이지 않았다. Unity : Add package from git Url Unity의 Packge Manager에서는 다른 사람이 만들어 놓은 에셋이나 기능을 가져와서 사용할 수 있다. 모서리가 둥근 사각형을 사용하기 위해서 구글링을 통해서 살펴 보던 도중 아래에 있는 깃허브 레포지토리를 찾아냈다. Unity-UI-Rounded-Corners These components and shaders allow you to add rounded corners to UI elements!? https://github.com/ 해당 레포지토리에 있는 README를 살펴보면 Unity에 적용하는 방법이 자세히 적혀..
23.09.19 Git Error : Filename too long error: unable to create file [long long file name]: Filename too long git add 를 하는 중에 다음과 같은 에러가 나왔다면 윈도우 파일 이름의 제한(255자) 때문이다. Git Bash에서 아래의 명령어를 입력해서 환경 설정을 변경할 수 있다. git config --system core.longpaths true 그러나 위의 명령어를 실행하면 권한이 부족하다고 나오기 때문에, Git Bash를 관리자 권한으로 실행해서 설정을 변경해 주어야 한다.
23.09.15 ## Unity Education Day Unity Education Day 2023를 맞이하여 Youtube Live를 통해서 앞으로 Unity의 방향성과 이번에 새로 바뀌게 될 요금 정책에 대해서 들었다. AI를 이용하여 새로운 시각과 창의력이 있다면 누구나 게임개발을 하기 쉽게 변하고 신규 개발자 들에게는 요금 부담이 심하지 않게 요금 정책이 바뀌였다고 설명하였느데, 정확한건 내년에 적용이 어떻게 될지에 따라서 다를 것 같다.
23.09.14 팀 프로젝트 오늘은 팀 프로젝트 마무리하는 날이여서 오전에는 UI를 깔끔하게 하거나 미처 완료하지 못한 기능을 완성하는데 집중했다. 그 후 다른 팀들의 프로젝트 발표를 듣고 회고를 진행하였다. Unity : Invoke와 Coroutine의 차이 🌐 코루틴 Coroutine은 함께, 같이, 서로를 의미하는 접두사 Co와 routine의 합성어로 여러개의 루틴을 동시에 실행하게 해주며 멀티 쓰레드가 아닌 Unity에서 멀티쓰레드처럼 병렬구조를 만드는 기능입니다. Coroutine을 사용할 때는 항상 yield return을 해주어야 하는데, 이를 통해서 현재 위치를 기억하고 다른 루틴에게 수행권한을 넘겨주고 다시 와서 처리하는 방식이다. 멀티 쓰레드 같지만 단일 쓰레드이기 때문에 Race Condition..
23.09.13 팀 프로젝트 아이템 기능을 맡은 팀원이 도와달라고 해서 그 부분을 도와줬다. 아이템을 플레이어에게 적용하는 부분과 몬스터를 죽였을 때 아이템이 확률적으로 드랍되는 시스템을 ScriptableObject를 사용하여 만들었다. Unity : ScriptableObject 아래가 아이템 드랍에 관련되 ScriptableObject이다. [CreateAssetMenu]는 커스텀 에셋을 생성하는데 도움을 주는 속성이다. Items라는 Serializable 필드를 생성하여서 Unity Inspector에서 쉽게 아이템과 드랍확률을 설정할 수 있게 하였고 모든 아이템의 가중치를 합해서 0 ~ 가중치의 합까지 랜덤한 값을 뽑아 확률에 맞게 아이템을 주어진 위치에 생성하는 기능을 가지고 있다. using System...
23.09.12 팀 프로젝트 오늘은 SoundManager를 만들어서 BGM을 넣었다. Unity : SoundManager using System.Collections; using System.Collections.Generic; using UnityEngine; [RequireComponent(typeof(AudioSource))] public class SoundManager : MonoBehaviour { public static SoundManager I; [SerializeField] AudioClip BGMClip; // 오디오 소스들 지정. [SerializeField] AudioClip[] audioClip; // 오디오 소스들 지정. Dictionary audioClipsDic; AudioSource ..
23.09.11 팀 프로젝트 프로젝트에서 특수기능을 담당해서 2가지 기능을 만들었다. 대쉬 기능과 불릿타임 기능을 만들었는데, 대쉬 기능을 짧은 시간동안 이동속도를 빠르게 설정하는 것으로 만들었고, 불릿타임 기능을 Unity의 Time.timeScale을 변경하는 것으로 만들었다. Unity : Time.timeScale Unity API를 보면 timeScale을 시간이 흐르는 척도라고 설명한다. Time.timeScale = 1은 현실시간과 같게 시간이 흐르는 것이면 Time.timeScale = 0은 시간이 정지한 것과 같다. Time.timeScale이 낮을수록 시간이 느리게 흐르는것과 같으므로 불릿타임을 만들때 Time.timeScale을 지정한 값으로 변경하면 시간이 느리게 흐른다. 단, 이때 Time.del..
23.09.07 UI 유니티 UI에 관해서 공부를 했는데 개인과제를 할 때 쓴 UI는 Rect Transform에서 좌표를 고정해서 쓰는거 였는데 이번에 새로 배운건 middle/center 라고 쓰여진 사각형을 클릭하면 아래과 같은 이미지가 나온다. 그 중에 가장 외각에 있는 stretch를 사용하면 UI를 화면에 맞출수 있다. 이렇게 하면 해상도를 변경하였을 때도 맞춰서 조정된다.