+ 이 글은 작성자가 직접 공부하고 복습하며 작성한 글입니다. 만약 직접 작성하지 않았다면, 꼭 출처를 밝히겠습니다!

 + 이 글은 개인적인 공부를 바탕으로 작성되었기에, 틀린 부분이 있을 수 있으며, 틀린 부분이 있다면 알려주시면 감사하겠습니다!

 + 이 글을 다른 곳으로 가져가신다면, 꼭 출처를 남겨주세요~

 + '참고사이트'는 공부하기 위해 참고한 사이트들을 모아 둔 것입니다.

 + 혹시라도 문제가 된다면 바로 조취를 취할테니, 말해주시면 감사하겠습니다!


 + Unity의 UI와 관련해서 글을 작성할 때는, NGUI가 아닌 UGUI로 글을 작성하려고합니다. 그 이유는 Unity 최근 버전(필자기준 : 2017.3.1f1)에서는 NGUIFree 버전이 호환되지 않기 때문입니다.


 + 아마 Unity가 버전 업되면서 Script문법도 같이 수정된 것 같은데요, 그것 때문에 NGUI Free 버전을 사용하게되면 Script오류가 발생해 실행할 수가 없습니다. 그렇기에 Unity 자체 기능인 UGUI를 이용하여 UI관련 글을 작성할 예정입니다.


 + 그리고 실제 NGUI를 만드신 분이 실제 UGUI개발에 참여하기도 하셨다고하니, UGUI에서도 NGUI와 비슷하게 사용할 수 있을거라 생각합니다!


 + 참고로, NGUI를 유료로 구매하시는 분들은, 최근까지 Update되었으니, NGUI를 사용하시면 편리하실겁니다!!(현재 기준 : NGUI 3.11.4 - Jun.5.2017)


 P.S.물론 돈을 주고 사게되면, 최근 버전의 Unity에서도 사용할 수 있겠지만서도... 저는 아직 일정 수익이 없는 취준생이다보니, 조금 부담스럽습니다.ㅠㅠ




** 참고사이트 **

 - http://www.tasharen.com/forum/index.php?topic=11.105 (개발자 블로그)


Copyright © -강정이좋아- 무단 전재 및 재배포는 하지 말아주세요.

 + 이 글은 작성자가 직접 공부하고 복습하며 작성한 글입니다. 만약 직접 작성하지 않았다면, 꼭 출처를 밝히겠습니다!

 + 이 글은 개인적인 공부를 바탕으로 작성되었기에, 틀린 부분이 있을 수 있으며, 틀린 부분이 있다면 알려주시면 감사하겠습니다!

 + 이 글을 다른 곳으로 가져가신다면, 꼭 출처를 남겨주세요~

 + '참고사이트'는 공부하기 위해 참고한 사이트들을 모아 둔 것입니다.

 + 혹시라도 문제가 된다면 바로 조취를 취할테니, 말해주시면 감사하겠습니다!


  Unity를 사용하면서, 화면 Zoom in&out을 위해 마우스 휠을 드래그합니다. 워낙 다른 툴에서도 비슷하게 사용되는 기능이라, 편하게 사용하고 있는 기능이지만, 가끔식, 아니 자주 해당 기능이 느려지는 것을 확인할 수 있습니다.


  왜 느려지는 지에 대해서는 구글링을 통해 검색을 해봤지만, 아직 정확한 이유를 알아차리지 못했습니다...


  아마... 어느 지점에 포커씽되어서, 근처로 가면 느려지고 벗어나면 빨라지는 그런것 같긴한데... 정확히는 모르겠습니다...


  그래도 대충 해결해야하니, 그 방법을 찾아봤습니다!


1) Alt + RB(우클릭)

 - 여러 Tool들은 같은 기능에 여러 실행명령을 가지고 있습니다. 이것도 그 중 하나로써, 마우스 드래그와 같은 기능을 가지고 있습니다!



2) Shift

 - Shift버튼을 누르고 마우스 휠을 드래그하면 기존보다 더 빠른 속도로 Zoom in&out 되는 것을 보실 수 있습니다!

 - Zoom in&out뿐만 아니라 다른 Edit View관련 기능도 더 빠른 속도(이동간격이 큰느낌???)로 동작하게 합니다!



3) Object 클릭 -> F

 - 이 기능은 Focusing으로 Zoom in&out과 관련은 없습니다. 

 - 하지만, Zoom을 조절하는 이유 중 대표적인 이유는 "특정 Object에 View를 이동해서 관찰하기 위해서"입니다. 

 - 그렇기에 해당 기능을 이용해, 한 번에 바로 Object에 View를 접근시키면 됩니다.




** 참고사이트 **

 - Nothing


Copyright © -강정이좋아- 무단 전재 및 재배포는 하지 말아주세요.

'요리 레시피 > Unity' 카테고리의 다른 글

[UGUI] Progress Bar - Slider  (0) 2018.04.06
[UGUI] NGUI -> UGUI  (0) 2018.04.06
[VSync] 프레임 유지 및 드랍의 Vsync 옵션  (0) 2018.03.28
[Unity] Transform 생성 관련  (0) 2018.03.24
[Unity] 특정 Object 찾는 법  (0) 2018.03.24

 + 이 글은 작성자가 직접 공부하고 복습하며 작성한 글입니다. 만약 직접 작성하지 않았다면, 꼭 출처를 밝히겠습니다!

 + 이 글은 개인적인 공부를 바탕으로 작성되었기에, 틀린 부분이 있을 수 있으며, 틀린 부분이 있다면 알려주시면 감사하겠습니다!

 + 이 글을 다른 곳으로 가져가신다면, 꼭 출처를 남겨주세요~

 + '참고사이트'는 공부하기 위해 참고한 사이트들을 모아 둔 것입니다.

 + 혹시라도 문제가 된다면 바로 조취를 취할테니, 말해주시면 감사하겠습니다!


  Unity Engine을 사용하다보면, 성능을 검사하기 위해 Profiler를 사용하게 됩니다. 특히 CPU Usage를 통해 최적화 부분을 고민하게 되는데요, 오늘은 제가 Profiler를 보며 최적화를 해보는 도중 알게된 VSync 옵션에 대해 정리해보겠습니다.


[ VSync ]

 + 일단 VSync는 'View SyncTime(SyncTime 보기)'의 줄인 말로써, CPU 작업과 GPU 작업간의 동기화를 시켜주는 옵션입니다.


 + 일반적으로 GPU 작업이 CPU 작업보다 10배정도 많습니다. 그래서 이 부분을 동기화해주기 위해, CPU에 'Wait For Target FPS(타겟 FPS 대기)'를 걸어 GPU의 작업이 완료될 때까지 기다리게 합니다.


 + 'Wait For Target FPS(타겟 FPS 대기)', 이 부분이 있기에 FPS는 60FPS 정도로 유지되는 것이며, 말 그대로 대기 시간이므로, 얼마나 프레임에 여유가 있는지를 나타내는 척도가 되기도 합니다.

               

- 사용 전 -                                                                - 사용 후 -



<Why>

 + 왜나햐면 비동기화로 인해 발생할 수 있는 "Tearing"현상을 없애기 위해서입니다.

          í…Œì–´ë§ì„ 시뮬레이션한 예. 확대된 부분에 그림의 변화가 분명히 보입니다.

[출처] Unity 공식 매뉴얼 : https://docs.unity3d.com/kr/current/Manual/class-QualitySettings.html


 + 위의 그림에서 보이는 현상이 Tearing인데, 이 현상이 발생하는 이유는 디스플레이가 Update되는 프레임과 Unity 프레임이 서로 따로 Update되기에 동기화가 되지 않을 수 있기 때문입니다. 디스플레이가 이전 프레임을 렌더링하는 동안, 새로운 Unity 프레임이 Update되서 일어나게 되는 것이죠.



<VBlank>

 + 디스플레이 디바이스는 주기적으로 업데이트됩니다. 그것은 하드웨어의 Clock과 비슷한데, 그 주기 사이에 업데이트 되지 않는 빈 공간을 VBlank라고 합니다.


 + 이 부분에 Unity 프레임을 Update함으로써, 디스플레이에 영향을 미치지 않도록 할 수 있습니다.


 + Unity뿐만 아니라, 다른 디스플레이를 사용하는 분야에서는 모두 사용되는 개념입니다.



<Usage>

 + Vsync기능은 생각보다 많은 분들이 선호하지는 않는 기능입니다.

1) 이 기능을 사용하게되면, 동기화를 위해 의도적인 프레임 드랍이 발생할 수 있습니다.  앞서 말했듯이, Vblank에 맞추기 위해 자체적으로 대기시간을 주게되어 120fps가 나올 수 있는 상황을 60fps로 만들어 버립니다. 많은 사람들이 60fps보다 더 높은 fps를 뽑아내는게 더 좋다고 여기기에, 잘 사용하지 않습니다.

2) Vsnyc를 사용했을 때, 원래 fps가 60이하이면, 30fps로 유지된다고 합니다. 아마 Vblank주기 때문에 절반으로 감소한 것 같습니다.



<Setting>

 + Unity -> Edit -> Project Setting -> Quality -> Other -> Vsync Count



 + Don't Sync : 동기화 하지 않음

 + Every V Blank : 매 V Blank와 동기화

 + Every Second V Blank : 매 2번째 V Blank와 동기화





Copyright © -강정이좋아- 무단 전재 및 재배포는 하지 말아주세요.

+ Recent posts