unity 4

캔버스 내 특정 UI만 위로 오게하고 싶다면...? (Canvas - Override Sorting)

위의 사진에서 PAUSE라는 글씨위에 X와 체크 표시가 위에 올라가서 보기 좋지 않은 모습이다. PAUSE라는 글씨는 여러 복잡한 이유로 캔버스를 이동시킬 수는 없는 상황이였고 이럴 때 쓸 수 있는 것이 Canvas의 Override Sorting이다. 가장 위에 올라와야하는 저 글씨 PauseTxt 에 찾아가 Canvas 컴포넌트를 달아준다. 그냥 달아주기만 하면 안되고 Override Sorting을 체크하고 Order in Layer를 높게 설정해주자 여기선 20정도로 설정해주었다. 다른 UI요소들은 Order in Layer가 0~10 사이였기에 가장 높게 준 것이다.  이렇게하면 의도대로 PAUSE 이팩트가 맨 위로 올라가게 된다. Override를 해서 사용하기 때문에 캔버스를 아예 하나 더 ..

유니티 2024.08.23

유니티 - 2 event systems 에러

보통 씬을 LoadScene 했을 때 additive로 불러왔을 때 맞이할 수 있는 에러이다. 말그대로 event system이 2개가 있다는 의미로  씬1과 씬2(additive할 씬)이 있다면  캔버스를 만들때 자동으로 생기는 event system이 씬1에도additive를 할 씬2에도 존재한다면 2개의 event system이 존재하게 된다. 고로 위와 같이 2 event systems 에러가 나는 것이다. 둘 중 한쪽의 event system을 제거해주면 된다.

유니티 2024.08.19

LoadSceneAsync 사용 시 유의점 (Awake와 Start 차이)

Awake와 Start는 Awake가 더 빨리 수행되는 생명주기라는 것은 잘 아는 사실일 것이다. 허나 먼저 수행된다는 것으로 큰 차이가 발생할 수도 있는 부분이 있는데 바로 다뤄보고자 하는 LoadSceneAsync 기능을 사용할 때이다. LoadSceneAsync 기능은 yield return이나 await를 사용하면 다음씬이 로드될 때까지 기다려줄 수 있는 기능이다. 그렇기 때문에 씬 전환되면서 초기화되는 과정이 노출되는 것을 방지를 해줄 수 있다. 그런데 왜 Awake와 Start를 유의해야하냐면 LoadSceneAsync 기능은 Awake까지만 대기를 해준다. 즉 Start까지는 기다려주지 않는 것이다. 이점을 유의하면서 코딩을 해야한다. 아래는 내가 실제로 겪은 문제 상황이다. 먼저 씬을 불러..

유니티 2024.08.14

유니티 아크탄젠트(Atan2)에 대하여

*해당 포스팅은 스파르타코딩클럽의 강의를 기반으로 작성했습니다* 먼저 아크탄젠트에 대해 알아보기 전에 삼각함수에 대해 알아볼 필요성이 있다.우리가 흔히 알고 있는 공식이다. 삼각함수는 각도를 통해 삼각형들의 변들 간의 비율을 알아낼 수 있는 함수이다. 여기서 우리가 주목해야할 것은 탄젠트이다. 탄젠트의 경우엔 밑변 분의 높이의 값을 가지고 있는데 밑변을 X 값, 높이를 Y 값으로 볼 수도 있다. 그렇게 본다면 탄젠트는 비율이 아닌 좌표로 나타낼 수 있게 된다. 각도를 통해 좌표를 알아낼 수 있다는 것이고 이를 역으로 생각해보면 좌표를 통해 각도 역시 알 수가 있게 된다. 이는 거꾸로 했다하여 탄젠트의 역함수인 arctangent 가 된다. 다시 말하자면 각도를 통해 비율을 구하는 것이 삼각함수이며 이를 ..

유니티 2024.05.13