[HoloLens2MRTK] ScenUnderstanding을 통해 설정된 대상을 만들 때의 이벤트 가져오기
우선 MRTK의 ScenUnderstainding은...
그림에서 벽을 5초만 업데이트하고 대상을 생성합니다
컨디션
대상에 이벤트 추가 코드 가져오기
using Microsoft.MixedReality.Toolkit.Examples.Demos;
using Microsoft.MixedReality.Toolkit.Experimental.SpatialAwareness;
using Microsoft.MixedReality.Toolkit.SpatialAwareness;
using UnityEngine;
public class SceneUnderstandingController : DemoSpatialMeshHandler, IMixedRealitySpatialAwarenessObservationHandler<SpatialAwarenessSceneObject>
{
protected override void Start()
{
}
protected override void OnEnable()
{
RegisterEventHandlers<IMixedRealitySpatialAwarenessObservationHandler<SpatialAwarenessSceneObject>, SpatialAwarenessSceneObject>();
}
protected override void OnDisable()
{
UnregisterEventHandlers<IMixedRealitySpatialAwarenessObservationHandler<SpatialAwarenessSceneObject>, SpatialAwarenessSceneObject>();
}
protected override void OnDestroy()
{
UnregisterEventHandlers<IMixedRealitySpatialAwarenessObservationHandler<SpatialAwarenessSceneObject>, SpatialAwarenessSceneObject>();
}
public void OnObservationAdded(MixedRealitySpatialAwarenessEventData<SpatialAwarenessSceneObject> eventData)
{
Debug.Log("added!!");
Debug.Log(eventData);
}
public void OnObservationUpdated(MixedRealitySpatialAwarenessEventData<SpatialAwarenessSceneObject> eventData)
{
}
public void OnObservationRemoved(MixedRealitySpatialAwarenessEventData<SpatialAwarenessSceneObject> eventData)
{
Debug.Log("removed!!");
Debug.Log(eventData);
}
}
DemoSpatialMeshHandler
MRTK의 Example을 넣고 Package Manager에서 Spatial Awarreness를 추가하면 사용 가능전선
DemoSpatialMeshHandler
#region アセンブリ Microsoft.MixedReality.Toolkit.Examples, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
// C:\Users\Honeycomb-lab\Documents\ono\LIXIL_holo2\LIXLI_holo2\Library\ScriptAssemblies\Microsoft.MixedReality.Toolkit.Examples.dll
#endregion
using Microsoft.MixedReality.Toolkit.SpatialAwareness;
using UnityEngine;
using UnityEngine.EventSystems;
namespace Microsoft.MixedReality.Toolkit.Examples.Demos
{
[AddComponentMenu("Scripts/MRTK/Examples/DemoSpatialMeshHandler")]
public class DemoSpatialMeshHandler : MonoBehaviour, IMixedRealitySpatialAwarenessObservationHandler<SpatialAwarenessMeshObject>, IEventSystemHandler
{
protected bool isRegistered;
public DemoSpatialMeshHandler();
public virtual void OnObservationAdded(MixedRealitySpatialAwarenessEventData<SpatialAwarenessMeshObject> eventData);
public virtual void OnObservationRemoved(MixedRealitySpatialAwarenessEventData<SpatialAwarenessMeshObject> eventData);
public virtual void OnObservationUpdated(MixedRealitySpatialAwarenessEventData<SpatialAwarenessMeshObject> eventData);
protected void AddToData(int eventDataId);
protected virtual void OnDestroy();
protected virtual void OnDisable();
protected virtual void OnEnable();
protected virtual void RegisterEventHandlers<T, U>()
where T : IMixedRealitySpatialAwarenessObservationHandler<U>
where U : BaseSpatialAwarenessObject;
protected void RemoveFromData(int eventDataId);
protected virtual void Start();
protected virtual void UnregisterEventHandlers<T, U>()
where T : IMixedRealitySpatialAwarenessObservationHandler<U>
where U : BaseSpatialAwarenessObject;
protected void UpdateData(int eventDataId);
}
}
그러고 보니 5초OnObservationRemoved
간격으로 검출된 벽과 바닥의 몇 분만 집행하고, 이어서OnObservationAdded
집행된 느낌그래서 실제로 벽과 바닥의 대상은 반짝이는 것처럼 보인다
해결책은 지금 쓰고 있는데...
Reference
이 문제에 관하여([HoloLens2MRTK] ScenUnderstanding을 통해 설정된 대상을 만들 때의 이벤트 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/tkyko13/articles/2aac0d38b18f83텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)