본문 바로가기

개발 공식/Unity4

Unity URP Overlay Camera 한 화면에 두 개의 카메라 URP Overlay Camera 유니티 프로젝트를 URP로 생성했을 때 한 화면에 두 개의 카메라가 필요한 경우가 있다. 예를 들면 메인 카메라는 3D 화면을 비추고 다른 카메라는 UI Canvas를 비추어 사용자 입장에서는 3D 화면 위에 UI Canvas가 올라간 모습이 있다. 3D 게임에서 인벤토리를 킨 모습 Main Camera는 sphere Layer를 가진 오브젝트를 제외한 모든 것을 비추고 Sub Camera는 sphere Layer를 가진 오브젝트만을 비추도록 설정해보겠다. Layer 유니티 카메라는 레이어를 통해 카메라가 해당 오브젝트를 화면에 표시할 것인지 말 것인지 설정할 수 있다. UI Canvas에 종속되는 오브젝트는 생성할 때 Layer UI이며 그 외 큐브와 같은 오브젝트는 .. 2022. 11. 29.
유니티 unity monobehaviour 상속 override start 이벤트 유니티 유니티에서 monobehaviour를 상속받는 클래스는 게임 오브젝트에 컴포넌트로 부착할 수 있다. 개발 규모가 커질수록 하나의 클래스에서 모든 동작을 구현하기 버겁기 때문에 필연적으로 클래스를 나누게 된다. 부모 클래스가 mono클래스 일 때 상속받는 자식이 start, onenable, awake 등 mono클래스의 이벤트를 사용하는 방법을 알아보자. using UnityEngine; public class Parent : MonoBehaviour { protected virtual void Start() { this.transform.position = Vector3.zero; Debug.Log(this.transform.position); // 시작할 때 위치를 초기화 한다. } } 클래스.. 2022. 11. 25.
unity transform rotation Rotate RotateAround 유니티 회전 잊을만하면 각도변경을 해야하는 경우가 있다. 매번 구글링 해서 찾게 되는대.. transform rotation private void Start() { GameObject test = new GameObject(); test.transform.rotation = Quaternion.Euler(new Vector3(x, y, z)); } rotation은 오브젝트 절대적인 각도를 지정하는 것이다. test의 각도를 new Vector3(x, y, z)로 고정시킬 때 사용한다. transform Rotate private void Update() { GameObject test = new GameObject(); test.transform.Rotate(new Vector3(x, y, z) * .. 2022. 11. 22.
[Unity/UI] 텍스트 배경크기조절하는법("Parent has a type of layout group" error) UI를 만들다보면 이런 경고들을 자주만납니다. 각자의 사정상 UI가 이렇게밖에 만들어질 수 없는 일도 생기지만, 저는 최대한 이런 에러를 만들지 않으려고 노력하는 편입니다. UI 구조가 변경되거나 추가되어 꼬이는 일이 발생하면 레이아웃을 강제로 맞추는 스크립트 작업이 필요하게 될 수도 있기 때문이죠. (스파게티코드가 아닌 스파게티 UI를 경험하는 순간...) 전 그래서 이렇게 해결합니다. - 백그라운드 이미지 최소크기가 정해져 있는 경우 1. 상위 오브젝트에 HorizontalLayoutGroup과 ContentSizeFitter 값을 아래와같이 지정해줍니다. 2. LayoutElement로 백그라운드의 최소 width와 height을 지정해주고, VerticalLayoutGroup에 값을 넣고, 그아래.. 2022. 1. 27.