본문 바로가기
728x90

[Unity]/기능13

[Unity] UI 뒷 배경 뿌옇게(Blur, 블러) 처리하기 UI 창이 오픈되면 뒷 배경을 잘 보이지 않게 하기 위해 흐리게 하는 경우가 많다. 이를 블러(Blur)처리라고 하는데 유저가 조금 더 UI 화면에 집중할 수 있도록 도와준다. 다양한 방법을 사용해서 블러를 만들 수 있지만 2가지 방법을 포스팅해본다. 이미지 투명도(알파)를 사용하여 배경 흐리기 별도의 색상있는 이미지의 알파값을 조절하여 뒷 배경을 잘 안보이게 만든다. 블러 처리라고 보기는 어렵지만 보다 간단하게 배경이 잘 안보이도록 할 수 있다. 먼저 배경 전체를 가릴 수 있을 크기의 Panel을 추가한다. Panel은 생성과 동시에 Source Image, Color가 정해져있다. 흰색에 알파값은 100, 가장 오른쪽 사진이 추가된 사진이다. 새롭게 추가한 Panel을 온오프할 UI의 아래에 추가한다.. [Unity]/기능 2023. 2. 5.
[Unity] 가중치 있는 랜덤 뽑기 기능 추가하기 직전에 소환된 객체의 레벨에 따라 가중치를 변경하여 다음 객체의 레벨을 만드는 기능을 추가한다. 가중치는 직전 레벨과 동일한 레벨을 100으로 두며 직전 레벨에서 멀어질수록 감소한다. 먼저 Dictionary를 사용하여 키와 밸류를 받는다. 이 때 Key는 레벨, value는 가중치가 된다. 0레벨부터 최대 레벨까지 탐색하며 이전 이전 레벨 - i를 통해 직전 레벨과의 차이를 구하고 10을 곱한 뒤 100에서 빼준다. 이렇게 하면 직전 레벨과 같을 경우에는 차이가 0이 되어 100이 되고 멀어질수록 작아진다. 다음 확률의 최대값을 계산할 수 있도록 가중치를 모두 더해준다. 다음 0부터 최대 가중치 중 하나를 선택한다. 이 때 Random.Range 함수를 사용한다. Random.RandomRange 함수.. [Unity]/기능 2023. 1. 31.
[Unity] 유니티 허브에서 프로젝트 열기 깃을 사용하거나 타인의 프로젝트를 다운로드 받거나 하는 경우 새롭게 프로젝트를 오픈해야 하는 경우가 있다. 자동으로 컴퓨터에 존재하는 프로젝트를 찾아주는 언리얼 에픽 런처와는 달리 유니티 허브는 직접 유니티 허브에 추가해야하는데 추가 방법을 알아보자. 먼저 유니티 허브를 오픈한다. 아래 사진과 같은 창이 나타날텐데 이 때 Open 버튼을 클릭한다. Open 버튼 옆에 있는 아래 화살표를 누르면 Add project from disk 버튼도 나타난다. 이 둘의 차이는 Open은 추가 후 해당 프로젝트를 바로 오픈하지만 Add project from disk는 유니티 허브에 추가만 할 뿐 새롭게 프로젝트를 오픈하지 않는다. 버튼을 누르고 난 뒤에는 위 사진처럼 경로를 찾는 창이 나타난다. 필자는 현재 윈도우.. [Unity]/기능 2023. 1. 31.
[Unity] 애니메이션 진행 중인지 확인하기 애니메이션이 진행 중인지 확인하는 기능은 여러 상황에서 사용하게 된다. 공격 애니메이션이 끝났는지, 죽는 모션이 끝났는지 등등 특정 애니메이션이 종료된 이후 처리해야할 기능들이 여럿 있기 때문이다. 간단하게 animator.isPlaying 같은 함수가 있으면 좋겠으나 기본적으로는 없기 때문에 유니티에서 애니메이션이 현재 플레이 중인지 확인하는 코드를 추가해보자. { Animator anim; void Awake() { anim = GetComponent(); } void Update() { ... // 현재 애니메이션이 체크하고자 하는 애니메이션인지 확인 if(anim.GetCurrentAnimatorStateInfo(0).IsName("애니메이션 이름") == true) { // 원하는 애니메이션이라.. [Unity]/기능 2023. 1. 11.
[유니티] 2D 중력 조절 (unity Gravity Scale) 유니티에서 작업할 때 중력을 조절해야 할 때가 있다. Rigidbody2D에 걸리는 중력의 스케일을 처리하는 방법은 2가지가 있다. [ 프로젝트 세팅에서 변경 ] 첫번째로 프로젝트 세팅에서 프로젝트 전체에 걸리는 중력을 조절하는 방법이다. [Edit] - [Project Settings]를 클릭하면 프로젝트 전체 세팅을 변경할 수 있는 창이 나타난다. 여기서 [Physics 2D]를 선택하면 Gravity가 있다. 기본적으로 Y 축 중력이 -9.81로 세팅되어 있는데 이를 더 작게 하면 객체에 걸리는 중력이 강해진다. 음수로 하면 아래로 중력이 가해지고 양수로 하면 위로 중력이 가해진다. 즉, 양수로 설정해놓으면 게임 시작 시 모든 객체가 위로 솟구친다. 이러한 프로젝트 세팅에서 중력을 변경하는 방법은 .. [Unity]/기능 2023. 1. 10.
[Unity] 유니티 2D 레이캐스트로 충돌 판정 처리하기 유니티 내에는 충돌과 관련해 상태를 변경할 수 있는 방법이 많이 있지만 Raycast를 이용하여 충돌을 체크하는 방법을 사용해본다. Raycast에서 Ray란 특정 좌표에서 방향과 길이를 가진 광선을 의미한다. Raycast는 이러한 Ray와 부딪힌 오브젝트(객체)가 있는지 체크하는 기능을 말하며 유니티 내에서 기본적으로 콜리전이 있어야 Raycast에 체크된다. 먼저 Debug.DrawRay를 이용하여 일정한 광선을 발사해보자. Debug.DrawRay 함수는 Debug 안에 있기 때문에 Game패널에서는 나타나지 않고 Scene에서만 나타난다. 즉, 디버깅 용도에서만 렌더되기 때문에 실제 게임이 출시되었을 때 유저가 볼 일은 없다. FixedUpdate에서 호출하였는데 Update에서 호출해도 문제는.. [Unity]/기능 2023. 1. 9.
[Unity] 에셋스토어에서 유니티 프로젝트로 에셋 임포트하기 유니티 에셋스토어에는 굉장히 많은 에셋이 존재한다. 고퀄리티의 유료 에셋부터 무료 에셋까지 다양한 자료들을 구매하여 사용할 수 있는데 런처에서 쉽게 임포트할 수 있는 언리얼과 달리 유니티는 별도의 방법이 필요하다. 그 방법에 대해 알아보자. 우선 에셋스토어에서 원하는 에셋을 구매한다. (https://assetstore.unity.com/) 내 에셋에 추가하기를 클릭하고 추가하면 내 에셋 보기와 유니티에서 열기가 있다. 유니티에서 열기를 누르면 유니티에서 패키지 매니저가 열리지만 항상 에셋 스토어를 열어서 유니티에서 열기를 누르기엔 불편함이 있다. 유니티에서 에셋 리스트를 확인할 수 있는 패키지 매니저를 열어보자. [Window] - [Package Manager] 를 클릭하면 패키지 관리 창이 나타난다.. [Unity]/기능 2023. 1. 8.
[Unity] 유니티 2D에서 객체별 렌더 순서 변경하기 3D 환경에서는 원근투영으로 인해 카메라와 가까울수록 사물이 크게 보이고 잘 보여진다. 그러나 2D 환경에서는 직교투영에 의해 원근법이 적용되지 않아 모든 객체가 같은 Z축에 있는 것처럼 보인다. 이 때문에 큰 객체가 작은 객체를 가려서 전혀 보이지 않는 현상이 발생하는데 이를 렌더 순서를 변경하여 수정할 수 있다. 1. Z 값 수정하기 유니티에서 카메라를 Ortho로 설정한다하여도 여전히 Z축과 Z값은 존재한다. 다만 존재할 뿐 값을 변경하여도 확대되거나 작아지지 않는다. 대신 이러한 Z값을 사용하여 렌더 순서를 변경할 수 있다. 카메라의 위치를 변경하지 않은 기본 상태에서는 Z값이 작을수록 앞 쪽에 렌더된다. Z값을 이용하여 정렬하였을 때의 또 다른 장점은 개발 중의 씬에서 쉽게 확인이 가능하다는 것.. [Unity]/기능 2023. 1. 8.
728x90