목록Unity (11)
Game Tech Blog
Keyword : C# , Mono, IL2CPP, AOT, JIT C# 은 .Net(MS) FrameWork 를 기반으로, 작성된 언어로, .Net 안에서 돌아갑니다. 그러나, 우리는 Unity로 게임을 만들면서 PC,AOS,IOS 등등 다 돌릴 수 있습니다. 이런 .Net이 지원안되는 환경에서도 돌아갈 수 있도록하기위해, Unity에서는 Mono 라는 것을 사용합니다. 하지만, Mono는 IL(Intermidiate Langauge)을 Runtime에 Native 하게 바꿔주는 Just-In-Time(JIT)을 사용합니다. 아무래도 게임을 시작하기 전 모든 내용을 Binary로 바꿔주지 않고, 그때그때 사용하다보니 성능 문제를 일으키기 때문에, Unity는 AOT, Ahead-Of-Time 컴파일러인..
단위 벡터 - 단위 벡터는 방향을 가진 벡터로 크기가 1, - 정규화 : 임의의 벡터 -> 단위 벡터로 변경 3차원 벡터를 v 로 정의하고, $$ v = (x,y,z) $$ 벡터의 크기는 || v || 라고 표시할 때, $$ \left\| v \right\| = \sqrt{x^{2}+y^{2}+z^{2}} $$ 벡터의 크기를 정규화 하는 방법은 각 요소 / 세 요소 총합의 벡터 크기 이다. $$ v = \frac{u}{||u||} = (\frac{x }{||u||},\frac{y }{||u||},\frac{z }{||u||}) = (\frac{x }{\sqrt{x^2+y^2+z^2}},\frac{y }{\sqrt{x^2+y^2+z^2}},\frac{z }{\sqrt{x^2+y^2+z^2}}) $$ 만약 ..
Canvas ? Canvas 란, UGUI 에서 ui요소들을 그리기 위한 하나의 컨테이너이다. 이 것을 특별히 분할하여 사용해야하는 이유가 있는가? Canvas 는, 일반적으로 Main 하나를 두고 사용하는 경우가 있는데, 내부에서 동적으로 이동, Fill 등의 조그마한 움직임 처리, Canvas 내부에 마우스 포인터가 왔다갔다 하는 행위들이 일어날때, 하나의 Canvas 로 이루어진 UI의 경우 하위에 모든 오브젝트들을 다시 렌더링해야하는데 이는 ReBuild 된다라고 한다. 예전에, Scroll View 를 사용하면서, 제대로 배치 되지않아서 LayoutRebuilder.ForceRebuildLayoutImmediate(); 함수를 사용해서 다시 렌더링하거나, GameObject.SetActive(f..
Unity Addressable Asset System이란? - "주소" 별로 Asset을 로드하는 방식을 제공하는 시스템 - 비동기식 로딩을 사용하며, 모든 종속성 컬렉션이 있는 모든 위치에서의 로딩을 지원. - 기존 Asset Bundle 또는 리소스 폴더를 사용하든 관계없이 Addressable Asset 은 게임을 더욱 동적으로 만드는 간단한 방식을 제공. 기존에 잘 쓰던것도 있는데 왜 또 개발되었는가? - 기존에 잘 쓰던 방식은 리소스 폴더, 에셋 번들을 사용하는 방식이 있었다.다만, 각각의 치명적인 이유가 있어서 이 문제들을 해소하기 위하여, Addressable 이 개발된 것으로 보아도 무방하다. 1. 리소스 폴더 사용 방식 1) Apk 사이즈가 커진다. -> Resources 폴더 안에 들..
아이폰의 다이나믹 아일랜드 - 아이폰이 14로 들어선지는 조금됐지만, 들어서면서 다이나믹 아일랜드라는 것이 생겼다고 한다. 처음에는 참신한 아이디어라고 느꼈다. 문제점을 디자인으로 승화시킨것이라 생각했기 때문이다.. 하지만 이게 나한테 영향이 올줄은 몰랐지.... Interactive 한 반응형 UI를 만들어보았다. 내가 실습했던건 푸시 시스템 + 인터렉티브 UI 였지만, 현재는 시스템 하나도 안만들고 러프하게 애니메이션만 붙여서 포스팅할 생각이다.. 나중에 인디게임만들면서 필요하면 붙이던가해야지.. 아깝자너 3가지 형태로 만들어보았고, 사실 코드는 별거없는 애니메이션 으로 만들어서 볼거는 없다... 1. 푸시 시스템에 걸맞을 만한 스타일 [동영상1.푸시 시스템 스타일] 2. 햄버거메뉴나, 앱 박스에 넣..
상황 Contents Size Fitter 컴포넌트를 쓰면서 내부 내용이 변경될때 그 순간에 바로 업데이트가 되지않는 버그가 있다. 예제는 Layout 하위에 이미지와 텍스트를 둔 후에 텍스트 내부를 가변형으로 구성하면 예제 구성이 가능하다. 원인 이런저런 자료를 찾아봤지만, 뭔가 버그라고 생각되지만 버그라는 얘기는 찾지못했다. 일단 내가 원하는대로 쓰는게 중요해서 원인은 찾게되면 추후에 서술하겠다. 해결방법 ( Solution ) 가장 대표적인 방법은 아래 함수를 사용한다. LayoutRebuilder.ForceRebuildLayoutImmediate(RectTransform LayoutRoot); 참고자료 https://docs.unity3d.com/2018.1/Documentation/ScriptR..
Scriptable Object (SO) ? > 스크립터블 오브젝트는 Unity에서 제공. 대량의 데이터를 저장하는데 사용하는 데이터 컨테이너. > 이득은, 사본값 생성을 방지해서 C++ 포인터나 Ref 처럼 원본을 참조해서 몇개를 생성하던 원본 그 자체를 참조할 수 있다는 메모리 측면에서 엄청난 이득이 있다. > 변경되지 않는 데이터를 일반 변수로 구현할 경우 인스턴스화 할때마다 프리팹에 대한 사본이 생성된다. 이 때문에 다른 데이터 형식을 사용하면 메모리를 비교적 많이 먹는 이유가 된다. vs MonoBehavior > SO는 OnEnable, OnDisable, OnDestroy만 콜백으로 받는다 > SO는 AddComponent 함수로 붙일 수 없다 > MonoBehavior를 사용하기 위해서는 ..