728x90
728x90
SMALL
유니티에서 아이폰 버전을 확인할 수 있는 plugin이 필요했다.
스택플로우의 여러글들을 찾아 아래 코드를 작성할 수 있었다.
내 경우에는 라이다 체크를 위한 코드였으며,
세부 버전을 위한 함수가 필요하다면 내부를 조금 변경하면 될 것 같다
Script
- DeviceChecker.cs
public class DeviceChecker : MonoBehaviour
{
#if UNITY_IOS
[DllImport("__Internal")]
public static extern bool DeviceCheck();
#endif
}
- DeviceChecker.swift
@objc public class DeviceChecker: NSObject {
@objc public static let shared = DeviceChecker()
@objc public func DeviceCheck() -> Bool {
var isLidar = true
// iOS 13.4 이상의 버전일 경우
if #available(iOS 13.4, *) {
// 라이더 체크 함수
let supportLiDAR = ARWorldTrackingConfiguration.supportsSceneReconstruction(.mesh)
guard supportLiDAR else {
// 라이더가 없을 경우 false
isLidar = false
return isLidar
}
}
else { // iOS 13.4 미만일 경우
isLidar = false
}
return isLidar
}
}
- DeviceChecker.mm (Object-C)
extern "C" {
#pragma mark - Functions
BOOL DeviceCheck() {
return [[DeviceChecker shared] DeviceCheck];
}
}
- 프로젝트 추가
1. .cs 파일 위치
프로젝트 폴더 > Assets > Plugins
2. .swift, .mm 파일 위치
프로젝트 폴더 > Assets > Plugins > DeviceChecker
- 사용 방법
if (DeviceChecker.DeviceCheck()) {
// LiDAR 존재
} else {
// LiDAR 없음 또는 iOS 13.4 미만
}
.cs 파일에 명시한 DeviceCheck() 함수를 사용하면 true 또는 false를 반환 받아 확인할 수 있으며,
특정 버전 확인을 위해서라면 좀 더 세부적인 반환 값을 통해 확인할 수 있을 것으로 생각 된다!
728x90
728x90
LIST
'EXPERIENCE > Unity' 카테고리의 다른 글
[Unity] 빠른 HTTP 통신을 위한 유니티 에셋 추천 (0) | 2022.12.26 |
---|---|
[Unity/iOS] 아이폰 설정 화면 진입하는 플러그인 코드 (0) | 2022.12.26 |
[Unity/iOS] 앱 설정 화면 진입하는 플러그인 코드 (0) | 2022.12.26 |
[Unity/Android] Duplicate class com.google.common.util.concurrent.ListenableFuture found in modules ERROR 해결방법 (0) | 2022.12.26 |
[Unity/Android] ClassNotFoundException: Didn't find class ERROR 해결방법 (0) | 2022.12.26 |