Загрузка PICO Unity OpenXR Integration SDK
This commit is contained in:
@ -0,0 +1,28 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Unity.XR.PICO.TOBSupport
|
||||
{
|
||||
public class BindCallback : AndroidJavaProxy
|
||||
{
|
||||
public Action<bool> mCallback;
|
||||
|
||||
public BindCallback(Action<bool> callback) : base("com.picoxr.tobservice.interfaces.BoolCallback")
|
||||
{
|
||||
mCallback = callback;
|
||||
}
|
||||
|
||||
public void CallBack(bool var1)
|
||||
{
|
||||
Debug.Log("ToBService bindCallBack 回调:" + var1);
|
||||
PXR_EnterprisePlugin.GetServiceBinder();
|
||||
PXR_EnterpriseTools.QueueOnMainThread(() =>
|
||||
{
|
||||
if (mCallback != null)
|
||||
{
|
||||
mCallback(var1);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 51a5199660b7a714aae526c9e8ecf42e
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,26 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Unity.XR.PICO.TOBSupport
|
||||
{
|
||||
public class BoolCallback : AndroidJavaProxy
|
||||
{
|
||||
public Action<bool> mCallback;
|
||||
|
||||
public BoolCallback(Action<bool> callback) : base("com.picoxr.tobservice.interfaces.BoolCallback")
|
||||
{
|
||||
mCallback = callback;
|
||||
}
|
||||
|
||||
public void CallBack(bool var1)
|
||||
{
|
||||
PXR_EnterpriseTools.QueueOnMainThread(() =>
|
||||
{
|
||||
if (mCallback!=null)
|
||||
{
|
||||
mCallback(var1);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4ec069c2f433a8649af361d7ff835006
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,50 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Unity.XR.PICO.TOBSupport
|
||||
{
|
||||
public class FileCopyCallback: AndroidJavaProxy
|
||||
{
|
||||
public Action mOnCopyStart;
|
||||
public Action<double> mOnCopyProgress;
|
||||
public Action<int> mOnCopyFinish;
|
||||
|
||||
public FileCopyCallback(Action onCopyStart,Action<double> onCopyProgress,Action<int> onCopyFinish) : base("com.picoxr.tobservice.interfaces.FileCopyCallback")
|
||||
{
|
||||
mOnCopyStart = onCopyStart;
|
||||
mOnCopyProgress = onCopyProgress;
|
||||
mOnCopyFinish = onCopyFinish;
|
||||
}
|
||||
|
||||
public void OnCopyStart()
|
||||
{
|
||||
PXR_EnterpriseTools.QueueOnMainThread(() =>
|
||||
{
|
||||
if (mOnCopyStart!=null)
|
||||
{
|
||||
mOnCopyStart();
|
||||
}
|
||||
});
|
||||
}
|
||||
public void OnCopyProgress(double var1)
|
||||
{
|
||||
PXR_EnterpriseTools.QueueOnMainThread(() =>
|
||||
{
|
||||
if (mOnCopyProgress!=null)
|
||||
{
|
||||
mOnCopyProgress(var1);
|
||||
}
|
||||
});
|
||||
}
|
||||
public void OnCopyFinish(int var1)
|
||||
{
|
||||
PXR_EnterpriseTools.QueueOnMainThread(() =>
|
||||
{
|
||||
if (mOnCopyFinish!=null)
|
||||
{
|
||||
mOnCopyFinish(var1);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3f1ff22a32748af4ebc61fc3e215b7c1
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,26 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Unity.XR.PICO.TOBSupport
|
||||
{
|
||||
public class IntCallback : AndroidJavaProxy
|
||||
{
|
||||
public Action<int> mCallback;
|
||||
|
||||
public IntCallback(Action<int> callback) : base("com.picoxr.tobservice.interfaces.IntCallback")
|
||||
{
|
||||
mCallback = callback;
|
||||
}
|
||||
|
||||
public void CallBack(int var1)
|
||||
{
|
||||
PXR_EnterpriseTools.QueueOnMainThread(() =>
|
||||
{
|
||||
if (mCallback != null)
|
||||
{
|
||||
mCallback(var1);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 96277bb913de2a84e8f29f38fbdc9f29
|
||||
timeCreated: 1685959032
|
@ -0,0 +1,26 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Unity.XR.PICO.TOBSupport
|
||||
{
|
||||
public class LongCallback : AndroidJavaProxy
|
||||
{
|
||||
public Action<long> mCallback;
|
||||
|
||||
public LongCallback(Action<long> callback) : base("com.picoxr.tobservice.interfaces.LongCallback")
|
||||
{
|
||||
mCallback = callback;
|
||||
}
|
||||
|
||||
public void CallBack(long var1)
|
||||
{
|
||||
PXR_EnterpriseTools.QueueOnMainThread(() =>
|
||||
{
|
||||
if (mCallback != null)
|
||||
{
|
||||
mCallback(var1);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: be7c175a931c58d43adc4dfd8b4919a2
|
||||
timeCreated: 1685959096
|
@ -0,0 +1,119 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using LitJson;
|
||||
using UnityEngine;
|
||||
using UnityEngine.XR;
|
||||
#if PICO_XR
|
||||
using Unity.XR.PXR;
|
||||
#else
|
||||
using Unity.XR.OpenXR.Features.PICOSupport;
|
||||
#endif
|
||||
|
||||
namespace Unity.XR.PICO.TOBSupport
|
||||
{
|
||||
public class MarkerInfoCallback : AndroidJavaProxy
|
||||
{
|
||||
public Action<List<MarkerInfo>> mCallback;
|
||||
private List<MarkerInfo> mlist = new List<MarkerInfo>();
|
||||
private TrackingOriginModeFlags TrackingMode;
|
||||
private float YOffset;
|
||||
|
||||
public MarkerInfoCallback(TrackingOriginModeFlags trackingMode, float cameraYOffset,
|
||||
Action<List<MarkerInfo>> callback) : base("com.picoxr.tobservice.interfaces.StringCallback")
|
||||
{
|
||||
TrackingMode = trackingMode;
|
||||
YOffset = cameraYOffset;
|
||||
mCallback = callback;
|
||||
mlist.Clear();
|
||||
#if PICO_XR
|
||||
#else
|
||||
OpenXRExtensions.SetMarkMode();
|
||||
#endif
|
||||
}
|
||||
|
||||
public void CallBack(string var1)
|
||||
{
|
||||
Debug.Log("ToBService MarkerInfo Callback 回调:" + var1);
|
||||
List<MarkerInfo> tmp = JsonToMarkerInfos(var1);
|
||||
PXR_EnterpriseTools.QueueOnMainThread(() =>
|
||||
{
|
||||
if (mCallback != null)
|
||||
{
|
||||
mCallback(tmp);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public List<MarkerInfo> JsonToMarkerInfos(string json)
|
||||
{
|
||||
if (string.IsNullOrEmpty(json))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
List<MarkerInfo> ModelList = new List<MarkerInfo>();
|
||||
JsonData jsonData = JsonMapper.ToObject(json);
|
||||
IDictionary dictionary = jsonData as IDictionary;
|
||||
for (int i = 0; i < dictionary.Count; i++)
|
||||
{
|
||||
Debug.Log("TOB TestDemo---- MarkerInfo Callback 回调:1");
|
||||
|
||||
float OriginHeight = 0;
|
||||
if (TrackingMode == TrackingOriginModeFlags.Device || TrackingMode == TrackingOriginModeFlags.Floor)
|
||||
{
|
||||
|
||||
#if PICO_XR
|
||||
OriginHeight = PXR_Plugin.System.UPxr_GetConfigFloat(ConfigType.ToDelaSensorY);
|
||||
#else
|
||||
float trackingorigin_height = PXR_EnterprisePlugin.oxr_get_trackingorigin_height();
|
||||
float locationheight = OpenXRExtensions.GetLocationHeight();
|
||||
if (TrackingMode == TrackingOriginModeFlags.Floor)
|
||||
{
|
||||
YOffset = 0;
|
||||
OriginHeight = -trackingorigin_height;
|
||||
}
|
||||
else
|
||||
{
|
||||
// OriginHeight = trackingorigin_height + locationheight;
|
||||
// OriginHeight = locationheight;
|
||||
OriginHeight = -trackingorigin_height;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
OriginHeight = 0;
|
||||
YOffset = 0;
|
||||
}
|
||||
|
||||
Debug.Log("TOB TestDemo---- MarkerInfo Callback 回调:OriginHeight:"+OriginHeight );
|
||||
MarkerInfo model = new MarkerInfo();
|
||||
model.posX = double.Parse(jsonData[i]["posX"].ToString());
|
||||
model.posY = double.Parse(jsonData[i]["posY"].ToString()) + OriginHeight + YOffset;
|
||||
model.posZ = -double.Parse(jsonData[i]["posZ"].ToString());
|
||||
|
||||
model.rotationX = -double.Parse(jsonData[i]["rotationX"].ToString());
|
||||
model.rotationY = -double.Parse(jsonData[i]["rotationY"].ToString());
|
||||
model.rotationZ = double.Parse(jsonData[i]["rotationZ"].ToString());
|
||||
model.rotationW = double.Parse(jsonData[i]["rotationW"].ToString());
|
||||
|
||||
model.validFlag = int.Parse(jsonData[i]["validFlag"].ToString());
|
||||
model.markerType = int.Parse(jsonData[i]["markerType"].ToString());
|
||||
model.iMarkerId = int.Parse(jsonData[i]["iMarkerId"].ToString());
|
||||
model.dTimestamp = double.Parse(jsonData[i]["dTimestamp"].ToString());
|
||||
|
||||
IDictionary dictionaryReserve = jsonData[i]["reserve"] as IDictionary;
|
||||
model.reserve = new float[dictionaryReserve.Count];
|
||||
for (int j = 0; j < dictionaryReserve.Count; j++)
|
||||
{
|
||||
model.reserve[j] = float.Parse(jsonData[i]["reserve"][j].ToString());
|
||||
}
|
||||
|
||||
ModelList.Add(model);
|
||||
}
|
||||
|
||||
return ModelList;
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0f3dd52fe57c0fc4490989b3e1841b24
|
||||
timeCreated: 1686224891
|
@ -0,0 +1,26 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Unity.XR.PICO.TOBSupport
|
||||
{
|
||||
public class StringCallback : AndroidJavaProxy
|
||||
{
|
||||
public Action<string> mCallback;
|
||||
|
||||
public StringCallback(Action<string> callback) : base("com.picoxr.tobservice.interfaces.StringCallback")
|
||||
{
|
||||
mCallback = callback;
|
||||
}
|
||||
|
||||
public void CallBack(string var1)
|
||||
{
|
||||
PXR_EnterpriseTools.QueueOnMainThread(() =>
|
||||
{
|
||||
if (mCallback != null)
|
||||
{
|
||||
mCallback(var1);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0032579f19172484ebd2e85a16a8194d
|
||||
timeCreated: 1685959143
|
@ -0,0 +1,59 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using LitJson;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Unity.XR.PICO.TOBSupport
|
||||
{
|
||||
public class WifiDisplayModelCallback : AndroidJavaProxy
|
||||
{
|
||||
public Action<List<WifiDisplayModel>> mCallback;
|
||||
|
||||
public WifiDisplayModelCallback(Action<List<WifiDisplayModel>> callback) : base("com.picoxr.tobservice.interfaces.StringCallback")
|
||||
{
|
||||
mCallback = callback;
|
||||
}
|
||||
|
||||
public void CallBack(string var1)
|
||||
{
|
||||
Debug.Log("ToBService WifiDisplayModelCallback 回调:" + var1);
|
||||
List<WifiDisplayModel> tmp = JsonToWifiDisplayModel(var1);
|
||||
PXR_EnterpriseTools.QueueOnMainThread(() =>
|
||||
{
|
||||
if (mCallback != null)
|
||||
{
|
||||
mCallback(tmp);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public List<WifiDisplayModel> JsonToWifiDisplayModel(string json)
|
||||
{
|
||||
if (string.IsNullOrEmpty(json))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
List<WifiDisplayModel> ModelList = new List<WifiDisplayModel>();
|
||||
JsonData jsonData = JsonMapper.ToObject(json);
|
||||
IDictionary dictionary = jsonData as IDictionary;
|
||||
for (int i = 0; i < dictionary.Count; i++)
|
||||
{
|
||||
WifiDisplayModel model = new WifiDisplayModel();
|
||||
model.deviceAddress = jsonData[i]["deviceAddress"].ToString();
|
||||
model.deviceName = jsonData[i]["deviceName"].ToString();
|
||||
model.isAvailable = bool.Parse(jsonData[i]["isAvailable"].ToString());
|
||||
model.canConnect = bool.Parse(jsonData[i]["canConnect"].ToString());
|
||||
model.isRemembered = bool.Parse(jsonData[i]["isRemembered"].ToString());
|
||||
model.statusCode = int.Parse(jsonData[i]["statusCode"].ToString());
|
||||
model.status = jsonData[i]["status"].ToString();
|
||||
model.description = jsonData[i]["description"].ToString();
|
||||
|
||||
ModelList.Add(model);
|
||||
}
|
||||
|
||||
return ModelList;
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6cf02f2e31d415c41b26dd8e5108dada
|
||||
timeCreated: 1686050869
|
Reference in New Issue
Block a user