본문 바로가기

유니티3D[Unity3D]24

[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에서 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.
[OpenCV For Unity] AR Glass에 OpenCV 기반 Image Tracking 구현 개발 환경 Unity 2020.3.20f1 버전 OpenCV For Unity NReal Light AR Glass(CameraTexture 활용 가능한 AR Glass) OpenCV For Unity에는 WebCam 텍스쳐를 이용하여 특정 이미지를 인식할 수 있는 예제가 존재한다. 이 원리를 이용하여 AR Glass의 카메라를 이용, AR 환경 내에 Image Tracking을 구현해보려고 한다. 우선 NReal을 사용하여 NReal SDK의 NRRGBCamTexture를 WebCamTexture 대신으로 설정하였다. 다른 AR Glass를 이용하더라도 우선 CamTexture를 가져올 수 있는 라이브러리가 있어야 응용이 가능하다. OpenCV for Unity의 WebCam Texture예제에서는 다.. 2023. 4. 3.