Unity/Tip
Unity 화면 꺼짐 방지
모바일 앱 개발자라면 누구나 경험했을 끔찍한 순간, 바로 중요한 작업 진행 중에 화면이 꺼지는 것입니다. 이러한 불편한 상황을 방지하기 위해 Screen.sleepTimeout 프로퍼티를 사용하여 화면 꺼짐을 자유롭게 제어할 수 있습니다. Screen.sleepTimeoutScreen.sleepTimeout 프로퍼티는 모바일 앱에서 화면이 꺼지기까지 기다리는 시간을 설정합니다. 기본적으로 이 값은 사용자가 마지막으로 화면을 만진 후 일정 시간이 지나면 화면이 꺼지도록 설정되어 있습니다. 하지만 Screen.sleepTimeout 프로퍼티를 사용하여 원하는 대로 화면 꺼짐 시간을 변경할 수 있습니다. 작동 방식SleepTimeout.NeverSleep는 최대값을 의미하며, 이 값을 Screen.sleep..
Unity 인터넷 연결 확인하기
Application.internetReachability란Application.internetReachability는 유니티에서 제공하는 프로퍼티로, 현재 디바이스의 인터넷 연결 상태를 나타냅니다. 이 프로퍼티는 세 가지 값을 반환하며, 각 값은 다음과 같은 의미를 가지고 있습니다:NotReachable: 인터넷 연결이 전혀 없음ReachableViaCarrierDataNetwork: 이동통신 데이터 네트워크를 통해 인터넷에 연결됨ReachableViaLocalAreaNetwork: Wi-Fi 네트워크를 통해 인터넷에 연결됨활용 방법Application.internetReachability는 다양한 상황에서 유용하게 활용될 수 있습니다. 대표적인 활용 사례는 다음과 같습니다.인터넷 연결 필요한 기능 제..
Google Mobile Ads Unity Plugin v9.0.0 업데이트 정보
업데이트 내용코드 간소화RequestConfiguration.Builder, AdRequest.Builder 등 더 이상 필요 없는 클래스가 제거되었습니다.이제 RequestConfiguration, AdRequest 객체를 직접 생성하여 사용할 수 있습니다.오류 처리 개선 AdErrorEventArgs 클래스가 제거되고 AdError 클래스로 대체되었습니다. 오류 정보는 직접 AdError 객체를 통해 확인할 수 있습니다.이와 유사하게 AdFailedToLoadEventArgs 클래스도 제거되었으며, LoadAdError 클래스를 사용하여 오류 정보를 확인할 수 있습니다.새로운 기능 추가NativeOverlayAd 클래스가 추가되었습니다. 이 클래스를 통해 템플릿을 기반으로 네이티브 광고를 페치하고 표..
다이얼로그 구현하기
#regionusing System;using System.Collections;using TMPro;using UnityEngine;using UnityEngine.UI;#endregionpublic class DialogSystem : MonoBehaviour{ [SerializeField] Speaker[] speakers; [SerializeField] DialogData[] dialogs; [SerializeField] bool isAutoStart = true; bool isFirst = true; int currentDialogIndex = -1; int currentSpeakerIndex; const float TypingSpeed = 0.1f; bool isTypingEffect; boo..
Unity 코드 문서화 : summary 태그 활용
유니티에서 코드를 작성하는 과정에서 코드의 기능과 목적을 명확하게 설명하는 것은 매우 중요합니다. 코드를 이해하기 쉽고 유지 관리하기 쉬운 방식으로 주석을 달아야 합니다. 특히, 대규모 프로젝트의 경우 코드의 복잡성이 증가하면서 코드 문서화의 중요성이 더욱 부각됩니다. summary 태그란?summary 태그는 유니티에서 코드 블록의 요약 정보를 제공하는 데 사용되는 특수 주석 태그입니다. 이 태그는 코드 블록의 상단에 위치하며, 코드의 기능, 목적, 사용 방법 등을 간략하게 설명하는 역할을 합니다.핵심 특징:간결성: 코드 블록의 핵심 정보를 요약하여 코드 이해도를 높여줍니다.명확성: 코드의 목적과 기능을 명확하게 설명하여 코드 유지 관리를 용이하게 합니다.IntelliSense 지원: 유니티 에디터의 ..
뷰포트 영역 안에 있는지 검사하는 방법
게임 개발에서 랜덤하게 생성된 좌표가 화면 뷰포트 영역 안에 있는지 확인하는 것은 흔한 작업입니다. 예를 들어, 몬스터 등장 위치 설정, 아이템 스폰 위치 결정, 배경 효과 표시 위치 선정 등 다양한 상황에서 활용될 수 있습니다. 이 글에서는 IsInsideViewport 메서드를 사용하여 랜덤 좌표가 뷰포트 영역 안에 있는지 검사하는 방법을 소개하고, 실제 적용 예시, 추가 고려 사항, 활용 팁 등을 자세하게 설명합니다. 코드 public static bool IsInsideViewport(Vector3 point) { Vector3 viewportPosition = Camera.main.WorldToViewportPoint(point); return viewportPosition.x is >= 0 a..
콜라이더 충돌 검사 : Physics.Overlap vs NonAlloc
Unity의 Physics.Overlap[콜라이더이름] 메서드는 지정된 영역 내에서 콜라이더와 충돌하는 GameObject를 찾는 데 사용되는 메서드입니다. 이 메서드는 다음과 같은 두 가지 버전이 있습니다. 일반 버전: 이 버전은 충돌하는 GameObject의 배열을 반환합니다. NonAlloc 버전: 이 버전은 충돌하는 GameObject의 참조를 반환합니다. OverlapSphere() VS OverlapSphereNonAlloc() Physics.OverlapSphere() Physics.OverlapSphereNonAlloc() 메모리 사용량 새로운 배열을 할당하여 결과를 반환 기존 배열을 사용하여 결과를 반환 성능 메모리 할당 및 해제 과정이 추가되어 성능이 저하될 수 있음 메모리 할당 및 해..
유니티의 메타(meta) 파일은 무엇인가?
메타 파일이란?? 유니티에서 Asset을 Import하거나 새로운 파일을 (유니티 Assets폴더 안에) 생성하면 Unity 안에서는 다음과 같은 일이 일어난다. 유일한 ID값을 할당한다. Unity는 새로운 Asset을 발견하면 바로 그 Asset에게 하나밖에 존재하지 않는 Unique 한 ID를 부여한다. 이 ID는 유니티 내부적으로 Asset을 참조하는데 쓰인다. 그렇게 함으로써 유니티는 Asset의 이름을 수정하거나 위치를 바꿔도 부여한 ID를 통해 그 Asset을 찾을 수 있게 된다. 메타 파일을 생성한다. 메타 파일은 Asset을 식별할 수 있게 하는 값과 그 Asset에 대한 설정 값, 예를 들어서 크기, pivot 위치, 상태, ... 등,을 저장하는 파일이다. 메타 파일은 Asset이 존..