Unity3D 8

[Unity] AudioSettings.dspTime 이란?

유니티로 음악이 관련된 콘텐츠를 만드는 것을 좋아하다보니, AudioSettings.dspTime이란 것을 자주 만나 볼 수 있었다. 그냥 구글링하면 사운드 관련된 정확도를 위해 사용하는 값이라고 대충만 알고 있다가, 정확히 무엇인지 알아봐야겠다는 생각이 들어서 찾아보게 되었다. DSP 란 Digital Signaling Processing 의 약자인데, 그렇다면 DSP Time 이란 디지털 신호 관련된 처리 시간이라고 유추해볼 수 있었다. 유니티에서 사용되는 dspTime은 오디오 시스템에서 처리된 실제 오디오 샘플 수에 기반하여 반환되는 double 값의 시간이라고 한다. 오디오 관련된 로직을 처리할 땐, 흔히 쓰는 Time.time의 float 값보다 더 정확하다. 그리고 dspTime은 Frame..

Unity & C# 2023.03.24

[유니티] sprite atlas로 draw call을 줄여보자

sprite atlas 로 sprite들을 하나의 텍스쳐로 합쳐서 최적화를 할 수 있다. 유니티 패키지에서 2d sprite를 다운받아서 UI 이미지로 쓰이는 각각의 이미지들을 한 sprite atlas로 합쳐보았다. 최근에 작업한 토이 프로젝트 Dancing Finger 에서 sprite atlas를 사용해보았고, draw call 이 줄어드는 것을 확인 할 수 있었다. 먼저 sprite atlas 를 사용하기 위해선 유니티 패키지에서 2d sprite를 다운 받는다. 그 다음에 Project Setting > Editor > Sprite Packer Mode에서 "Sprite Atlas V1 - Always Enabled" 로 바꾼다. 비교를 하기 위해 Sprite Atlas를 사용하기 전의 Draw..

Unity & C# 2022.07.24

[유니티] 스크립트 아이콘 변경

가끔 유니티 에셋스토어에서 에셋을 다운받았을 때 그 에셋에 들어있는 스크립트들의 아이콘이 다른 걸 본 적있다. 유니티에서 스크립트를 생성하면 기본 아이콘 모양은 흰색 종이에 "#' 이 초록책으로 적혀져있는데, 나도 아이콘을 바꿔보고 싶었다. 방법은 너무 간단했다. 스크립트를 클릭하고 Insepctor에 아이콘 모양을 클릭하고 "Other" 를 선택해서 원하는 Sprite를 선택하면 아이콘을 바꿀 수 있다. 아래 사진는 최근에 작업한 오픈소스 토이프로젝트 Dancing Finger에 들어간 스크립트들의 아이콘을 바꾼 모습이다. (Dancing Fingers). Project View 와 Inspector view에서 스크립트들의 아이콘들이 lefthanddeveloper logo(파란색 손) 모양으로 바뀌..

Unity & C# 2022.07.24

Dancing Fingers

특별한 이유없이 그저 재미로만 토이 프로젝트를 만들고, 이거를 오픈소스로 공유해서 사람들과 나누는 것도 재밌겠다는 생각에 시작한 첫 프로젝트, Dancing Fingers. nuget package "CSCore"를 사용하여 PC의 audio을 분석한 데이터를 가져와 손가락 움직임으로 비쥬얼라이징하였다. 각 손가락 마다 각 Frequency를 지정해줄 수 있게 하였고, 그 Frequency에 맞춰서 손가락이 펼쳐진다. 손가락은 unity asset store에서 무료로 판매중인 stylized simple hand를 사용했다. 약간 병맛 컨셉에서 재미를 주고 싶었는데, 그 의도는 조금 이룬 것 같기도 하다? 손가락이 각각 꿀렁꿀렁(?) 움직이니 뭔가 오묘하면서도 재밌으면서도 기괴하면서도.... 음악과 함..

Playground 2022.07.22

[유니티] Unity Profiler 사용하기

게임 최적화에 얼마나 열정적이신가요? 그냥 게임 잘 돌아가기만하면 최적화는 별로 신경 쓸 필요 없다고 생각하시나요? 아니면 코드 한줄한줄 작성할때마다 어떻게 해야 성능이 좋아질까 계속 고민하면서 코드를 작성하시나요? 유니티에서는 게임 성능을 측정할 수 있는 유용한 도구 Profiler를 제공하고 있습니다. 간단하게 Unity Profiler를 어떻게 사용하면 되는지 알아보도록 하겠습니다 아래의 스크린샷에서 보여주듯이 Profiler창은 Window -> Analysis -> Profiler 로 가서 열 수 있습니다. (또는 간편하게 Ctrl + 7 단축키를 사용해서도 열 수 있습니다) Profiler창을 열면 다음과 같이 나옵니다 빨간색 표시가 되어있는 항목은 각각 끄고 켜서 Profiler가 동작할때 ..

Unity & C# 2022.07.05

[유니티] 왜 이제 알았을까 요놈 Animation Curve

최근 개발 중 쪼~~끔 수학 머리를 사용해서 수학 공식을 생각해서 특정 기능을 개발해야하는 순간이 있었는데 수학에 너무 약하기 때문에 고심하고 있을 때 지인 개발자께서 Animation Curve를 사용해보라는 제안을 하셨습니다. Animatin Curve는 존재 자체만 알고있었지 실제로 써본 적이 없었는데 이번에 써보면 너허어어어어무나 유용한 친구인 것을 깨닫게 되었습니다. 보통 수학 공식으로 결과값을 도출 해 내야 하는 경우에 Animation Curve를 쓰면 너무 유용할 것 같습니다. 아래 코드는 AnimationCurve를 사용해서 sphere의 움직임을 wave 처럼 움직이게 한 아주 심플한 예제 코드입니다. using UnityEngine; namespace AnimationCurvePrac..

Unity & C# 2021.12.16

[유니티 C#] Json 저장 & 불러오기 너무 쉽게 구현하기

처음 유니티를 배우기 시작했을때 저장을 구현해야하는 순간이 찾아오면 어떻게 구현해야하는지 찾아보지도 않은채, 그저 '너무 어려울꺼같다' '지금 실력으로는 구현하기 힘들겠지?' 라고 무턱 겁부터 먹었던 기억이 있습니다. 그런데 지금 와서 생각해보면 왜 그렇게 겁을 냈을까? 라고 생각이 들고 왜 구현하려고 시도조차 하려고 하지 않았을까 후회가 되는 거같네요. 알고 보면 별거 아니고, 정말 쉽게 구현할 수 있는데 말이죠. 저장을 할 때 저장파일 포맷으로 여러가지가 있는데 오늘은 Json 파일로 저장하는 방법에 대해서 알아보도록 하겠습니다. Json 형태로 저장하는게 어렵지는 않을까? 생각할 수도있는데 전혀 그렇지 않습니다. 너무 쉬워서 예전에 겁먹었던 것이 허무할 정도이죠... JsonUtility이라고 하는..

Unity & C# 2021.11.12