Unity 19

Unity 로딩씬 구현하기

씬로딩 미리보기 로딩은 앱/게임에서 흔히 볼 수 있는데 씬로딩은 단순히 로딩되는 걸 보여주는 것보단 다른 중요한 이유가 존재한다.이 기능의 씬 로딩은 비동기(Async) 씬 로딩이라 부르며 같이 한번 알아보도록 하자. ✅ 비동기(Async) 씬 로딩이 필요한 이유씬이 로딩되는 동안 앱이 멈추지 않고, 부드럽게 움직이게 하기 위해서-> 더욱 이해하기 쉽게 얘기하자면 메모리가 많을 경우 씬이 로딩 되는 속도가 늦어질 수도 있다. 씬 로딩이 늦어질 경우 사용자는 화면이 멈췄다고 착각 할 수 있기 때문에 비동기 씬 로딩을 사용하는 것이다. 또한 게임의 경우 이 로딩 시간동안 자연스럽게 게임 속 Tip을 제공할 수도 있다. 1. 로딩바 세팅하기1. 먼저 로딩바의 프레임과 그 안에 들어갈 로딩바 Image 2개를..

Unity 2025.04.14

Unity 자동슬라이드 Text 구현하기

오늘 구현할 자동 슬라이드 Text 미리보기 오늘 구현해볼 것은 Text가 자동으로 슬라이딩 되는 기능이다.새로 추가된 업데이트나 새로운 소식을 사용자에게 제공해야 할 때 쓰면 유용 할 것 같다. 1. 하이어라키 세팅하기먼저 Canvas 안에 새로운 Text 2개를 생성한다. 생성한 text는 동일한 Transform에 배치한다. TodayNews오브젝트는 News Text 부모로 있는 뒤에 있는 배경이미지이다. 2. 코드 작성 및 설명※ 변수 선언 [Header("Text Objects")] public RectTransform textA; //News1 public RectTransform textB; //News2 [Header("Animation Settings")]..

Unity 2025.04.14

Unity 출석체크 시스템 구현하기

앱이나 게임을 개발 할 때 거의 필수적으로 구현해야하는 것이 있다.그것은 바로 출석체크 시스템. 출석체크 시스템은 사용자의 재접속률을 높일 뿐만 아니라 지속적인 앱/게임의 사용을 촉진한다. 출석체크를 단계적으로 천천히 쉽게 구현을 하도록 해보자. UI 제작하기먼저 본인의 취향에 혹은 앱/게임의 분위기에 어울리는 출석체크 UI를 제작해준다.나는 보상 받기 버튼을 통해서 출석체크를 진행 할 예정이다. 로직 생각해보기코드를 작성하기 전에 우리는 어떤 로직으로 출석체크를 구현 할 지 생각해야 한다.먼저 나는 최초에 로직을 짤 때 간단하게 로컬로 처리하려고 했다. 하지만 로컬로 출석체크를 구현 했을 때의 문제점이 여러개 존재했다.로컬로 구현 했을 때의 큰 문제점1. 로컬로 구현했기 때문에 사용자가 앱을 종료하면 ..

Unity 2025.04.08

Unity 오브젝트가 안에서 보이고 밖에선 안 보일 때 해결하기

가끔 유니티로 맵 디자인을 하다보면 아래와 같은 현상을 마주할 수 있다. 이는 Unity에서 흔히 발생하는 BackFace Culling(백페이스 컬링) 현상이다. Backface Culling 현상이 일어나는 이유는?Unity 에서는 기본적으로 메시에 있는 삼각형의 앞면(Face)만 렌더링 한다. 따라서 카메라가 메쉬의 뒷면을 볼 때는 아무것도 보이지 않게 된다. 여기서 앞면이란 평면(Plane)의 버텍스 순서에 따라 결정되는 면의 방향이다. ex) Unity에서 Plane은 기본적으로 앞면은 노멀(초록 화살표, y축)이 나가는 방향 ☆ 해결방법은 총 3가지 존재 ✅  방법 1: 양면 셰이더(Two-sided Shader) 사용1. 프로젝트창 -> 우클릭 -> Create -> Shader -> Sta..

Unity/Meterial 2025.04.01

Unity 체력 UI 만들기

Unity에서 Slider을 통해 캐릭터 체력을 만들어보자. ※본 글에서는 몬스터나 캐릭터 위에 뜨는 HP 체력바가 아닌 배틀그라운드 같은 게임처럼 특정 지점에 존재하는 체력 바를 구현할 것다. 1. 먼저 Slider 오브젝트를 추가해주자 2. 다음으로 Handle은 필요없으므로 지워주도록 하자.  속성명설명Interactable슬라이더를 사용자가 조작할 수 있는지 여부 설정Transition슬라이더 핸들에 적용할 전환 방식 (ex.Color, Tint, Animation 등)Target Graphic전환 효과를 적용할 UI 그래픽 (Handle 이미지)Color 설정들Normal, Highlighted, Pressed, Selected, Disabled 색상 설정Color Multiplier전환 색상의..

Unity/UI 2025.03.31

Unity 푸시 알람 기능 구현

모바일 앱에는 보통 푸시알람 기능이 있다. 사용자의 재접속 유도, 업데이트 알림 등 다양한 푸시알람을 제공하게 되는데 나도 이번에 프로젝트를 진행하면서 푸시알람 기능을 구현해보려고 한다. 먼저 다행히도 Unity에서 푸시알람 기능 관련 패키지를 지원해준다. 1. 먼저 아래 패키지를 Import 하자 2. 위 패키지를 되면 Samples라는 Text가 생길텐데 저곳에 들어가서 Notification Samples 또한 Inport 해줘야 한다. 3. Import를 모두 마쳤다면 Project Settings에 들어가서 Mobile Notifications로 들어가서 어떤 이미지를 띄울건지 이미지를 넣으면 된다.*그냥 이미지를 넣을 시 에러가 뜰 수 있는데 이럴 때는 이미지 세팅에서 read/write를 체..

Unity 2025.03.31

캐릭터와 오브젝트 상호작용(Raycast, public Interface IInteractable 코드 사용)

캐릭터와 오브젝트가 상호작용하기 위해선 Raycast 기능을 사용해야 한다. ● Raycast란?- unity에서 제공하는 강력한 물리 시스템 기능 중 하나로, 특정 방향으로 가상의 광선(Ray)를 쏘아 충돌한 오브젝트를 가지하는 기능 ※ 기본 구조 Physics.Raycast(시작점, 방향, 충돌체 저장, 거리(, +특정 레이어))Physics.Raycast(player.transform.position, player.transform.forward, out hit, 10f(, +targetLayer))  ※ 알아야할 코드들//✔ Ray 시각화 하기Debug.DrawRay(player.transform.position, player.transform.forward*5f, Color.red, 1f);//..

Unity/캐릭터 2025.03.19

캐릭터 이동 구현 (Character Controller)

1. 컴포넌트 세팅 Slope Limit (기울기 제한) 캐릭터가 올라갈 수 있는 최대 경사각을 설정- 45로 설정하면 45도 이상의 경사면은 올라가지 못함.Step Offset (계단 높이 보정) 해당 값 이하의 높이를 자동으로 넘을 수 있도록 설정 - 플레이어가 자잘한 장애물에 걸리지 않게 해줌. Skin Width (스킨 두께) 콜라이더 표면에서 충돌을 감지하는 버퍼 거리- 너무 작은 값이면 벽에 박거나 충돌 버그 발생 / 너무 크면 충돌이 이상하게 감지될 수 있음. Min Move Distance (최소 이동 거리) 플레이어가 최소한으로 움직여야 적용되는 거리- 너무 작으면 이동 감지가 너무 자주 발생하여 성능에 영향Center (중심 위치) Character Controller의 중심 위치를 설..

Unity/캐릭터 2025.03.19

캐릭터 이동 구현 종류 (Character Controller / Rigidbody)

캐릭터 이동을 구현하는 방법은 여러가지가 있겠지만 나는 크게 2가지로 나누어봤다.  Character Controller 컴포넌트를 사용하는 경우Rigidbody 컴포넌트를 사용하는 경우적용 대상●  FPS●  3D 탐색형 게임● 플랫폼 게임● 물리 기반 게임● 레이싱 게임● 스포츠 게임핵심 특징- 이동을 Move() 메서드로 직접 제어- 충돌 감지는 가능하지만 물리 반응(튕기기 미끄러짐 등)X- 중력과 점프는 직접 코드로 구현- AddForce()를 통해 물리 엔진을 활용하여 자연스러운 가속, 감속 구현 가능- 중력, 마찰력, 충돌 반응을 자동으로 처리장점● 정확하고 예측 가능한 움직임 가능- 이동이 Move() 메서드로 처리 되기 때문에 불안정한 물리 충돌 X - 정확한 경로로 이동해야 하는 게임에 ..

Unity/캐릭터 2025.03.19