본문 바로가기

Unity23

[Unity] AR Foundation Depth 거리 값 가져오기 (ARCore) ARCore에서 Depth API를 통해 Depth Map을 가져올 수 있는 API가 있다.이를 이용하여, 내가 원하는 특정 스크린 좌표의 Depth값을 m 단위로 변환하여 값을 알아보도록 하자.1. AR Occlustion Manager를 통해 Depth map을 받아온다.2. OcclusionManager.TryAcquireEnvironmentDepthCpuImage를 통해 XRCpuImage를 가져온다.3. XRCpuImage.Plane의 데이터(NativeArray Type)에서 내가 터치한 곳의 픽셀의 데이터 값(4개의 byte)을 얻는다.4. 해당 byte값 4개를 가지고, XRCpuImage.format에 따라 거리 값을 가져온다.(convertPixelDataToDistanceInMeter.. 2024. 5. 7.
Error building Player : Shader error in '~~~' : Couldn't open include file '~~~' Error building Player : Shader error in '~~~' : Couldn't open include file '~~~' 와 같은 에러가 생겼을 시 해결법 : Library폴더를 삭제하고 재실행 시킨다. - shader 수정 중에 갑자기 이런 에러가 생기면서, 빌드가 불가능한 상태가 되었다. Shader 코드 자체에는 문제가 없었다. 코드 상 문제가 없다고 확신하는데, 에러가 생길 때는 Library폴더에서 무언가가 꼬였을 가능성이 높다. 이런 케이스는 종종 Library폴더 삭제 후 Reimport 시킬 필요가 있다. 2024. 3. 11.
[Unity3D] 유니티에 ply파일 불러오기 오늘은 유니티에서 ply확장자 파일을 불러올 수 있는 방법에 대해 알아보려고 합니다. 바로 Unity Gaussian Splatting이라고 하는데요. 어떤 분께서 친히 오픈소스로 올려주신 것을 발견해서 공유합니다. https://github.com/aras-p/UnityGaussianSplatting GitHub - aras-p/UnityGaussianSplatting: Toy Gaussian Splatting visualization in Unity Toy Gaussian Splatting visualization in Unity. Contribute to aras-p/UnityGaussianSplatting development by creating an account on GitHub. githu.. 2023. 12. 22.
[Unity] Texture 해상도 Resize 및 읽기쓰기 권한 활성화 Texture2D originalTexture = 원하는이미지.sprite.texture; //해상도 1/4로 줄이기(가로 반절, 세로 반절) int newWidth = originalTexture.width / 2; int newHeight = originalTexture.height / 2; //해상도 변경할 텍스쳐 생성 Texture2D resizedTexture = new Texture2D(newWidth, newHeight); //originalTexture resizedTexture로 convert Graphics.ConvertTexture(originalTexture, resizedTexture); //resizedTexture의 읽기 및 쓰기 권한 활성화 resizedTexture.Appl.. 2023. 11. 14.
[Unity] 부모 자식 간의 OnEnable/OnDisable 관계 위 이미지 같은 부모자식 관계가 있다고 해보겠다. GameObject가 꺼지면 child1, child2의 OnDisable함수가 발동하고, GameObject가 다시 켜지면 child1, child2의 OnEnable함수가 발동한다. 하지만 GameObject가 꺼져있는 상태에서, child1과 child2는 켜져있다고 가정해보자. 그리고 child1과 child2는 Image 컴포넌트를 가지고 있다. 그럼 다음과 같이 child1.activeSelf와 child1.GetComponenet().enabled을 검사하면 값이 어떻게 나올까? 실행시켜보면 모두 true가 나오는걸 확인할 수 있다. 이로 인해, 부모가 OnEnable/OnDisable할 때, 모든 자식의 OnEnable/OnDisable함수.. 2023. 8. 10.
[Unity] Unity Android 앱 설정창 띄우기 public void ClickSettingButton() { StartCoroutine(OpenAppSetting()); } private IEnumerator OpenAppSetting() { try { using (var unityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) using (AndroidJavaObject currentActivityObject = unityClass.GetStatic("currentActivity")) { string packageName = currentActivityObject.Call("getPackageName"); using (var uriClass = new AndroidJavaClass(.. 2023. 8. 9.
Unity에서 Android 토스트(Toast) 메세지 사용하기 유니티에서 안드로이드 네이티브 코드를 사용하여 토스트 메세지를 구현하는 코드이다. using UnityEngine.Android; public void ClickToastButton() { ShowToast("토스트 메세지"); } //토스트 메세지 public void ShowToast(string text) { AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject curActivity = unityPlayer.GetStatic("currentActivity"); curActivity.Call("runOnUiThread", new AndroidJavaRunnable(().. 2023. 8. 9.
M2MQTT for Unity 비동기 통신(Async-Await) https://github.com/Eunji-new/M2MqttUnity GitHub - Eunji-new/M2MqttUnity: M2MQTT for Unity_비동기 소켓통신으로 변경_미연결 시, 자동 재연결 M2MQTT for Unity_비동기 소켓통신으로 변경_미연결 시, 자동 재연결. Contribute to Eunji-new/M2MqttUnity development by creating an account on GitHub. github.com 기존 M2MQTT for Unity 오픈소스의 동기프로그래밍 단점을 보완한 버전입니다. 소켓통신을 비동기(BeginConnect)로 변경하였습니다. 이는 비동기 통신으로 소켓 ip 연결 중에 시스템이 정지하지 않고 정상작동합니다. 연결이 끊겼을 경우, .. 2023. 5. 8.
[Unity] WebGL 빌드 에러 : BuildFailedException: Incremental Player build failed! 에러의 전문 BuildFailedException: Incremental Player build failed! 더보기 UnityEditor.Modules.BeeBuildPostprocessor.PostProcess (UnityEditor.Modules.BuildPostProcessArgs args) (at :0) UnityEditor.WebGL.WebGlBuildPostprocessor.PostProcess (UnityEditor.Modules.BuildPostProcessArgs args) (at /Users/bokken/buildslave/unity/build/PlatformDependent/WebGL/Extensions/Unity.WebGL.extensions/BuildPostprocessor.cs.. 2023. 4. 27.