Hololens 10.0.17763.914 (RS5)
Windows 10 SDK 10.0.18362.0
Visual Studio 2017 or 2019
Unity 2018.4.7f1+
Microsoft Mixed Reality Toolkit v2.2.0
OpenCVForUnity 2.3.7+
HoloLensCameraStream
This commit is contained in:
EnoxSoftware 2020-01-02 19:16:26 +09:00
Родитель d435038975
Коммит ca256644c9
39 изменённых файлов: 5475 добавлений и 4319 удалений

Просмотреть файл

@ -6,7 +6,7 @@ namespace HoloLensWithOpenCVForUnityExample
[System.Serializable]
public struct CameraParameters
{
public string calibration_date;
public string calibration_date;
public int frames_count;
public int image_width;
public int image_height;
@ -15,9 +15,9 @@ namespace HoloLensWithOpenCVForUnityExample
public double[] distortion_coefficients;
public double avg_reprojection_error;
public CameraParameters (int frames_count, int image_width, int image_height, int calibration_flags, double[] camera_matrix, double[] distortion_coefficients, double avg_reprojection_error)
public CameraParameters(int frames_count, int image_width, int image_height, int calibration_flags, double[] camera_matrix, double[] distortion_coefficients, double avg_reprojection_error)
{
this.calibration_date = DateTime.Now.ToString ();
this.calibration_date = DateTime.Now.ToString();
this.frames_count = frames_count;
this.image_width = image_width;
this.image_height = image_height;
@ -27,15 +27,15 @@ namespace HoloLensWithOpenCVForUnityExample
this.avg_reprojection_error = avg_reprojection_error;
}
public CameraParameters (int frames_count, int image_width, int image_height, int calibration_flags, Mat camera_matrix, Mat distortion_coefficients, double avg_reprojection_error)
public CameraParameters(int frames_count, int image_width, int image_height, int calibration_flags, Mat camera_matrix, Mat distortion_coefficients, double avg_reprojection_error)
{
double[] camera_matrixArr = new double[camera_matrix.total()];
camera_matrix.get (0, 0, camera_matrixArr);
camera_matrix.get(0, 0, camera_matrixArr);
double[] distortion_coefficientsArr = new double[distortion_coefficients.total()];
distortion_coefficients.get (0, 0, distortion_coefficientsArr);
distortion_coefficients.get(0, 0, distortion_coefficientsArr);
this.calibration_date = DateTime.Now.ToString ();
this.calibration_date = DateTime.Now.ToString();
this.frames_count = frames_count;
this.image_width = image_width;
this.image_height = image_height;
@ -45,17 +45,17 @@ namespace HoloLensWithOpenCVForUnityExample
this.avg_reprojection_error = avg_reprojection_error;
}
public Mat GetCameraMatrix ()
public Mat GetCameraMatrix()
{
Mat m = new Mat (3, 3, CvType.CV_64FC1);
m.put (0, 0, camera_matrix);
Mat m = new Mat(3, 3, CvType.CV_64FC1);
m.put(0, 0, camera_matrix);
return m;
}
public Mat GetDistortionCoefficients ()
public Mat GetDistortionCoefficients()
{
Mat m = new Mat (distortion_coefficients.Length, 1, CvType.CV_64FC1);
m.put (0, 0, distortion_coefficients);
Mat m = new Mat(distortion_coefficients.Length, 1, CvType.CV_64FC1);
m.put(0, 0, distortion_coefficients);
return m;
}
}

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -20,11 +20,11 @@ RenderSettings:
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
m_AmbientEquatorColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
m_AmbientGroundColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 3
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 0}
m_HaloStrength: 0.5
@ -55,23 +55,23 @@ LightmapSettings:
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 10
m_Resolution: 1
m_BakeResolution: 50
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 0
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 0
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 1024
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 1
m_BakeBackend: 0
m_MixedBakeMode: 2
m_BakeBackend: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 500
@ -79,7 +79,7 @@ LightmapSettings:
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVRFilteringMode: 0
m_PVRFilteringMode: 1
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
@ -89,7 +89,7 @@ LightmapSettings:
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ShowResolutionOverlay: 1
m_LightingDataAsset: {fileID: 0}
m_UseShadowmask: 0
m_UseShadowmask: 1
--- !u!196 &5
NavMeshSettings:
serializedVersion: 2
@ -769,8 +769,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -880,6 +880,148 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 229363022}
m_CullTransparentMesh: 0
--- !u!1 &245608064
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 245608065}
- component: {fileID: 245608070}
- component: {fileID: 245608069}
- component: {fileID: 245608068}
- component: {fileID: 245608067}
- component: {fileID: 245608066}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &245608065
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 245608064}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 723285959}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &245608066
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 245608064}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bf98dd1206224111a38765365e98e207, type: 3}
m_Name:
m_EditorClassIdentifier:
setCursorInvisibleWhenFocusLocked: 0
maxGazeCollisionDistance: 10
raycastLayerMasks:
- serializedVersion: 2
m_Bits: 4294967291
stabilizer:
storedStabilitySamples: 60
gazeTransform: {fileID: 0}
minHeadVelocityThreshold: 0.5
maxHeadVelocityThreshold: 2
useEyeTracking: 1
--- !u!114 &245608067
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 245608064}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7a21b486d0bb44444b1418aaa38b44de, type: 3}
m_Name:
m_EditorClassIdentifier:
m_HorizontalAxis: Horizontal
m_VerticalAxis: Vertical
m_SubmitButton: Submit
m_CancelButton: Cancel
m_InputActionsPerSecond: 10
m_RepeatDelay: 0.5
m_ForceModuleActive: 0
--- !u!114 &245608068
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 245608064}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_FirstSelected: {fileID: 0}
m_sendNavigationEvents: 1
m_DragThreshold: 10
--- !u!81 &245608069
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 245608064}
m_Enabled: 1
--- !u!20 &245608070
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 245608064}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 2
m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1}
m_projectionMatrixMode: 1
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_GateFitMode: 2
m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!1 &254324689
GameObject:
m_ObjectHideFlags: 0
@ -1054,8 +1196,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -1247,10 +1389,7 @@ GameObject:
- component: {fileID: 313085504}
- component: {fileID: 313085503}
- component: {fileID: 313085502}
- component: {fileID: 313085501}
- component: {fileID: 313085500}
- component: {fileID: 313085499}
- component: {fileID: 313085507}
m_Layer: 5
m_Name: Canvas
m_TagString: Untagged
@ -1267,49 +1406,9 @@ MonoBehaviour:
m_GameObject: {fileID: 313085498}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ac8d5b128a1d8204fb76c86f47b75912, type: 3}
m_Script: {fileID: 11500000, guid: ff4e3b9019304b5aaec5664de0778d21, type: 3}
m_Name:
m_EditorClassIdentifier:
pivotAxis: 0
targetTransform: {fileID: 0}
--- !u!114 &313085500
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 313085498}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2be8bd2ebd8277c448d6d81c75517fee, type: 3}
m_Name:
m_EditorClassIdentifier:
TagalongDistance: 2
EnforceDistance: 1
PositionUpdateSpeed: 9.8
SmoothMotion: 1
SmoothingFactor: 0.75
--- !u!114 &313085501
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 313085498}
m_Enabled: 0
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fb69de839bd015f4099b5bd2c45e53e5, type: 3}
m_Name:
m_EditorClassIdentifier:
UseUnscaledTime: 1
PositionPerSecond: 30
RotationDegreesPerSecond: 720
RotationSpeedScaler: 0
ScalePerSecond: 5
SmoothLerpToTarget: 0
SmoothPositionLerpRatio: 0.5
SmoothRotationLerpRatio: 0.5
SmoothScaleLerpRatio: 0.5
--- !u!65 &313085502
BoxCollider:
m_ObjectHideFlags: 0
@ -1372,7 +1471,7 @@ Canvas:
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 2
m_Camera: {fileID: 414521312}
m_Camera: {fileID: 0}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
@ -1390,32 +1489,19 @@ RectTransform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 313085498}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 2}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.001, y: 0.001, z: 0.001}
m_Children:
- {fileID: 1419009409}
m_Father: {fileID: 0}
m_Father: {fileID: 1559141760}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 800, y: 496.1241}
m_SizeDelta: {x: 640, y: 480}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &313085507
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 313085498}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2aebab3047f2113489ca3eb8423228b6, type: 3}
m_Name:
m_EditorClassIdentifier:
Canvas: {fileID: 313085505}
--- !u!1 &315922390
GameObject:
m_ObjectHideFlags: 0
@ -1679,58 +1765,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 412044042}
m_CullTransparentMesh: 0
--- !u!1001 &414521311
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_RootOrder
value: 3
objectReference: {fileID: 0}
- target: {fileID: 114742747811649402, guid: 3eddd1c29199313478dd3f912bfab2ab,
type: 3}
propertyPath: Cursor
value:
objectReference: {fileID: 1793930089}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
--- !u!20 &414521312 stripped
Camera:
m_CorrespondingSourceObject: {fileID: 20049547090947856, guid: 3eddd1c29199313478dd3f912bfab2ab,
type: 3}
m_PrefabInstance: {fileID: 414521311}
m_PrefabAsset: {fileID: 0}
--- !u!1 &421401889
GameObject:
m_ObjectHideFlags: 0
@ -2307,8 +2341,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -2765,6 +2799,37 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_ShowMaskGraphic: 0
--- !u!1 &723285958
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 723285959}
m_Layer: 0
m_Name: MixedRealityPlayspace
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &723285959
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 723285958}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 245608065}
m_Father: {fileID: 0}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &724712449
GameObject:
m_ObjectHideFlags: 0
@ -2848,8 +2913,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -3223,8 +3288,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -3379,6 +3444,50 @@ MonoBehaviour:
m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null
m_IsOn: 1
--- !u!1 &1070256233
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1070256235}
- component: {fileID: 1070256234}
m_Layer: 0
m_Name: MixedRealityToolkit
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1070256234
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1070256233}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 83d9acc7968244a8886f3af591305bcb, type: 3}
m_Name:
m_EditorClassIdentifier:
activeProfile: {fileID: 11400000, guid: 019ea231fcd4127409ae7906b2996ee1, type: 2}
--- !u!4 &1070256235
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1070256233}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1092023888
GameObject:
m_ObjectHideFlags: 0
@ -3572,52 +3681,6 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1001 &1151483541
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_RootOrder
value: 2
objectReference: {fileID: 0}
- target: {fileID: 20770519707920992, guid: d29bc40b7f3df26479d6a0aac211c355,
type: 3}
propertyPath: far clip plane
value: 5
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
--- !u!1 &1160862974
GameObject:
m_ObjectHideFlags: 0
@ -3782,8 +3845,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -4017,8 +4080,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -4108,7 +4171,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!224 &1224273891
RectTransform:
m_ObjectHideFlags: 0
@ -4125,10 +4188,10 @@ RectTransform:
m_Father: {fileID: 1419009409}
m_RootOrder: 8
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 90, y: -230}
m_SizeDelta: {x: 160, y: 40}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1224273892
MonoBehaviour:
@ -4173,8 +4236,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -4357,8 +4420,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -5618,8 +5681,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -5689,6 +5752,89 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1499899213}
m_CullTransparentMesh: 0
--- !u!1 &1559141757
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1559141760}
- component: {fileID: 1559141759}
- component: {fileID: 1559141758}
m_Layer: 0
m_Name: UnityUI
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1559141758
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1559141757}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4684083f6dff4a1d8a790bccc354fcf4, type: 3}
m_Name:
m_EditorClassIdentifier:
updateLinkedTransform: 0
moveLerpTime: 0.1
rotateLerpTime: 0.1
scaleLerpTime: 0
maintainScale: 1
smoothing: 1
lifetime: 0
referenceDirection: 1
minDistance: 1
maxDistance: 2
minViewDegrees: 0
maxViewDegrees: 15
aspectV: 1
ignoreAngleClamp: 0
ignoreDistanceClamp: 0
useFixedVerticalPosition: 0
fixedVerticalPosition: -0.4
orientToReferenceDirection: 0
--- !u!114 &1559141759
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1559141757}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b55691ad5b034fe6966763a6e23818d2, type: 3}
m_Name:
m_EditorClassIdentifier:
trackedTargetType: 0
trackedHandness: 3
trackedHandJoint: 2
transformOverride: {fileID: 0}
additionalOffset: {x: 0, y: 0, z: 0}
additionalRotation: {x: 0, y: 0, z: 0}
updateSolvers: 1
--- !u!4 &1559141760
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1559141757}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 2}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1764784696}
- {fileID: 313085506}
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1574495391
GameObject:
m_ObjectHideFlags: 0
@ -5974,8 +6120,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -6145,8 +6291,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -6248,6 +6394,7 @@ GameObject:
- component: {fileID: 1709852085}
- component: {fileID: 1709852088}
- component: {fileID: 1709852087}
- component: {fileID: 1709852082}
m_Layer: 0
m_Name: HoloLensArUcoCameraCalibrationExample
m_TagString: Untagged
@ -6255,6 +6402,51 @@ GameObject:
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1709852082
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1709852081}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b7e736ec19b1c5543a9bb27c150f94fb, type: 3}
m_Name:
m_EditorClassIdentifier:
isFocusRequired: 0
MarkEventsAsUsed: 0
OnPointerDown:
m_PersistentCalls:
m_Calls: []
m_TypeName: Microsoft.MixedReality.Toolkit.Input.PointerUnityEvent, Microsoft.MixedReality.Toolkit.SDK,
Version=2.2.0.0, Culture=neutral, PublicKeyToken=null
OnPointerUp:
m_PersistentCalls:
m_Calls: []
m_TypeName: Microsoft.MixedReality.Toolkit.Input.PointerUnityEvent, Microsoft.MixedReality.Toolkit.SDK,
Version=2.2.0.0, Culture=neutral, PublicKeyToken=null
OnPointerClicked:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 1709852087}
m_MethodName: OnTapped
m_Mode: 0
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
m_TypeName: Microsoft.MixedReality.Toolkit.Input.PointerUnityEvent, Microsoft.MixedReality.Toolkit.SDK,
Version=2.2.0.0, Culture=neutral, PublicKeyToken=null
OnPointerDragged:
m_PersistentCalls:
m_Calls: []
m_TypeName: Microsoft.MixedReality.Toolkit.Input.PointerUnityEvent, Microsoft.MixedReality.Toolkit.SDK,
Version=2.2.0.0, Culture=neutral, PublicKeyToken=null
--- !u!4 &1709852085
Transform:
m_ObjectHideFlags: 0
@ -6281,7 +6473,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: f9a1576f5a2e5884ab5de1d7a3ef98de, type: 3}
m_Name:
m_EditorClassIdentifier:
previewQuad: {fileID: 1745299525}
previewQuad: {fileID: 1764784692}
markerType: 0
markerTypeDropdown: {fileID: 1229642121}
dictionaryId: 10
@ -6364,7 +6556,7 @@ MonoBehaviour:
m_TypeName: OpenCVForUnity.UnityUtils.Helper.WebCamTextureToMatHelper+ErrorUnityEvent,
Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
avoidAndroidFrontCameraLowLightIssue: 0
--- !u!1 &1745299525
--- !u!1 &1764784692
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@ -6372,10 +6564,10 @@ GameObject:
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1745299526}
- component: {fileID: 1745299529}
- component: {fileID: 1745299528}
- component: {fileID: 1745299527}
- component: {fileID: 1764784696}
- component: {fileID: 1764784695}
- component: {fileID: 1764784694}
- component: {fileID: 1764784693}
m_Layer: 0
m_Name: PreviewQuad
m_TagString: Untagged
@ -6383,27 +6575,13 @@ GameObject:
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1745299526
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1745299525}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -0.3, y: 0.2, z: 2.2}
m_LocalScale: {x: 0.354, y: 0.2, z: 1}
m_Children: []
m_Father: {fileID: 1765565190}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!23 &1745299527
--- !u!23 &1764784693
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1745299525}
m_GameObject: {fileID: 1764784692}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
@ -6411,7 +6589,7 @@ MeshRenderer:
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 1
m_RenderingLayerMask: 4294967295
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 56562dd66b290634b865ecdd615f8440, type: 2}
@ -6434,13 +6612,13 @@ MeshRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!64 &1745299528
--- !u!64 &1764784694
MeshCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1745299525}
m_GameObject: {fileID: 1764784692}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 0
@ -6448,90 +6626,28 @@ MeshCollider:
m_Convex: 0
m_CookingOptions: 14
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
--- !u!33 &1745299529
--- !u!33 &1764784695
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1745299525}
m_GameObject: {fileID: 1764784692}
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
--- !u!4 &1765565190 stripped
--- !u!4 &1764784696
Transform:
m_CorrespondingSourceObject: {fileID: 4587520633816736, guid: d29bc40b7f3df26479d6a0aac211c355,
type: 3}
m_PrefabInstance: {fileID: 1151483541}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &1793930088
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_RootOrder
value: 4
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalScale.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalScale.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalScale.z
value: 1
objectReference: {fileID: 0}
- target: {fileID: 108000011213487996, guid: b2db04283121ca74495c2ee000fb4243,
type: 3}
propertyPath: m_Range
value: 0.01
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
--- !u!114 &1793930089 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 114000013851064060, guid: b2db04283121ca74495c2ee000fb4243,
type: 3}
m_PrefabInstance: {fileID: 1793930088}
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: afa1ae235bc6cfa43addd1435e2fd822, type: 3}
m_Name:
m_EditorClassIdentifier:
m_GameObject: {fileID: 1764784692}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0.20000005}
m_LocalScale: {x: 0.354, y: 0.2, z: 1}
m_Children: []
m_Father: {fileID: 1559141760}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1793984378
GameObject:
m_ObjectHideFlags: 0
@ -7453,8 +7569,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1

Просмотреть файл

@ -1,12 +1,11 @@
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using UnityEngine.SceneManagement;
using System;
using System.Collections.Generic;
using System.Threading;
using System.IO;
using System.Xml.Serialization;
using HoloToolkit.Unity.InputModule;
using OpenCVForUnity.ArucoModule;
using OpenCVForUnity.CoreModule;
using OpenCVForUnity.UnityUtils.Helper;
@ -14,6 +13,7 @@ using OpenCVForUnity.Calib3dModule;
using OpenCVForUnity.ImgprocModule;
using OpenCVForUnity.UnityUtils;
using HoloLensWithOpenCVForUnity.UnityUtils.Helper;
using Microsoft.MixedReality.Toolkit.Input;
namespace HoloLensWithOpenCVForUnityExample
{
@ -23,9 +23,9 @@ namespace HoloLensWithOpenCVForUnityExample
/// Referring to https://github.com/opencv/opencv_contrib/blob/master/modules/aruco/samples/detect_markers.cpp.
/// </summary>
[RequireComponent(typeof(HololensCameraStreamToMatHelper))]
public class HoloLensArUcoExample : ExampleSceneBase
public class HoloLensArUcoExample : MonoBehaviour
{
[HeaderAttribute ("Preview")]
[HeaderAttribute("Preview")]
/// <summary>
/// The preview quad.
@ -43,7 +43,7 @@ namespace HoloLensWithOpenCVForUnityExample
public Toggle displayCameraPreviewToggle;
[HeaderAttribute ("Detection")]
[HeaderAttribute("Detection")]
/// <summary>
/// Determines if restores the camera parameters when the file exists.
@ -61,7 +61,7 @@ namespace HoloLensWithOpenCVForUnityExample
public bool enableDetection = true;
[HeaderAttribute ("AR")]
[HeaderAttribute("AR")]
/// <summary>
/// Determines if applied the pose estimation.
@ -215,74 +215,93 @@ namespace HoloLensWithOpenCVForUnityExample
double distCoeffs5 = -0.2388065;//radial distortion coefficient k3.
readonly static Queue<Action> ExecuteOnMainThread = new Queue<Action>();
System.Object sync = new System.Object ();
System.Object sync = new System.Object();
Mat downScaleFrameMat;
bool _isThreadRunning = false;
bool isThreadRunning {
get { lock (sync)
return _isThreadRunning; }
set { lock (sync)
_isThreadRunning = value; }
bool isThreadRunning
{
get
{
lock (sync)
return _isThreadRunning;
}
set
{
lock (sync)
_isThreadRunning = value;
}
}
bool _isDetecting = false;
bool isDetecting {
get { lock (sync)
return _isDetecting; }
set { lock (sync)
_isDetecting = value; }
bool isDetecting
{
get
{
lock (sync)
return _isDetecting;
}
set
{
lock (sync)
_isDetecting = value;
}
}
bool _hasUpdatedARTransformMatrix = false;
bool hasUpdatedARTransformMatrix {
get { lock (sync)
return _hasUpdatedARTransformMatrix; }
set { lock (sync)
_hasUpdatedARTransformMatrix = value; }
bool hasUpdatedARTransformMatrix
{
get
{
lock (sync)
return _hasUpdatedARTransformMatrix;
}
set
{
lock (sync)
_hasUpdatedARTransformMatrix = value;
}
}
// Use this for initialization
protected override void Start ()
protected void Start()
{
base.Start ();
displayCameraPreviewToggle.isOn = displayCameraPreview;
useStoredCameraParametersToggle.isOn = useStoredCameraParameters;
enableLowPassFilterToggle.isOn = enableLowPassFilter;
imageOptimizationHelper = gameObject.GetComponent<ImageOptimizationHelper> ();
webCamTextureToMatHelper = gameObject.GetComponent<HololensCameraStreamToMatHelper> ();
#if WINDOWS_UWP && !DISABLE_HOLOLENSCAMSTREAM_API
imageOptimizationHelper = gameObject.GetComponent<ImageOptimizationHelper>();
webCamTextureToMatHelper = gameObject.GetComponent<HololensCameraStreamToMatHelper>();
#if WINDOWS_UWP && !DISABLE_HOLOLENSCAMSTREAM_API
webCamTextureToMatHelper.frameMatAcquired += OnFrameMatAcquired;
#endif
#endif
webCamTextureToMatHelper.Initialize ();
webCamTextureToMatHelper.Initialize();
}
/// <summary>
/// Raises the web cam texture to mat helper initialized event.
/// </summary>
public void OnWebCamTextureToMatHelperInitialized ()
public void OnWebCamTextureToMatHelperInitialized()
{
Debug.Log ("OnWebCamTextureToMatHelperInitialized");
Debug.Log("OnWebCamTextureToMatHelperInitialized");
Mat rawSizeMat = webCamTextureToMatHelper.GetMat ();
Mat rawSizeMat = webCamTextureToMatHelper.GetMat();
float rawSizeWidth = rawSizeMat.width();
float rawSizeHeight = rawSizeMat.height();
Mat webCamTextureMat = imageOptimizationHelper.GetDownScaleMat(rawSizeMat);
Debug.Log ("Screen.width " + Screen.width + " Screen.height " + Screen.height + " Screen.orientation " + Screen.orientation);
Debug.Log("Screen.width " + Screen.width + " Screen.height " + Screen.height + " Screen.orientation " + Screen.orientation);
float width = webCamTextureMat.width();
float height = webCamTextureMat.height();
texture = new Texture2D ((int)width, (int)height, TextureFormat.RGB24, false);
texture = new Texture2D((int)width, (int)height, TextureFormat.RGB24, false);
previewQuad.GetComponent<MeshRenderer>().material.mainTexture = texture;
previewQuad.transform.localScale = new Vector3 (0.2f * width / height, 0.2f, 1);
previewQuad.SetActive (displayCameraPreview);
previewQuad.transform.localScale = new Vector3(0.2f * width / height, 0.2f, 1);
previewQuad.SetActive(displayCameraPreview);
// set camera parameters.
@ -291,203 +310,214 @@ namespace HoloLensWithOpenCVForUnityExample
double cx;
double cy;
string loadDirectoryPath = Path.Combine (Application.persistentDataPath, "HoloLensArUcoCameraCalibrationExample");
string loadDirectoryPath = Path.Combine(Application.persistentDataPath, "HoloLensArUcoCameraCalibrationExample");
string calibratonDirectoryName = "camera_parameters" + rawSizeWidth + "x" + rawSizeHeight;
string loadCalibratonFileDirectoryPath = Path.Combine (loadDirectoryPath, calibratonDirectoryName);
string loadPath = Path.Combine (loadCalibratonFileDirectoryPath, calibratonDirectoryName + ".xml");
if (useStoredCameraParameters && File.Exists (loadPath)) {
string loadCalibratonFileDirectoryPath = Path.Combine(loadDirectoryPath, calibratonDirectoryName);
string loadPath = Path.Combine(loadCalibratonFileDirectoryPath, calibratonDirectoryName + ".xml");
if (useStoredCameraParameters && File.Exists(loadPath))
{
// If there is a camera parameters stored by HoloLensArUcoCameraCalibrationExample, use it
CameraParameters param;
XmlSerializer serializer = new XmlSerializer( typeof( CameraParameters ) );
using (var stream = new FileStream (loadPath, FileMode.Open)) {
param = (CameraParameters)serializer.Deserialize (stream);
XmlSerializer serializer = new XmlSerializer(typeof(CameraParameters));
using (var stream = new FileStream(loadPath, FileMode.Open))
{
param = (CameraParameters)serializer.Deserialize(stream);
}
fx = param.camera_matrix[0];
fy = param.camera_matrix[4];
cx = param.camera_matrix[2] / imageOptimizationHelper.downscaleRatio;
cy = param.camera_matrix[5] / imageOptimizationHelper.downscaleRatio;
camMatrix = new Mat (3, 3, CvType.CV_64FC1);
camMatrix.put (0, 0, fx);
camMatrix.put (0, 1, 0);
camMatrix.put (0, 2, cx);
camMatrix.put (1, 0, 0);
camMatrix.put (1, 1, fy);
camMatrix.put (1, 2, cy);
camMatrix.put (2, 0, 0);
camMatrix.put (2, 1, 0);
camMatrix.put (2, 2, 1.0f);
camMatrix = new Mat(3, 3, CvType.CV_64FC1);
camMatrix.put(0, 0, fx);
camMatrix.put(0, 1, 0);
camMatrix.put(0, 2, cx);
camMatrix.put(1, 0, 0);
camMatrix.put(1, 1, fy);
camMatrix.put(1, 2, cy);
camMatrix.put(2, 0, 0);
camMatrix.put(2, 1, 0);
camMatrix.put(2, 2, 1.0f);
distCoeffs = new MatOfDouble(param.GetDistortionCoefficients ());
distCoeffs = new MatOfDouble(param.GetDistortionCoefficients());
Debug.Log ("Loaded CameraParameters from a stored XML file.");
Debug.Log ("loadPath: " + loadPath);
Debug.Log("Loaded CameraParameters from a stored XML file.");
Debug.Log("loadPath: " + loadPath);
} else {
}
else
{
fx = this.fx;
fy = this.fy;
cx = this.cx / imageOptimizationHelper.downscaleRatio;
cy = this.cy / imageOptimizationHelper.downscaleRatio;
camMatrix = new Mat (3, 3, CvType.CV_64FC1);
camMatrix.put (0, 0, fx);
camMatrix.put (0, 1, 0);
camMatrix.put (0, 2, cx);
camMatrix.put (1, 0, 0);
camMatrix.put (1, 1, fy);
camMatrix.put (1, 2, cy);
camMatrix.put (2, 0, 0);
camMatrix.put (2, 1, 0);
camMatrix.put (2, 2, 1.0f);
camMatrix = new Mat(3, 3, CvType.CV_64FC1);
camMatrix.put(0, 0, fx);
camMatrix.put(0, 1, 0);
camMatrix.put(0, 2, cx);
camMatrix.put(1, 0, 0);
camMatrix.put(1, 1, fy);
camMatrix.put(1, 2, cy);
camMatrix.put(2, 0, 0);
camMatrix.put(2, 1, 0);
camMatrix.put(2, 2, 1.0f);
distCoeffs = new MatOfDouble (this.distCoeffs1, this.distCoeffs2, this.distCoeffs3, this.distCoeffs4, this.distCoeffs5);
distCoeffs = new MatOfDouble(this.distCoeffs1, this.distCoeffs2, this.distCoeffs3, this.distCoeffs4, this.distCoeffs5);
Debug.Log ("Created a dummy CameraParameters.");
Debug.Log("Created a dummy CameraParameters.");
}
Debug.Log ("camMatrix " + camMatrix.dump ());
Debug.Log ("distCoeffs " + distCoeffs.dump ());
Debug.Log("camMatrix " + camMatrix.dump());
Debug.Log("distCoeffs " + distCoeffs.dump());
//Calibration camera
Size imageSize = new Size (width, height);
Size imageSize = new Size(width, height);
double apertureWidth = 0;
double apertureHeight = 0;
double[] fovx = new double[1];
double[] fovy = new double[1];
double[] focalLength = new double[1];
Point principalPoint = new Point (0, 0);
Point principalPoint = new Point(0, 0);
double[] aspectratio = new double[1];
Calib3d.calibrationMatrixValues (camMatrix, imageSize, apertureWidth, apertureHeight, fovx, fovy, focalLength, principalPoint, aspectratio);
Calib3d.calibrationMatrixValues(camMatrix, imageSize, apertureWidth, apertureHeight, fovx, fovy, focalLength, principalPoint, aspectratio);
Debug.Log ("imageSize " + imageSize.ToString ());
Debug.Log ("apertureWidth " + apertureWidth);
Debug.Log ("apertureHeight " + apertureHeight);
Debug.Log ("fovx " + fovx [0]);
Debug.Log ("fovy " + fovy [0]);
Debug.Log ("focalLength " + focalLength [0]);
Debug.Log ("principalPoint " + principalPoint.ToString ());
Debug.Log ("aspectratio " + aspectratio [0]);
Debug.Log("imageSize " + imageSize.ToString());
Debug.Log("apertureWidth " + apertureWidth);
Debug.Log("apertureHeight " + apertureHeight);
Debug.Log("fovx " + fovx[0]);
Debug.Log("fovy " + fovy[0]);
Debug.Log("focalLength " + focalLength[0]);
Debug.Log("principalPoint " + principalPoint.ToString());
Debug.Log("aspectratio " + aspectratio[0]);
// Display objects near the camera.
arCamera.nearClipPlane = 0.01f;
grayMat = new Mat ();
ids = new Mat ();
corners = new List<Mat> ();
rejectedCorners = new List<Mat> ();
rvecs = new Mat ();
tvecs = new Mat ();
rotMat = new Mat (3, 3, CvType.CV_64FC1);
grayMat = new Mat();
ids = new Mat();
corners = new List<Mat>();
rejectedCorners = new List<Mat>();
rvecs = new Mat();
tvecs = new Mat();
rotMat = new Mat(3, 3, CvType.CV_64FC1);
transformationM = new Matrix4x4 ();
transformationM = new Matrix4x4();
invertYM = Matrix4x4.TRS (Vector3.zero, Quaternion.identity, new Vector3 (1, -1, 1));
Debug.Log ("invertYM " + invertYM.ToString ());
invertYM = Matrix4x4.TRS(Vector3.zero, Quaternion.identity, new Vector3(1, -1, 1));
Debug.Log("invertYM " + invertYM.ToString());
invertZM = Matrix4x4.TRS (Vector3.zero, Quaternion.identity, new Vector3 (1, 1, -1));
Debug.Log ("invertZM " + invertZM.ToString ());
invertZM = Matrix4x4.TRS(Vector3.zero, Quaternion.identity, new Vector3(1, 1, -1));
Debug.Log("invertZM " + invertZM.ToString());
detectorParams = DetectorParameters.create ();
dictionary = Aruco.getPredefinedDictionary (Aruco.DICT_6X6_250);
detectorParams = DetectorParameters.create();
dictionary = Aruco.getPredefinedDictionary(Aruco.DICT_6X6_250);
//If WebCamera is frontFaceing,flip Mat.
if (webCamTextureToMatHelper.GetWebCamDevice ().isFrontFacing) {
webCamTextureToMatHelper.flipHorizontal = true;
}
downScaleFrameMat = new Mat ((int)height, (int)width, CvType.CV_8UC4);
rgbMat4preview = new Mat ();
webCamTextureToMatHelper.flipHorizontal = webCamTextureToMatHelper.GetWebCamDevice().isFrontFacing;
downScaleFrameMat = new Mat((int)height, (int)width, CvType.CV_8UC4);
rgbMat4preview = new Mat();
}
/// <summary>
/// Raises the web cam texture to mat helper disposed event.
/// </summary>
public void OnWebCamTextureToMatHelperDisposed ()
public void OnWebCamTextureToMatHelperDisposed()
{
Debug.Log ("OnWebCamTextureToMatHelperDisposed");
Debug.Log("OnWebCamTextureToMatHelperDisposed");
#if !WINDOWS_UWP || DISABLE_HOLOLENSCAMSTREAM_API
#if !WINDOWS_UWP || DISABLE_HOLOLENSCAMSTREAM_API
StopThread();
lock (ExecuteOnMainThread) {
ExecuteOnMainThread.Clear ();
lock (ExecuteOnMainThread)
{
ExecuteOnMainThread.Clear();
}
isDetecting = false;
#endif
#endif
hasUpdatedARTransformMatrix = false;
if (grayMat != null)
grayMat.Dispose ();
grayMat.Dispose();
if (ids != null)
ids.Dispose ();
foreach (var item in corners) {
item.Dispose ();
ids.Dispose();
foreach (var item in corners)
{
item.Dispose();
}
corners.Clear ();
foreach (var item in rejectedCorners) {
item.Dispose ();
corners.Clear();
foreach (var item in rejectedCorners)
{
item.Dispose();
}
rejectedCorners.Clear ();
rejectedCorners.Clear();
if (rvecs != null)
rvecs.Dispose ();
rvecs.Dispose();
if (tvecs != null)
tvecs.Dispose ();
tvecs.Dispose();
if (rotMat != null)
rotMat.Dispose ();
rotMat.Dispose();
if (rgbMat4preview != null)
rgbMat4preview.Dispose ();
rgbMat4preview.Dispose();
}
/// <summary>
/// Raises the web cam texture to mat helper error occurred event.
/// </summary>
/// <param name="errorCode">Error code.</param>
public void OnWebCamTextureToMatHelperErrorOccurred(WebCamTextureToMatHelper.ErrorCode errorCode){
Debug.Log ("OnWebCamTextureToMatHelperErrorOccurred " + errorCode);
public void OnWebCamTextureToMatHelperErrorOccurred(WebCamTextureToMatHelper.ErrorCode errorCode)
{
Debug.Log("OnWebCamTextureToMatHelperErrorOccurred " + errorCode);
}
#if WINDOWS_UWP && !DISABLE_HOLOLENSCAMSTREAM_API
public void OnFrameMatAcquired (Mat bgraMat, Matrix4x4 projectionMatrix, Matrix4x4 cameraToWorldMatrix)
#if WINDOWS_UWP && !DISABLE_HOLOLENSCAMSTREAM_API
public void OnFrameMatAcquired(Mat bgraMat, Matrix4x4 projectionMatrix, Matrix4x4 cameraToWorldMatrix)
{
downScaleFrameMat = imageOptimizationHelper.GetDownScaleMat (bgraMat);
downScaleFrameMat = imageOptimizationHelper.GetDownScaleMat(bgraMat);
if (enableDetection) {
Imgproc.cvtColor (downScaleFrameMat, grayMat, Imgproc.COLOR_BGRA2GRAY);
if (enableDetection)
{
Imgproc.cvtColor(downScaleFrameMat, grayMat, Imgproc.COLOR_BGRA2GRAY);
// Detect markers and estimate Pose
Aruco.detectMarkers (grayMat, dictionary, corners, ids, detectorParams, rejectedCorners, camMatrix, distCoeffs);
Aruco.detectMarkers(grayMat, dictionary, corners, ids, detectorParams, rejectedCorners, camMatrix, distCoeffs);
if (applyEstimationPose && ids.total () > 0){
Aruco.estimatePoseSingleMarkers (corners, markerLength, camMatrix, distCoeffs, rvecs, tvecs);
for (int i = 0; i < ids.total (); i++) {
if (applyEstimationPose && ids.total() > 0)
{
Aruco.estimatePoseSingleMarkers(corners, markerLength, camMatrix, distCoeffs, rvecs, tvecs);
for (int i = 0; i < ids.total(); i++)
{
//This example can display ARObject on only first detected marker.
if (i == 0) {
if (i == 0)
{
// Convert to unity pose data.
double[] rvecArr = new double[3];
rvecs.get (0, 0, rvecArr);
rvecs.get(0, 0, rvecArr);
double[] tvecArr = new double[3];
tvecs.get (0, 0, tvecArr);
tvecs.get(0, 0, tvecArr);
tvecArr[2] /= imageOptimizationHelper.downscaleRatio;
PoseData poseData = ARUtils.ConvertRvecTvecToPoseData (rvecArr, tvecArr);
PoseData poseData = ARUtils.ConvertRvecTvecToPoseData(rvecArr, tvecArr);
// Changes in pos/rot below these thresholds are ignored.
if (enableLowPassFilter) {
ARUtils.LowpassPoseData (ref oldPoseData, ref poseData, positionLowPass, rotationLowPass);
if (enableLowPassFilter)
{
ARUtils.LowpassPoseData(ref oldPoseData, ref poseData, positionLowPass, rotationLowPass);
}
oldPoseData = poseData;
// Create transform matrix.
transformationM = Matrix4x4.TRS (poseData.pos, poseData.rot, Vector3.one);
transformationM = Matrix4x4.TRS(poseData.pos, poseData.rot, Vector3.one);
lock (sync){
lock (sync)
{
// Right-handed coordinates system (OpenCV) to left-handed one (Unity)
ARM = invertYM * transformationM;
@ -504,49 +534,59 @@ namespace HoloLensWithOpenCVForUnityExample
}
Mat rgbMat4preview = null;
if (displayCameraPreview) {
rgbMat4preview = new Mat ();
Imgproc.cvtColor (downScaleFrameMat, rgbMat4preview, Imgproc.COLOR_BGRA2RGB);
if (displayCameraPreview)
{
rgbMat4preview = new Mat();
Imgproc.cvtColor(downScaleFrameMat, rgbMat4preview, Imgproc.COLOR_BGRA2RGB);
if (ids.total () > 0) {
Aruco.drawDetectedMarkers (rgbMat4preview, corners, ids, new Scalar (0, 255, 0));
if (ids.total() > 0)
{
Aruco.drawDetectedMarkers(rgbMat4preview, corners, ids, new Scalar(0, 255, 0));
if (applyEstimationPose) {
for (int i = 0; i < ids.total (); i++) {
using (Mat rvec = new Mat (rvecs, new OpenCVForUnity.CoreModule.Rect(0, i, 1, 1)))
using (Mat tvec = new Mat (tvecs, new OpenCVForUnity.CoreModule.Rect(0, i, 1, 1))) {
if (applyEstimationPose)
{
for (int i = 0; i < ids.total(); i++)
{
using (Mat rvec = new Mat(rvecs, new OpenCVForUnity.CoreModule.Rect(0, i, 1, 1)))
using (Mat tvec = new Mat(tvecs, new OpenCVForUnity.CoreModule.Rect(0, i, 1, 1)))
{
// In this example we are processing with RGB color image, so Axis-color correspondences are X: blue, Y: green, Z: red. (Usually X: red, Y: green, Z: blue)
Aruco.drawAxis (rgbMat4preview, camMatrix, distCoeffs, rvec, tvec, markerLength * 0.5f);
Aruco.drawAxis(rgbMat4preview, camMatrix, distCoeffs, rvec, tvec, markerLength * 0.5f);
}
}
}
}
}
Enqueue(() => {
Enqueue(() =>
{
if (!webCamTextureToMatHelper.IsPlaying()) return;
if (!webCamTextureToMatHelper.IsPlaying ()) return;
if (displayCameraPreview && rgbMat4preview != null) {
Utils.fastMatToTexture2D (rgbMat4preview, texture);
if (displayCameraPreview && rgbMat4preview != null)
{
Utils.fastMatToTexture2D(rgbMat4preview, texture);
}
if (applyEstimationPose) {
if (hasUpdatedARTransformMatrix) {
if (applyEstimationPose)
{
if (hasUpdatedARTransformMatrix)
{
hasUpdatedARTransformMatrix = false;
lock (sync){
lock (sync)
{
// Apply camera transform matrix.
ARM = cameraToWorldMatrix * invertZM * ARM;
ARUtils.SetTransformFromMatrix (arGameObject.transform, ref ARM);
ARUtils.SetTransformFromMatrix(arGameObject.transform, ref ARM);
}
}
}
bgraMat.Dispose ();
if (rgbMat4preview != null){
bgraMat.Dispose();
if (rgbMat4preview != null)
{
rgbMat4preview.Dispose();
}
@ -572,58 +612,66 @@ namespace HoloLensWithOpenCVForUnityExample
}
}
#else
#else
// Update is called once per frame
void Update ()
void Update()
{
lock (ExecuteOnMainThread) {
while (ExecuteOnMainThread.Count > 0) {
ExecuteOnMainThread.Dequeue ().Invoke ();
lock (ExecuteOnMainThread)
{
while (ExecuteOnMainThread.Count > 0)
{
ExecuteOnMainThread.Dequeue().Invoke();
}
}
if (webCamTextureToMatHelper.IsPlaying () && webCamTextureToMatHelper.DidUpdateThisFrame ()) {
if (enableDetection && !isDetecting ) {
if (webCamTextureToMatHelper.IsPlaying() && webCamTextureToMatHelper.DidUpdateThisFrame())
{
if (enableDetection && !isDetecting)
{
isDetecting = true;
downScaleFrameMat = imageOptimizationHelper.GetDownScaleMat (webCamTextureToMatHelper.GetMat ());
downScaleFrameMat = imageOptimizationHelper.GetDownScaleMat(webCamTextureToMatHelper.GetMat());
StartThread (ThreadWorker);
StartThread(ThreadWorker);
}
}
}
private void StartThread(Action action)
{
#if WINDOWS_UWP || (!UNITY_WSA_10_0 && (NET_4_6 || NET_STANDARD_2_0))
#if WINDOWS_UWP || (!UNITY_WSA_10_0 && (NET_4_6 || NET_STANDARD_2_0))
System.Threading.Tasks.Task.Run(() => action());
#else
#else
ThreadPool.QueueUserWorkItem(_ => action());
#endif
#endif
}
private void StopThread ()
private void StopThread()
{
if (!isThreadRunning)
return;
while (isThreadRunning) {
while (isThreadRunning)
{
//Wait threading stop
}
}
}
private void ThreadWorker()
{
isThreadRunning = true;
DetectARUcoMarker ();
DetectARUcoMarker();
lock (ExecuteOnMainThread) {
if (ExecuteOnMainThread.Count == 0) {
ExecuteOnMainThread.Enqueue (() => {
OnDetectionDone ();
lock (ExecuteOnMainThread)
{
if (ExecuteOnMainThread.Count == 0)
{
ExecuteOnMainThread.Enqueue(() =>
{
OnDetectionDone();
});
}
}
@ -633,41 +681,44 @@ namespace HoloLensWithOpenCVForUnityExample
private void DetectARUcoMarker()
{
Imgproc.cvtColor (downScaleFrameMat, grayMat, Imgproc.COLOR_RGBA2GRAY);
Imgproc.cvtColor(downScaleFrameMat, grayMat, Imgproc.COLOR_RGBA2GRAY);
// Detect markers and estimate Pose
Aruco.detectMarkers (grayMat, dictionary, corners, ids, detectorParams, rejectedCorners, camMatrix, distCoeffs);
Aruco.detectMarkers(grayMat, dictionary, corners, ids, detectorParams, rejectedCorners, camMatrix, distCoeffs);
if (applyEstimationPose && ids.total () > 0){
Aruco.estimatePoseSingleMarkers (corners, markerLength, camMatrix, distCoeffs, rvecs, tvecs);
for (int i = 0; i < ids.total (); i++) {
if (applyEstimationPose && ids.total() > 0)
{
Aruco.estimatePoseSingleMarkers(corners, markerLength, camMatrix, distCoeffs, rvecs, tvecs);
for (int i = 0; i < ids.total(); i++)
{
//This example can display ARObject on only first detected marker.
if (i == 0) {
if (i == 0)
{
// Convert to unity pose data.
double[] rvecArr = new double[3];
rvecs.get (0, 0, rvecArr);
rvecs.get(0, 0, rvecArr);
double[] tvecArr = new double[3];
tvecs.get (0, 0, tvecArr);
tvecs.get(0, 0, tvecArr);
tvecArr[2] /= imageOptimizationHelper.downscaleRatio;
PoseData poseData = ARUtils.ConvertRvecTvecToPoseData (rvecArr, tvecArr);
PoseData poseData = ARUtils.ConvertRvecTvecToPoseData(rvecArr, tvecArr);
// Changes in pos/rot below these thresholds are ignored.
if (enableLowPassFilter) {
ARUtils.LowpassPoseData (ref oldPoseData, ref poseData, positionLowPass, rotationLowPass);
if (enableLowPassFilter)
{
ARUtils.LowpassPoseData(ref oldPoseData, ref poseData, positionLowPass, rotationLowPass);
}
oldPoseData = poseData;
// Create transform matrix.
transformationM = Matrix4x4.TRS (poseData.pos, poseData.rot, Vector3.one);
transformationM = Matrix4x4.TRS(poseData.pos, poseData.rot, Vector3.one);
// Right-handed coordinates system (OpenCV) to left-handed one (Unity)
ARM = invertYM * transformationM;
// https://stackoverflow.com/questions/30234945/change-handedness-of-a-row-major-4x4-transformation-matrix
ARM = invertYM * transformationM * invertYM;
// Apply Z-axis inverted matrix.
ARM = ARM * invertZM;
// Apply Y-axis and Z-axis refletion matrix. (Adjust the posture of the AR object)
ARM = ARM * invertYM * invertZM;
hasUpdatedARTransformMatrix = true;
@ -679,131 +730,148 @@ namespace HoloLensWithOpenCVForUnityExample
private void OnDetectionDone()
{
if (displayCameraPreview) {
Imgproc.cvtColor (downScaleFrameMat, rgbMat4preview, Imgproc.COLOR_RGBA2RGB);
if (displayCameraPreview)
{
Imgproc.cvtColor(downScaleFrameMat, rgbMat4preview, Imgproc.COLOR_RGBA2RGB);
if (ids.total () > 0) {
Aruco.drawDetectedMarkers (rgbMat4preview, corners, ids, new Scalar (0, 255, 0));
if (ids.total() > 0)
{
Aruco.drawDetectedMarkers(rgbMat4preview, corners, ids, new Scalar(0, 255, 0));
if (applyEstimationPose) {
for (int i = 0; i < ids.total (); i++) {
using (Mat rvec = new Mat (rvecs, new OpenCVForUnity.CoreModule.Rect(0, i, 1, 1)))
using (Mat tvec = new Mat (tvecs, new OpenCVForUnity.CoreModule.Rect(0, i, 1, 1))) {
if (applyEstimationPose)
{
for (int i = 0; i < ids.total(); i++)
{
using (Mat rvec = new Mat(rvecs, new OpenCVForUnity.CoreModule.Rect(0, i, 1, 1)))
using (Mat tvec = new Mat(tvecs, new OpenCVForUnity.CoreModule.Rect(0, i, 1, 1)))
{
// In this example we are processing with RGB color image, so Axis-color correspondences are X: blue, Y: green, Z: red. (Usually X: red, Y: green, Z: blue)
Aruco.drawAxis (rgbMat4preview, camMatrix, distCoeffs, rvec, tvec, markerLength * 0.5f);
Aruco.drawAxis(rgbMat4preview, camMatrix, distCoeffs, rvec, tvec, markerLength * 0.5f);
}
}
}
}
Utils.fastMatToTexture2D (rgbMat4preview, texture);
Utils.fastMatToTexture2D(rgbMat4preview, texture);
}
if (applyEstimationPose) {
if (hasUpdatedARTransformMatrix) {
if (applyEstimationPose)
{
if (hasUpdatedARTransformMatrix)
{
hasUpdatedARTransformMatrix = false;
// Apply the cameraToWorld matrix with the Z-axis inverted.
// Apply the cameraToWorld matrix with the Z-axis inverted.
ARM = arCamera.cameraToWorldMatrix * invertZM * ARM;
ARUtils.SetTransformFromMatrix (arGameObject.transform, ref ARM);
ARUtils.SetTransformFromMatrix(arGameObject.transform, ref ARM);
}
}
isDetecting = false;
}
#endif
#endif
/// <summary>
/// Raises the destroy event.
/// </summary>
void OnDestroy ()
void OnDestroy()
{
imageOptimizationHelper.Dispose ();
#if WINDOWS_UWP && !DISABLE_HOLOLENSCAMSTREAM_API
imageOptimizationHelper.Dispose();
#if WINDOWS_UWP && !DISABLE_HOLOLENSCAMSTREAM_API
webCamTextureToMatHelper.frameMatAcquired -= OnFrameMatAcquired;
#endif
webCamTextureToMatHelper.Dispose ();
#endif
webCamTextureToMatHelper.Dispose();
}
/// <summary>
/// Raises the back button click event.
/// </summary>
public void OnBackButtonClick ()
public void OnBackButtonClick()
{
LoadScene ("HoloLensWithOpenCVForUnityExample");
SceneManager.LoadScene("HoloLensWithOpenCVForUnityExample");
}
/// <summary>
/// Raises the play button click event.
/// </summary>
public void OnPlayButtonClick ()
public void OnPlayButtonClick()
{
webCamTextureToMatHelper.Play ();
webCamTextureToMatHelper.Play();
}
/// <summary>
/// Raises the pause button click event.
/// </summary>
public void OnPauseButtonClick ()
public void OnPauseButtonClick()
{
webCamTextureToMatHelper.Pause ();
webCamTextureToMatHelper.Pause();
}
/// <summary>
/// Raises the stop button click event.
/// </summary>
public void OnStopButtonClick ()
public void OnStopButtonClick()
{
webCamTextureToMatHelper.Stop ();
webCamTextureToMatHelper.Stop();
}
/// <summary>
/// Raises the change camera button click event.
/// </summary>
public void OnChangeCameraButtonClick ()
public void OnChangeCameraButtonClick()
{
webCamTextureToMatHelper.requestedIsFrontFacing = !webCamTextureToMatHelper.IsFrontFacing ();
webCamTextureToMatHelper.requestedIsFrontFacing = !webCamTextureToMatHelper.IsFrontFacing();
}
/// <summary>
/// Raises the display camera preview toggle value changed event.
/// </summary>
public void OnDisplayCamreaPreviewToggleValueChanged ()
public void OnDisplayCamreaPreviewToggleValueChanged()
{
if (displayCameraPreviewToggle.isOn) {
if (displayCameraPreviewToggle.isOn)
{
displayCameraPreview = true;
} else {
}
else
{
displayCameraPreview = false;
}
previewQuad.SetActive (displayCameraPreview);
previewQuad.SetActive(displayCameraPreview);
}
/// <summary>
/// Raises the use stored camera parameters toggle value changed event.
/// </summary>
public void OnUseStoredCameraParametersToggleValueChanged ()
public void OnUseStoredCameraParametersToggleValueChanged()
{
if (useStoredCameraParametersToggle.isOn) {
if (useStoredCameraParametersToggle.isOn)
{
useStoredCameraParameters = true;
} else {
}
else
{
useStoredCameraParameters = false;
}
if (webCamTextureToMatHelper != null && webCamTextureToMatHelper.IsInitialized ()) {
webCamTextureToMatHelper.Initialize ();
if (webCamTextureToMatHelper != null && webCamTextureToMatHelper.IsInitialized())
{
webCamTextureToMatHelper.Initialize();
}
}
/// <summary>
/// Raises the enable low pass filter toggle value changed event.
/// </summary>
public void OnEnableLowPassFilterToggleValueChanged ()
public void OnEnableLowPassFilterToggleValueChanged()
{
if (enableLowPassFilterToggle.isOn) {
if (enableLowPassFilterToggle.isOn)
{
enableLowPassFilter = true;
} else {
}
else
{
enableLowPassFilter = false;
}
}
@ -811,21 +879,26 @@ namespace HoloLensWithOpenCVForUnityExample
/// <summary>
/// Raises the tapped event.
/// </summary>
public void OnTapped ()
public void OnTapped(MixedRealityPointerEventData eventData)
{
Debug.Log("OnTapped!");
// Determine if a Gaze pointer is over a GUI.
if (GazeManager.Instance.HitObject != null && (GazeManager.Instance.HitObject.GetComponent<Button>() != null || GazeManager.Instance.HitObject.GetComponent<Toggle>() != null
|| GazeManager.Instance.HitObject.GetComponent<Text>() != null || GazeManager.Instance.HitObject.GetComponent<Image>() != null))
if (eventData.selectedObject != null && (eventData.selectedObject.GetComponent<Button>() != null || eventData.selectedObject.GetComponent<Toggle>() != null
|| eventData.selectedObject.GetComponent<Text>() != null || eventData.selectedObject.GetComponent<Image>() != null))
{
return;
}
}
if (applyEstimationPose) {
if (applyEstimationPose)
{
applyEstimationPose = false;
arCube.GetComponent<MeshRenderer> ().material.color = Color.gray;
} else {
arCube.GetComponent<MeshRenderer>().material.color = Color.gray;
}
else
{
applyEstimationPose = true;
arCube.GetComponent<MeshRenderer> ().material.color = Color.red;
arCube.GetComponent<MeshRenderer>().material.color = Color.red;
}
}
}

Просмотреть файл

@ -1,9 +0,0 @@
fileFormatVersion: 2
guid: aa6e5ae3b8c05614c96933b6ec0e0b3d
folderAsset: yes
timeCreated: 1493571012
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

Просмотреть файл

@ -20,9 +20,9 @@ RenderSettings:
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 1, g: 1, b: 1, a: 1}
m_AmbientEquatorColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
m_AmbientGroundColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
@ -44,7 +44,7 @@ RenderSettings:
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 11
m_GIWorkflowMode: 1
m_GIWorkflowMode: 0
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
@ -55,23 +55,23 @@ LightmapSettings:
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 10
m_Resolution: 1
m_BakeResolution: 50
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 0
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 0
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 1024
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 1
m_BakeBackend: 0
m_MixedBakeMode: 2
m_BakeBackend: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 500
@ -88,9 +88,8 @@ LightmapSettings:
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ShowResolutionOverlay: 1
m_LightingDataAsset: {fileID: 112000002, guid: ca79ece223f3cb94eb0dcca05d4abd24,
type: 2}
m_UseShadowmask: 0
m_LightingDataAsset: {fileID: 0}
m_UseShadowmask: 1
--- !u!196 &5
NavMeshSettings:
serializedVersion: 2
@ -113,6 +112,89 @@ NavMeshSettings:
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &12438479
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 12438482}
- component: {fileID: 12438481}
- component: {fileID: 12438480}
m_Layer: 0
m_Name: UnityUI
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &12438480
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 12438479}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4684083f6dff4a1d8a790bccc354fcf4, type: 3}
m_Name:
m_EditorClassIdentifier:
updateLinkedTransform: 0
moveLerpTime: 0.1
rotateLerpTime: 0.1
scaleLerpTime: 0
maintainScale: 1
smoothing: 1
lifetime: 0
referenceDirection: 1
minDistance: 1
maxDistance: 2
minViewDegrees: 0
maxViewDegrees: 15
aspectV: 1
ignoreAngleClamp: 0
ignoreDistanceClamp: 0
useFixedVerticalPosition: 0
fixedVerticalPosition: -0.4
orientToReferenceDirection: 0
--- !u!114 &12438481
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 12438479}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b55691ad5b034fe6966763a6e23818d2, type: 3}
m_Name:
m_EditorClassIdentifier:
trackedTargetType: 0
trackedHandness: 3
trackedHandJoint: 2
transformOverride: {fileID: 0}
additionalOffset: {x: 0, y: 0, z: 0}
additionalRotation: {x: 0, y: 0, z: 0}
updateSolvers: 1
--- !u!4 &12438482
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 12438479}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 2}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 524242141}
- {fileID: 471094666}
m_Father: {fileID: 0}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &107788451
GameObject:
m_ObjectHideFlags: 0
@ -140,13 +222,13 @@ Light:
m_Enabled: 1
serializedVersion: 8
m_Type: 1
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
m_Intensity: 1
m_Range: 10
m_SpotAngle: 30
m_CookieSize: 10
m_Shadows:
m_Type: 0
m_Type: 2
m_Resolution: -1
m_CustomResolution: -1
m_Strength: 1
@ -182,87 +264,6 @@ Transform:
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 50.000004, y: -30, z: 0}
--- !u!1001 &110278492
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 471094666}
m_Modifications:
- target: {fileID: 1000011443254168, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4000012520274942, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000012520274942, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000012520274942, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000012520274942, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4000012520274942, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4000012520274942, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4000012520274942, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4000012520274942, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000012520274942, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalScale.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4000012520274942, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalScale.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4000012084356042, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalScale.x
value: 5
objectReference: {fileID: 0}
- target: {fileID: 4000012084356042, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalScale.y
value: 5
objectReference: {fileID: 0}
- target: {fileID: 4000012084356042, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalScale.z
value: 5
objectReference: {fileID: 0}
- target: {fileID: 114814769360254126, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5,
type: 3}
propertyPath: m_Enabled
value: 0
objectReference: {fileID: 0}
- target: {fileID: 114000014245746336, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5,
type: 3}
propertyPath: m_Enabled
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
--- !u!4 &110278493 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 4000012520274942, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5,
type: 3}
m_PrefabInstance: {fileID: 110278492}
m_PrefabAsset: {fileID: 0}
--- !u!1 &166738430
GameObject:
m_ObjectHideFlags: 0
@ -338,6 +339,50 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 166738430}
m_CullTransparentMesh: 0
--- !u!1 &205331507
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 205331509}
- component: {fileID: 205331508}
m_Layer: 0
m_Name: MixedRealityToolkit
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &205331508
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 205331507}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 83d9acc7968244a8886f3af591305bcb, type: 3}
m_Name:
m_EditorClassIdentifier:
activeProfile: {fileID: 11400000, guid: 019ea231fcd4127409ae7906b2996ee1, type: 2}
--- !u!4 &205331509
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 205331507}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &266668974
GameObject:
m_ObjectHideFlags: 0
@ -423,8 +468,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -648,8 +693,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -776,10 +821,7 @@ GameObject:
- component: {fileID: 471094664}
- component: {fileID: 471094663}
- component: {fileID: 471094662}
- component: {fileID: 471094661}
- component: {fileID: 471094660}
- component: {fileID: 471094659}
- component: {fileID: 471094667}
m_Layer: 5
m_Name: Canvas
m_TagString: Untagged
@ -796,49 +838,9 @@ MonoBehaviour:
m_GameObject: {fileID: 471094658}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ac8d5b128a1d8204fb76c86f47b75912, type: 3}
m_Script: {fileID: 11500000, guid: ff4e3b9019304b5aaec5664de0778d21, type: 3}
m_Name:
m_EditorClassIdentifier:
pivotAxis: 0
targetTransform: {fileID: 0}
--- !u!114 &471094660
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 471094658}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2be8bd2ebd8277c448d6d81c75517fee, type: 3}
m_Name:
m_EditorClassIdentifier:
TagalongDistance: 2
EnforceDistance: 1
PositionUpdateSpeed: 9.8
SmoothMotion: 1
SmoothingFactor: 0.75
--- !u!114 &471094661
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 471094658}
m_Enabled: 0
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fb69de839bd015f4099b5bd2c45e53e5, type: 3}
m_Name:
m_EditorClassIdentifier:
UseUnscaledTime: 1
PositionPerSecond: 30
RotationDegreesPerSecond: 720
RotationSpeedScaler: 0
ScalePerSecond: 5
SmoothLerpToTarget: 0
SmoothPositionLerpRatio: 0.5
SmoothRotationLerpRatio: 0.5
SmoothScaleLerpRatio: 0.5
--- !u!65 &471094662
BoxCollider:
m_ObjectHideFlags: 0
@ -901,7 +903,7 @@ Canvas:
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 2
m_Camera: {fileID: 945929371}
m_Camera: {fileID: 0}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
@ -919,33 +921,19 @@ RectTransform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 471094658}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 2}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.001, y: 0.001, z: 0.001}
m_Children:
- {fileID: 110278493}
- {fileID: 1419009409}
m_Father: {fileID: 0}
m_RootOrder: 3
m_Father: {fileID: 12438482}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 800, y: 496.1241}
m_SizeDelta: {x: 640, y: 480}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &471094667
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 471094658}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2aebab3047f2113489ca3eb8423228b6, type: 3}
m_Name:
m_EditorClassIdentifier:
Canvas: {fileID: 471094665}
--- !u!1 &524242140
GameObject:
m_ObjectHideFlags: 0
@ -973,11 +961,11 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 524242140}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -0.3, y: 0.2, z: 2.2}
m_LocalPosition: {x: 0, y: 0, z: 0.20000005}
m_LocalScale: {x: 0.354, y: 0.2, z: 1}
m_Children: []
m_Father: {fileID: 1600368325}
m_RootOrder: 2
m_Father: {fileID: 12438482}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!23 &524242142
MeshRenderer:
@ -1437,8 +1425,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -1553,8 +1541,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -1589,6 +1577,148 @@ MonoBehaviour:
m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null
m_IsOn: 1
--- !u!1 &742817363
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 742817364}
- component: {fileID: 742817369}
- component: {fileID: 742817368}
- component: {fileID: 742817367}
- component: {fileID: 742817366}
- component: {fileID: 742817365}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &742817364
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 742817363}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 1842696726}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &742817365
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 742817363}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bf98dd1206224111a38765365e98e207, type: 3}
m_Name:
m_EditorClassIdentifier:
setCursorInvisibleWhenFocusLocked: 0
maxGazeCollisionDistance: 10
raycastLayerMasks:
- serializedVersion: 2
m_Bits: 4294967291
stabilizer:
storedStabilitySamples: 60
gazeTransform: {fileID: 0}
minHeadVelocityThreshold: 0.5
maxHeadVelocityThreshold: 2
useEyeTracking: 1
--- !u!114 &742817366
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 742817363}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7a21b486d0bb44444b1418aaa38b44de, type: 3}
m_Name:
m_EditorClassIdentifier:
m_HorizontalAxis: Horizontal
m_VerticalAxis: Vertical
m_SubmitButton: Submit
m_CancelButton: Cancel
m_InputActionsPerSecond: 10
m_RepeatDelay: 0.5
m_ForceModuleActive: 0
--- !u!114 &742817367
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 742817363}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_FirstSelected: {fileID: 0}
m_sendNavigationEvents: 1
m_DragThreshold: 10
--- !u!81 &742817368
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 742817363}
m_Enabled: 1
--- !u!20 &742817369
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 742817363}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 2
m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1}
m_projectionMatrixMode: 1
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_GateFitMode: 2
m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!1 &819253013
GameObject:
m_ObjectHideFlags: 0
@ -1664,59 +1794,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 819253013}
m_CullTransparentMesh: 0
--- !u!1001 &873605963
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_RootOrder
value: 6
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
--- !u!114 &873605964 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 114000013851064060, guid: b2db04283121ca74495c2ee000fb4243,
type: 3}
m_PrefabInstance: {fileID: 873605963}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: afa1ae235bc6cfa43addd1435e2fd822, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &883805531
GameObject:
m_ObjectHideFlags: 0
@ -1808,12 +1885,6 @@ Transform:
m_Father: {fileID: 1982842542}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!20 &945929371 stripped
Camera:
m_CorrespondingSourceObject: {fileID: 20049547090947856, guid: 3eddd1c29199313478dd3f912bfab2ab,
type: 3}
m_PrefabInstance: {fileID: 1102189852}
m_PrefabAsset: {fileID: 0}
--- !u!1 &947464191
GameObject:
m_ObjectHideFlags: 0
@ -1888,58 +1959,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 947464191}
m_CullTransparentMesh: 0
--- !u!1001 &1080557608
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_RootOrder
value: 4
objectReference: {fileID: 0}
- target: {fileID: 20770519707920992, guid: d29bc40b7f3df26479d6a0aac211c355,
type: 3}
propertyPath: far clip plane
value: 5
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
--- !u!20 &1080557610 stripped
Camera:
m_CorrespondingSourceObject: {fileID: 20770519707920992, guid: d29bc40b7f3df26479d6a0aac211c355,
type: 3}
m_PrefabInstance: {fileID: 1080557608}
m_PrefabAsset: {fileID: 0}
--- !u!1 &1087080640
GameObject:
m_ObjectHideFlags: 0
@ -2019,52 +2038,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1087080640}
m_CullTransparentMesh: 0
--- !u!1001 &1102189852
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_RootOrder
value: 5
objectReference: {fileID: 0}
- target: {fileID: 114742747811649402, guid: 3eddd1c29199313478dd3f912bfab2ab,
type: 3}
propertyPath: Cursor
value:
objectReference: {fileID: 873605964}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
--- !u!1 &1144110445
GameObject:
m_ObjectHideFlags: 0
@ -2233,8 +2206,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -2389,8 +2362,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -2574,7 +2547,7 @@ RectTransform:
- {fileID: 733407893}
- {fileID: 364483431}
m_Father: {fileID: 471094666}
m_RootOrder: 1
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -2690,8 +2663,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -2844,12 +2817,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1585318592}
m_CullTransparentMesh: 0
--- !u!4 &1600368325 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 4587520633816736, guid: d29bc40b7f3df26479d6a0aac211c355,
type: 3}
m_PrefabInstance: {fileID: 1080557608}
m_PrefabAsset: {fileID: 0}
--- !u!1 &1620370068
GameObject:
m_ObjectHideFlags: 0
@ -2997,8 +2964,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -3118,15 +3085,27 @@ MonoBehaviour:
m_GameObject: {fileID: 1709852081}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 981f74698cd7e5141ac933460caea805, type: 3}
m_Script: {fileID: 11500000, guid: b7e736ec19b1c5543a9bb27c150f94fb, type: 3}
m_Name:
m_EditorClassIdentifier:
OnTappedEvent:
isFocusRequired: 0
MarkEventsAsUsed: 0
OnPointerDown:
m_PersistentCalls:
m_Calls: []
m_TypeName: Microsoft.MixedReality.Toolkit.Input.PointerUnityEvent, Microsoft.MixedReality.Toolkit.SDK,
Version=2.2.0.0, Culture=neutral, PublicKeyToken=null
OnPointerUp:
m_PersistentCalls:
m_Calls: []
m_TypeName: Microsoft.MixedReality.Toolkit.Input.PointerUnityEvent, Microsoft.MixedReality.Toolkit.SDK,
Version=2.2.0.0, Culture=neutral, PublicKeyToken=null
OnPointerClicked:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 1709852086}
m_MethodName: OnTapped
m_Mode: 1
m_Mode: 0
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
@ -3135,8 +3114,13 @@ MonoBehaviour:
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
Culture=neutral, PublicKeyToken=null
m_TypeName: Microsoft.MixedReality.Toolkit.Input.PointerUnityEvent, Microsoft.MixedReality.Toolkit.SDK,
Version=2.2.0.0, Culture=neutral, PublicKeyToken=null
OnPointerDragged:
m_PersistentCalls:
m_Calls: []
m_TypeName: Microsoft.MixedReality.Toolkit.Input.PointerUnityEvent, Microsoft.MixedReality.Toolkit.SDK,
Version=2.2.0.0, Culture=neutral, PublicKeyToken=null
--- !u!114 &1709852083
MonoBehaviour:
m_ObjectHideFlags: 0
@ -3258,11 +3242,42 @@ MonoBehaviour:
markerLength: 0.188
arCube: {fileID: 883805531}
arGameObject: {fileID: 1982842541}
arCamera: {fileID: 1080557610}
arCamera: {fileID: 742817369}
enableLowPassFilter: 0
enableLowPassFilterToggle: {fileID: 364483433}
positionLowPass: 0.02
rotationLowPass: 3
--- !u!1 &1842696725
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1842696726}
m_Layer: 0
m_Name: MixedRealityPlayspace
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1842696726
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1842696725}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 742817364}
m_Father: {fileID: 0}
m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1982842541
GameObject:
m_ObjectHideFlags: 0

Двоичный файл не отображается.

Просмотреть файл

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: ca79ece223f3cb94eb0dcca05d4abd24
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 25800000
userData:
assetBundleName:
assetBundleVariant:

Просмотреть файл

@ -4,131 +4,174 @@
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: ArUcoMaterial
m_Shader: {fileID: 4800000, guid: 30a212a88e1063a428c85e50b1e427f2, type: 3}
m_ShaderKeywords: _ALPHABLEND_ON _EMISSION
m_Shader: {fileID: 4800000, guid: 5bdea20278144b11916d77503ba1467a, type: 3}
m_ShaderKeywords: _DIRECTIONAL_LIGHT _DISABLE_ALBEDO_MAP _HOVER_LIGHT _PROXIMITY_LIGHT
_SPECULAR_HIGHLIGHTS
m_LightmapFlags: 1
m_CustomRenderQueue: 3000
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: 2000
stringTagMap:
RenderType: Transparent
RenderType: Opaque
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 2
serializedVersion: 3
m_TexEnvs:
- first:
name: _BumpMap
second:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- first:
name: _DetailAlbedoMap
second:
- _ChannelMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- first:
name: _DetailMask
second:
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- first:
name: _DetailNormalMap
second:
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- first:
name: _EmissionMap
second:
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- first:
name: _MainTex
second:
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- first:
name: _MetallicGlossMap
second:
- _IridescentSpectrumMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- first:
name: _OcclusionMap
second:
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- first:
name: _ParallaxMap
second:
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- first:
name: _BumpScale
second: 1
- first:
name: _Cutoff
second: 0.5
- first:
name: _DetailNormalMapScale
second: 1
- first:
name: _DstBlend
second: 10
- first:
name: _EmissionScaleUI
second: 0
- first:
name: _GlossMapScale
second: 1
- first:
name: _Glossiness
second: 0.5
- first:
name: _GlossyReflections
second: 1
- first:
name: _Metallic
second: 0
- first:
name: _Mode
second: 2
- first:
name: _OcclusionStrength
second: 1
- first:
name: _Parallax
second: 0.02
- first:
name: _SmoothnessTextureChannel
second: 0
- first:
name: _SpecularHighlights
second: 1
- first:
name: _SrcBlend
second: 5
- first:
name: _UVSec
second: 0
- first:
name: _ZWrite
second: 0
- _AlbedoAlphaMode: 0
- _AlbedoAssignedAtRuntime: 0
- _BlendOp: 0
- _BlendedClippingWidth: 1
- _BorderLight: 0
- _BorderLightOpaque: 0
- _BorderLightOpaqueAlpha: 1
- _BorderLightReplacesAlbedo: 0
- _BorderLightUsesHoverColor: 0
- _BorderMinValue: 0.1
- _BorderWidth: 0.1
- _BumpScale: 1
- _ClippingBorder: 0
- _ClippingBorderWidth: 0.025
- _ColorWriteMask: 15
- _CullMode: 2
- _CustomMode: 0
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DirectionalLight: 1
- _DstBlend: 0
- _EdgeSmoothingValue: 0.002
- _EmissionScaleUI: 0
- _EnableChannelMap: 0
- _EnableEmission: 0
- _EnableHoverColorOverride: 0
- _EnableLocalSpaceTriplanarMapping: 0
- _EnableNormalMap: 0
- _EnableProximityLightColorOverride: 0
- _EnableTriplanarMapping: 0
- _EnvironmentColorIntensity: 0.5
- _EnvironmentColorThreshold: 1.5
- _EnvironmentColoring: 0
- _FadeBeginDistance: 0.85
- _FadeCompleteDistance: 0.5
- _FadeMinValue: 0
- _FluentLightIntensity: 1
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _HoverLight: 1
- _IgnoreZScale: 0
- _InnerGlow: 0
- _InnerGlowPower: 4
- _InstancedColor: 0
- _Iridescence: 0
- _IridescenceAngle: -0.78
- _IridescenceIntensity: 0.5
- _IridescenceThreshold: 0.05
- _Metallic: 0
- _Mode: 0
- _NearLightFade: 0
- _NearPlaneFade: 0
- _NormalMapScale: 1
- _OcclusionStrength: 1
- _Parallax: 0.02
- _ProximityLight: 1
- _ProximityLightSubtractive: 0
- _ProximityLightTwoSided: 0
- _Reflections: 0
- _Refraction: 0
- _RefractiveIndex: 0
- _RenderQueueOverride: -1
- _RimLight: 0
- _RimPower: 0.25
- _RoundCornerMargin: 0.01
- _RoundCornerRadius: 0.25
- _RoundCorners: 0
- _Smoothness: 0.5
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SphericalHarmonics: 0
- _SrcBlend: 1
- _Stencil: 0
- _StencilComparison: 0
- _StencilOperation: 0
- _StencilReference: 0
- _TriplanarMappingBlendSharpness: 4
- _UVSec: 0
- _VertexColors: 0
- _VertexExtrusion: 0
- _VertexExtrusionSmoothNormals: 0
- _VertexExtrusionValue: 0
- _WireThickness: 100
- _ZOffsetFactor: 0
- _ZOffsetUnits: 0
- _ZTest: 4
- _ZWrite: 1
m_Colors:
- first:
name: _Color
second: {r: 1, g: 0, b: 0, a: 1}
- first:
name: _EmissionColor
second: {r: 0, g: 0, b: 0, a: 1}
- first:
name: _EmissionColorUI
second: {r: 1, g: 1, b: 1, a: 1}
- _BaseColor: {r: 0, g: 0, b: 0, a: 1}
- _ClippingBorderColor: {r: 1, g: 0.2, b: 0, a: 1}
- _Color: {r: 1, g: 0, b: 0, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _EmissionColorUI: {r: 1, g: 1, b: 1, a: 1}
- _EmissiveColor: {r: 0, g: 0, b: 0, a: 1}
- _EnvironmentColorX: {r: 1, g: 0, b: 0, a: 1}
- _EnvironmentColorY: {r: 0, g: 1, b: 0, a: 1}
- _EnvironmentColorZ: {r: 0, g: 0, b: 1, a: 1}
- _HoverColorOverride: {r: 1, g: 1, b: 1, a: 1}
- _InnerGlowColor: {r: 1, g: 1, b: 1, a: 0.75}
- _ProximityLightCenterColorOverride: {r: 1, g: 0, b: 0, a: 0}
- _ProximityLightMiddleColorOverride: {r: 0, g: 1, b: 0, a: 0.5}
- _ProximityLightOuterColorOverride: {r: 0, g: 0, b: 1, a: 1}
- _RimColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
- _WireColor: {r: 1, g: 1, b: 1, a: 1}

Просмотреть файл

@ -1,33 +0,0 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
#if UNITY_2017_2_OR_NEWER
using UnityEngine.XR.WSA.Input;
#else
using UnityEngine.VR.WSA.Input;
#endif
namespace HoloLensWithOpenCVForUnityExample
{
public class TapInput : MonoBehaviour
{
public UnityEvent OnTappedEvent;
GestureRecognizer recognizer;
void Awake ()
{
recognizer = new GestureRecognizer ();
#if UNITY_2017_2_OR_NEWER
recognizer.Tapped += (args) => {
#else
recognizer.TappedEvent += (source, tapCount, ray) => {
#endif
OnTappedEvent.Invoke ();
};
recognizer.StartCapturingGestures ();
}
}
}

Просмотреть файл

@ -1,12 +0,0 @@
fileFormatVersion: 2
guid: 981f74698cd7e5141ac933460caea805
timeCreated: 1497972878
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

Просмотреть файл

@ -0,0 +1,176 @@
using OpenCVForUnity.CoreModule;
using OpenCVForUnity.ImgprocModule;
using OpenCVForUnity.UnityUtils;
using System;
namespace HoloLensWithOpenCVForUnityExample
{
public class ComicFilter
{
Mat grayMat;
Mat maskMat;
Mat screentoneMat;
Mat grayDstMat;
Mat grayLUT;
Mat contrastAdjustmentsLUT;
Mat kernel_dilate;
Mat kernel_erode;
Size blurSize;
int blackThresh;
bool drawMainLine;
bool useNoiseFilter;
public ComicFilter(int blackThresh = 60, int grayThresh = 120, int thickness = 5, bool useNoiseFilter = true)
{
this.blackThresh = blackThresh;
this.drawMainLine = (thickness != 0);
this.useNoiseFilter = useNoiseFilter;
grayLUT = new Mat(1, 256, CvType.CV_8UC1);
byte[] lutArray = new byte[256];
for (int i = 0; i < lutArray.Length; i++)
{
if (blackThresh <= i && i < grayThresh)
lutArray[i] = 255;
}
Utils.copyToMat(lutArray, grayLUT);
if (drawMainLine)
{
kernel_dilate = new Mat(thickness, thickness, CvType.CV_8UC1, new Scalar(1));
int erode = (thickness >= 5) ? 2 : 1;
kernel_erode = new Mat(erode, erode, CvType.CV_8UC1, new Scalar(1));
int blur = (thickness >= 4) ? thickness - 1 : 3;
blurSize = new Size(blur, blur);
contrastAdjustmentsLUT = new Mat(1, 256, CvType.CV_8UC1);
byte[] contrastAdjustmentsLUTArray = new byte[256];
for (int i = 0; i < contrastAdjustmentsLUTArray.Length; i++)
{
int a = (int)(i * 1.5f);
contrastAdjustmentsLUTArray[i] = (a > byte.MaxValue) ? (byte)255 : (byte)a;
}
Utils.copyToMat(contrastAdjustmentsLUTArray, contrastAdjustmentsLUT);
}
}
public void Process(Mat src, Mat dst, bool isBGR = false)
{
if (src == null)
throw new ArgumentNullException("src == null");
if (dst == null)
throw new ArgumentNullException("dst == null");
if (grayMat != null && (grayMat.width() != src.width() || grayMat.height() != src.height()))
{
grayMat.Dispose();
grayMat = null;
maskMat.Dispose();
maskMat = null;
screentoneMat.Dispose();
screentoneMat = null;
grayDstMat.Dispose();
grayDstMat = null;
}
grayMat = grayMat ?? new Mat(src.height(), src.width(), CvType.CV_8UC1);
maskMat = maskMat ?? new Mat(src.height(), src.width(), CvType.CV_8UC1);
grayDstMat = grayDstMat ?? new Mat(src.height(), src.width(), CvType.CV_8UC1);
if (screentoneMat == null)
{
// create a striped screentone.
screentoneMat = new Mat(src.height(), src.width(), CvType.CV_8UC1, new Scalar(255));
for (int i = 0; i < screentoneMat.rows() * 2.5f; i = i + 4)
{
Imgproc.line(screentoneMat, new Point(0, 0 + i), new Point(screentoneMat.cols(), -screentoneMat.cols() + i), new Scalar(0), 1);
}
}
if (src.type() == CvType.CV_8UC1)
{
src.copyTo(grayMat);
}
else if (dst.type() == CvType.CV_8UC3)
{
Imgproc.cvtColor(src, grayMat, (isBGR) ? Imgproc.COLOR_BGR2GRAY : Imgproc.COLOR_RGB2GRAY);
}
else
{
Imgproc.cvtColor(src, grayMat, (isBGR) ? Imgproc.COLOR_BGRA2GRAY : Imgproc.COLOR_RGBA2GRAY);
}
// binarize.
Imgproc.threshold(grayMat, grayDstMat, blackThresh, 255.0, Imgproc.THRESH_BINARY);
// draw striped screentone.
Core.LUT(grayMat, grayLUT, maskMat);
screentoneMat.copyTo(grayDstMat, maskMat);
// draw main line.
if (drawMainLine)
{
Core.LUT(grayMat, contrastAdjustmentsLUT, maskMat); // = grayMat.convertTo(maskMat, -1, 1.5, 0);
if (useNoiseFilter)
{
Imgproc.blur(maskMat, grayMat, blurSize);
Imgproc.dilate(grayMat, maskMat, kernel_dilate);
}
else
{
Imgproc.dilate(maskMat, grayMat, kernel_dilate);
}
Core.absdiff(grayMat, maskMat, grayMat);
Imgproc.threshold(grayMat, maskMat, 25, 255.0, Imgproc.THRESH_BINARY);
if (useNoiseFilter)
{
Imgproc.erode(maskMat, grayMat, kernel_erode);
Core.bitwise_not(grayMat, maskMat);
maskMat.copyTo(grayDstMat, grayMat);
}
else
{
Core.bitwise_not(maskMat, grayMat);
grayMat.copyTo(grayDstMat, maskMat);
}
}
if (dst.type() == CvType.CV_8UC1)
{
grayDstMat.copyTo(dst);
}
else if (dst.type() == CvType.CV_8UC3)
{
Imgproc.cvtColor(grayDstMat, dst, (isBGR) ? Imgproc.COLOR_GRAY2BGR : Imgproc.COLOR_GRAY2RGB);
}
else
{
Imgproc.cvtColor(grayDstMat, dst, (isBGR) ? Imgproc.COLOR_GRAY2BGRA : Imgproc.COLOR_GRAY2RGBA);
}
}
public void Dispose()
{
foreach (var mat in new[] { grayMat, maskMat, screentoneMat, grayDstMat, grayLUT, kernel_dilate, kernel_erode, contrastAdjustmentsLUT })
if (mat != null) mat.Dispose();
grayDstMat =
screentoneMat =
maskMat =
grayMat =
grayLUT =
kernel_dilate =
kernel_erode =
contrastAdjustmentsLUT = null;
}
}
}

Просмотреть файл

@ -1,7 +1,5 @@
fileFormatVersion: 2
guid: 73025f72685c8e1429450d87c5bfcda5
timeCreated: 1531666809
licenseType: Free
guid: e3086f3bb9356eb409e5325bed91cf4d
MonoImporter:
externalObjects: {}
serializedVersion: 2

Просмотреть файл

@ -1,6 +1,8 @@
using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using OpenCVForUnity.CoreModule;
using OpenCVForUnity.ImgprocModule;
using OpenCVForUnity.UnityUtils.Helper;
@ -16,42 +18,12 @@ namespace HoloLensWithOpenCVForUnityExample
/// Referring to http://dev.classmethod.jp/smartphone/opencv-manga-2/.
/// </summary>
[RequireComponent(typeof(HololensCameraStreamToMatHelper))]
public class HoloLensComicFilterExample : ExampleSceneBase
public class HoloLensComicFilterExample : MonoBehaviour
{
/// <summary>
/// The gray mat.
/// The comic filter.
/// </summary>
Mat grayMat;
/// <summary>
/// The line mat.
/// </summary>
Mat lineMat;
/// <summary>
/// The mask mat.
/// </summary>
Mat maskMat;
/// <summary>
/// The background mat.
/// </summary>
Mat bgMat;
/// <summary>
/// The dst mat.
/// </summary>
Mat dstMat;
/// <summary>
/// The gray pixels.
/// </summary>
byte[] grayPixels;
/// <summary>
/// The mask pixels.
/// </summary>
byte[] maskPixels;
ComicFilter comicFilter;
/// <summary>
/// The texture.
@ -68,25 +40,21 @@ namespace HoloLensWithOpenCVForUnityExample
/// </summary>
HololensCameraStreamToMatHelper webCamTextureToMatHelper;
Rect processingAreaRect;
public Vector2 outsideClippingRatio = new Vector2(0.17f, 0.19f);
public Vector2 clippingOffset = new Vector2(0.043f, -0.025f);
public float vignetteScale = 1.5f;
Mat dstMatClippingROI;
public Slider VignetteScaleSlider;
readonly static Queue<Action> ExecuteOnMainThread = new Queue<Action>();
// Use this for initialization
protected override void Start ()
protected void Start ()
{
base.Start ();
webCamTextureToMatHelper = gameObject.GetComponent<HololensCameraStreamToMatHelper> ();
#if WINDOWS_UWP && !DISABLE_HOLOLENSCAMSTREAM_API
webCamTextureToMatHelper.frameMatAcquired += OnFrameMatAcquired;
#endif
webCamTextureToMatHelper.Initialize ();
VignetteScaleSlider.value = vignetteScale;
}
/// <summary>
@ -110,36 +78,10 @@ namespace HoloLensWithOpenCVForUnityExample
Debug.Log ("Screen.width " + Screen.width + " Screen.height " + Screen.height + " Screen.orientation " + Screen.orientation);
processingAreaRect = new Rect ((int)(webCamTextureMat.cols ()*(outsideClippingRatio.x - clippingOffset.x)), (int)(webCamTextureMat.rows ()*(outsideClippingRatio.y + clippingOffset.y)),
(int)(webCamTextureMat.cols ()*(1f-outsideClippingRatio.x*2)), (int)(webCamTextureMat.rows ()*(1f-outsideClippingRatio.y*2)));
processingAreaRect = processingAreaRect.intersect (new Rect(0,0,webCamTextureMat.cols (),webCamTextureMat.rows ()));
dstMat = new Mat (webCamTextureMat.rows (), webCamTextureMat.cols (), CvType.CV_8UC1);
dstMatClippingROI = new Mat (dstMat, processingAreaRect);
// fill all black.
//Imgproc.rectangle (dstMat, new Point (0, 0), new Point (dstMat.width (), dstMat.height ()), new Scalar (0, 0, 0, 0), -1);
grayMat = new Mat (dstMatClippingROI.rows (), dstMatClippingROI.cols (), CvType.CV_8UC1);
lineMat = new Mat (dstMatClippingROI.rows (), dstMatClippingROI.cols (), CvType.CV_8UC1);
maskMat = new Mat (dstMatClippingROI.rows (), dstMatClippingROI.cols (), CvType.CV_8UC1);
//create a striped background.
bgMat = new Mat (dstMatClippingROI.rows (), dstMatClippingROI.cols (), CvType.CV_8UC1, new Scalar (255));
for (int i = 0; i < bgMat.rows ()*2.5f; i=i+4) {
Imgproc.line (bgMat, new Point (0, 0 + i), new Point (bgMat.cols (), -bgMat.cols () + i), new Scalar (0), 1);
}
grayPixels = new byte[grayMat.cols () * grayMat.rows () * grayMat.channels ()];
maskPixels = new byte[maskMat.cols () * maskMat.rows () * maskMat.channels ()];
comicFilter = new ComicFilter(60, 120, 3);
quad_renderer = gameObject.GetComponent<Renderer> () as Renderer;
quad_renderer.sharedMaterial.SetTexture ("_MainTex", texture);
quad_renderer.sharedMaterial.SetVector ("_VignetteOffset", new Vector4(clippingOffset.x, clippingOffset.y));
Matrix4x4 projectionMatrix;
#if WINDOWS_UWP && !DISABLE_HOLOLENSCAMSTREAM_API
@ -175,10 +117,6 @@ namespace HoloLensWithOpenCVForUnityExample
float aspectRatio = (1.0f / Mathf.Tan (halfOfVerticalFov)) / projectionMatrix.m00;
Debug.Log ("halfOfVerticalFov " + halfOfVerticalFov);
Debug.Log ("aspectRatio " + aspectRatio);
//
//Imgproc.rectangle (dstMat, new Point (0, 0), new Point (webCamTextureMat.width (), webCamTextureMat.height ()), new Scalar (126, 126, 126, 255), -1);
//
}
/// <summary>
@ -193,16 +131,7 @@ namespace HoloLensWithOpenCVForUnityExample
ExecuteOnMainThread.Clear();
}
grayMat.Dispose ();
lineMat.Dispose ();
maskMat.Dispose ();
bgMat.Dispose ();
dstMat.Dispose ();
dstMatClippingROI.Dispose ();
grayPixels = null;
maskPixels = null;
comicFilter.Dispose();
}
/// <summary>
@ -213,59 +142,13 @@ namespace HoloLensWithOpenCVForUnityExample
Debug.Log ("OnWebCamTextureToMatHelperErrorOccurred " + errorCode);
}
#if WINDOWS_UWP && !DISABLE_HOLOLENSCAMSTREAM_API
#if WINDOWS_UWP && !DISABLE_HOLOLENSCAMSTREAM_API
public void OnFrameMatAcquired (Mat bgraMat, Matrix4x4 projectionMatrix, Matrix4x4 cameraToWorldMatrix)
{
Mat bgraMatClipROI = new Mat(bgraMat, processingAreaRect);
comicFilter.Process(bgraMat, bgraMat, true);
Imgproc.cvtColor (bgraMatClipROI, grayMat, Imgproc.COLOR_BGRA2GRAY);
//Imgproc.putText (bgraMat, "W:" + bgraMat.width () + " H:" + bgraMat.height () + " SO:" + Screen.orientation, new Point (5, bgraMat.rows () - 10), Imgproc.FONT_HERSHEY_SIMPLEX, 1.0, new Scalar (0), 2, Imgproc.LINE_AA, false);
bgMat.copyTo (dstMatClippingROI);
Imgproc.GaussianBlur (grayMat, lineMat, new Size (3, 3), 0);
grayMat.get (0, 0, grayPixels);
for (int i = 0; i < grayPixels.Length; i++) {
maskPixels [i] = 0;
if (grayPixels [i] < 70) {
grayPixels [i] = 0;
maskPixels [i] = 1;
} else if (70 <= grayPixels [i] && grayPixels [i] < 120) {
grayPixels [i] = 100;
} else {
grayPixels [i] = 255;
maskPixels [i] = 1;
}
}
grayMat.put (0, 0, grayPixels);
maskMat.put (0, 0, maskPixels);
grayMat.copyTo (dstMatClippingROI, maskMat);
Imgproc.Canny (lineMat, lineMat, 20, 120);
lineMat.copyTo (maskMat);
Core.bitwise_not (lineMat, lineMat);
lineMat.copyTo (dstMatClippingROI, maskMat);
//Imgproc.putText (dstMat, "W:" + dstMat.width () + " H:" + dstMat.height () + " SO:" + Screen.orientation, new Point (5, dstMat.rows () - 10), Imgproc.FONT_HERSHEY_SIMPLEX, 1.0, new Scalar (0), 2, Imgproc.LINE_AA, false);
Imgproc.cvtColor(dstMat, bgraMat, Imgproc.COLOR_GRAY2BGRA);
//
//Imgproc.rectangle (bgraMat, new Point (0, 0), new Point (bgraMat.width (), bgraMat.height ()), new Scalar (0, 0, 255, 255), 4);
//Imgproc.rectangle (bgraMat, processingAreaRect.tl(), processingAreaRect.br(), new Scalar (0, 0, 255, 255), 4);
//
bgraMatClipROI.Dispose ();
Enqueue(() => {
@ -280,8 +163,7 @@ namespace HoloLensWithOpenCVForUnityExample
// Position the canvas object slightly in front
// of the real world web camera.
Vector3 position = cameraToWorldMatrix.GetColumn (3) - cameraToWorldMatrix.GetColumn (2);
position *= 2.2f;
Vector3 position = cameraToWorldMatrix.GetColumn(3) - cameraToWorldMatrix.GetColumn(2) * 2.2f;
// Rotate the canvas object so that it faces the user.
Quaternion rotation = Quaternion.LookRotation (-cameraToWorldMatrix.GetColumn (2), cameraToWorldMatrix.GetColumn (1));
@ -311,7 +193,7 @@ namespace HoloLensWithOpenCVForUnityExample
}
}
#else
#else
// Update is called once per frame
void Update ()
@ -320,63 +202,13 @@ namespace HoloLensWithOpenCVForUnityExample
Mat rgbaMat = webCamTextureToMatHelper.GetMat ();
Mat rgbaMatClipROI = new Mat(rgbaMat, processingAreaRect);
comicFilter.Process(rgbaMat, rgbaMat, false);
Imgproc.cvtColor (rgbaMatClipROI, grayMat, Imgproc.COLOR_RGBA2GRAY);
//Imgproc.putText (rgbaMat, "W:" + rgbaMat.width () + " H:" + rgbaMat.height () + " SO:" + Screen.orientation, new Point (5, rgbaMat.rows () - 10), Imgproc.FONT_HERSHEY_SIMPLEX, 1.0, new Scalar (0), 2, Imgproc.LINE_AA, false);
bgMat.copyTo (dstMatClippingROI);
Imgproc.GaussianBlur (grayMat, lineMat, new Size (3, 3), 0);
grayMat.get (0, 0, grayPixels);
for (int i = 0; i < grayPixels.Length; i++) {
maskPixels [i] = 0;
if (grayPixels [i] < 70) {
grayPixels[i] = 0;
maskPixels [i] = 1;
} else if (70 <= grayPixels [i] && grayPixels [i] < 120) {
grayPixels [i] = 100;
} else {
grayPixels[i] = 255;
maskPixels [i] = 1;
}
}
grayMat.put (0, 0, grayPixels);
maskMat.put (0, 0, maskPixels);
grayMat.copyTo (dstMatClippingROI, maskMat);
Imgproc.Canny (lineMat, lineMat, 20, 120);
lineMat.copyTo (maskMat);
Core.bitwise_not (lineMat, lineMat);
lineMat.copyTo (dstMatClippingROI, maskMat);
//Imgproc.putText (dstMat, "W:" + dstMat.width () + " H:" + dstMat.height () + " SO:" + Screen.orientation, new Point (5, dstMat.rows () - 10), Imgproc.FONT_HERSHEY_SIMPLEX, 1.0, new Scalar (0), 2, Imgproc.LINE_AA, false);
Imgproc.cvtColor(dstMat, rgbaMat, Imgproc.COLOR_GRAY2RGBA);
//
//Imgproc.rectangle (rgbaMat, new Point (0, 0), new Point (rgbaMat.width (), rgbaMat.height ()), new Scalar (255, 0, 0, 255), 4);
//Imgproc.rectangle (rgbaMat, processingAreaRect.tl(), processingAreaRect.br(), new Scalar (255, 0, 0, 255), 4);
//
//
Utils.fastMatToTexture2D(rgbaMat, texture);
rgbaMatClipROI.Dispose ();
}
if (webCamTextureToMatHelper.IsPlaying ()) {
Matrix4x4 cameraToWorldMatrix = webCamTextureToMatHelper.GetCameraToWorldMatrix();
@ -386,8 +218,7 @@ namespace HoloLensWithOpenCVForUnityExample
// Position the canvas object slightly in front
// of the real world web camera.
Vector3 position = cameraToWorldMatrix.GetColumn (3) - cameraToWorldMatrix.GetColumn (2);
position *= 2.2f;
Vector3 position = cameraToWorldMatrix.GetColumn(3) - cameraToWorldMatrix.GetColumn(2) * 2.2f;
// Rotate the canvas object so that it faces the user.
Quaternion rotation = Quaternion.LookRotation (-cameraToWorldMatrix.GetColumn (2), cameraToWorldMatrix.GetColumn (1));
@ -395,7 +226,6 @@ namespace HoloLensWithOpenCVForUnityExample
gameObject.transform.position = position;
gameObject.transform.rotation = rotation;
}
}
#endif
@ -415,7 +245,7 @@ namespace HoloLensWithOpenCVForUnityExample
/// </summary>
public void OnBackButtonClick ()
{
LoadScene ("HoloLensWithOpenCVForUnityExample");
SceneManager.LoadScene("HoloLensWithOpenCVForUnityExample");
}
/// <summary>
@ -449,5 +279,16 @@ namespace HoloLensWithOpenCVForUnityExample
{
webCamTextureToMatHelper.requestedIsFrontFacing = !webCamTextureToMatHelper.IsFrontFacing();
}
/// <summary>
/// Raises the vignette scale slider value changed event.
/// </summary>
public void OnVignetteScaleSliderValueChanged()
{
vignetteScale = VignetteScaleSlider.value;
if (quad_renderer != null)
quad_renderer.sharedMaterial.SetFloat("_VignetteScale", vignetteScale);
}
}
}

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Threading;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using OpenCVForUnity.RectangleTrack;
using OpenCVForUnity.CoreModule;
using OpenCVForUnity.ObjdetectModule;
@ -20,7 +21,7 @@ namespace HoloLensWithOpenCVForUnityExample
/// Referring to https://github.com/Itseez/opencv/blob/master/modules/objdetect/src/detection_based_tracker.cpp.
/// </summary>
[RequireComponent(typeof(HololensCameraStreamToMatHelper))]
public class HoloLensFaceDetectionExample : ExampleSceneBase
public class HoloLensFaceDetectionExample : MonoBehaviour
{
/// <summary>
/// Determines if enables the detection.
@ -97,67 +98,86 @@ namespace HoloLensWithOpenCVForUnityExample
/// </summary>
List<Rect> detectionResult = new List<Rect>();
#if WINDOWS_UWP && !DISABLE_HOLOLENSCAMSTREAM_API
#if WINDOWS_UWP && !DISABLE_HOLOLENSCAMSTREAM_API
int CVTCOLOR_CODE = Imgproc.COLOR_BGRA2GRAY;
Scalar COLOR_RED = new Scalar(0, 0, 255, 255);
Scalar COLOR_GREEN = new Scalar(0, 255, 0, 255);
Scalar COLOR_BLUE = new Scalar(255, 0, 0, 255);
#else
#else
int CVTCOLOR_CODE = Imgproc.COLOR_RGBA2GRAY;
Scalar COLOR_RED = new Scalar(255, 0, 0, 255);
Scalar COLOR_GREEN = new Scalar(0, 255, 0, 255);
Scalar COLOR_BLUE = new Scalar(0, 0, 255, 255);
#endif
#endif
Mat grayMat4Thread;
CascadeClassifier cascade4Thread;
readonly static Queue<Action> ExecuteOnMainThread = new Queue<Action>();
System.Object sync = new System.Object ();
System.Object sync = new System.Object();
bool _isThreadRunning = false;
bool isThreadRunning {
get { lock (sync)
return _isThreadRunning; }
set { lock (sync)
_isThreadRunning = value; }
bool isThreadRunning
{
get
{
lock (sync)
return _isThreadRunning;
}
set
{
lock (sync)
_isThreadRunning = value;
}
}
RectangleTracker rectangleTracker;
float coeffTrackingWindowSize = 2.0f;
float coeffObjectSizeToTrack = 0.85f;
List<Rect> detectedObjectsInRegions = new List<Rect> ();
List<Rect> resultObjects = new List<Rect> ();
List<Rect> detectedObjectsInRegions = new List<Rect>();
List<Rect> resultObjects = new List<Rect>();
bool _isDetecting = false;
bool isDetecting {
get { lock (sync)
return _isDetecting; }
set { lock (sync)
_isDetecting = value; }
bool isDetecting
{
get
{
lock (sync)
return _isDetecting;
}
set
{
lock (sync)
_isDetecting = value;
}
}
bool _hasUpdatedDetectionResult = false;
bool hasUpdatedDetectionResult {
get { lock (sync)
return _hasUpdatedDetectionResult; }
set { lock (sync)
_hasUpdatedDetectionResult = value; }
bool hasUpdatedDetectionResult
{
get
{
lock (sync)
return _hasUpdatedDetectionResult;
}
set
{
lock (sync)
_hasUpdatedDetectionResult = value;
}
}
// Use this for initialization
protected override void Start ()
protected void Start()
{
base.Start ();
imageOptimizationHelper = gameObject.GetComponent<ImageOptimizationHelper>();
webCamTextureToMatHelper = gameObject.GetComponent<HololensCameraStreamToMatHelper> ();
#if WINDOWS_UWP && !DISABLE_HOLOLENSCAMSTREAM_API
webCamTextureToMatHelper = gameObject.GetComponent<HololensCameraStreamToMatHelper>();
#if WINDOWS_UWP && !DISABLE_HOLOLENSCAMSTREAM_API
webCamTextureToMatHelper.frameMatAcquired += OnFrameMatAcquired;
#endif
webCamTextureToMatHelper.Initialize ();
#endif
webCamTextureToMatHelper.Initialize();
rectangleTracker = new RectangleTracker ();
rectangleTracker = new RectangleTracker();
useSeparateDetectionToggle.isOn = useSeparateDetection;
@ -168,32 +188,32 @@ namespace HoloLensWithOpenCVForUnityExample
/// <summary>
/// Raises the web cam texture to mat helper initialized event.
/// </summary>
public void OnWebCamTextureToMatHelperInitialized ()
public void OnWebCamTextureToMatHelperInitialized()
{
Debug.Log ("OnWebCamTextureToMatHelperInitialized");
Debug.Log("OnWebCamTextureToMatHelperInitialized");
Mat webCamTextureMat = webCamTextureToMatHelper.GetMat ();
Mat webCamTextureMat = webCamTextureToMatHelper.GetMat();
#if WINDOWS_UWP && !DISABLE_HOLOLENSCAMSTREAM_API
#if WINDOWS_UWP && !DISABLE_HOLOLENSCAMSTREAM_API
// HololensCameraStream always returns image data in BGRA format.
texture = new Texture2D (webCamTextureMat.cols (), webCamTextureMat.rows (), TextureFormat.BGRA32, false);
#else
texture = new Texture2D (webCamTextureMat.cols (), webCamTextureMat.rows (), TextureFormat.RGBA32, false);
#endif
#else
texture = new Texture2D(webCamTextureMat.cols(), webCamTextureMat.rows(), TextureFormat.RGBA32, false);
#endif
texture.wrapMode = TextureWrapMode.Clamp;
Debug.Log ("Screen.width " + Screen.width + " Screen.height " + Screen.height + " Screen.orientation " + Screen.orientation);
Debug.Log("Screen.width " + Screen.width + " Screen.height " + Screen.height + " Screen.orientation " + Screen.orientation);
quad_renderer = gameObject.GetComponent<Renderer> () as Renderer;
quad_renderer.sharedMaterial.SetTexture ("_MainTex", texture);
quad_renderer.sharedMaterial.SetVector ("_VignetteOffset", new Vector4(0, 0));
quad_renderer = gameObject.GetComponent<Renderer>() as Renderer;
quad_renderer.sharedMaterial.SetTexture("_MainTex", texture);
quad_renderer.sharedMaterial.SetVector("_VignetteOffset", new Vector4(0, 0));
Matrix4x4 projectionMatrix;
#if WINDOWS_UWP && !DISABLE_HOLOLENSCAMSTREAM_API
#if WINDOWS_UWP && !DISABLE_HOLOLENSCAMSTREAM_API
projectionMatrix = webCamTextureToMatHelper.GetProjectionMatrix ();
quad_renderer.sharedMaterial.SetMatrix ("_CameraProjectionMatrix", projectionMatrix);
#else
#else
//This value is obtained from PhotoCapture's TryGetProjectionMatrix() method.I do not know whether this method is good.
//Please see the discussion of this thread.Https://forums.hololens.com/discussion/782/live-stream-of-locatable-camera-webcam-in-unity
projectionMatrix = Matrix4x4.identity;
@ -213,74 +233,76 @@ namespace HoloLensWithOpenCVForUnityExample
projectionMatrix.m31 = 0.00000f;
projectionMatrix.m32 = -1.00000f;
projectionMatrix.m33 = 0.00000f;
quad_renderer.sharedMaterial.SetMatrix ("_CameraProjectionMatrix", projectionMatrix);
#endif
quad_renderer.sharedMaterial.SetMatrix("_CameraProjectionMatrix", projectionMatrix);
#endif
quad_renderer.sharedMaterial.SetFloat ("_VignetteScale", 0.0f);
quad_renderer.sharedMaterial.SetFloat("_VignetteScale", 0.0f);
grayMat = new Mat ();
cascade = new CascadeClassifier ();
cascade.load (Utils.getFilePath ("lbpcascade_frontalface.xml"));
#if !UNITY_WSA_10_0 || UNITY_EDITOR
grayMat = new Mat();
cascade = new CascadeClassifier();
cascade.load(Utils.getFilePath("lbpcascade_frontalface.xml"));
#if !UNITY_WSA_10_0 || UNITY_EDITOR
// "empty" method is not working on the UWP platform.
if (cascade.empty())
{
Debug.LogError("cascade file is not loaded. Please copy from “OpenCVForUnity/StreamingAssets/” to “Assets/StreamingAssets/” folder. ");
}
#endif
#endif
grayMat4Thread = new Mat ();
cascade4Thread = new CascadeClassifier ();
cascade4Thread.load (Utils.getFilePath ("haarcascade_frontalface_alt.xml"));
#if !UNITY_WSA_10_0 || UNITY_EDITOR
grayMat4Thread = new Mat();
cascade4Thread = new CascadeClassifier();
cascade4Thread.load(Utils.getFilePath("haarcascade_frontalface_alt.xml"));
#if !UNITY_WSA_10_0 || UNITY_EDITOR
// "empty" method is not working on the UWP platform.
if (cascade4Thread.empty())
{
Debug.LogError("cascade file is not loaded. Please copy from “OpenCVForUnity/StreamingAssets/” to “Assets/StreamingAssets/” folder. ");
}
#endif
#endif
}
/// <summary>
/// Raises the web cam texture to mat helper disposed event.
/// </summary>
public void OnWebCamTextureToMatHelperDisposed ()
public void OnWebCamTextureToMatHelperDisposed()
{
Debug.Log ("OnWebCamTextureToMatHelperDisposed");
Debug.Log("OnWebCamTextureToMatHelperDisposed");
StopThread ();
lock (ExecuteOnMainThread) {
ExecuteOnMainThread.Clear ();
StopThread();
lock (ExecuteOnMainThread)
{
ExecuteOnMainThread.Clear();
}
hasUpdatedDetectionResult = false;
isDetecting = false;
if (grayMat != null)
grayMat.Dispose ();
grayMat.Dispose();
if (cascade != null)
cascade.Dispose ();
cascade.Dispose();
if (grayMat4Thread != null)
grayMat4Thread.Dispose ();
grayMat4Thread.Dispose();
if (cascade4Thread != null)
cascade4Thread.Dispose ();
cascade4Thread.Dispose();
rectangleTracker.Reset ();
rectangleTracker.Reset();
}
/// <summary>
/// Raises the web cam texture to mat helper error occurred event.
/// </summary>
/// <param name="errorCode">Error code.</param>
public void OnWebCamTextureToMatHelperErrorOccurred(WebCamTextureToMatHelper.ErrorCode errorCode){
Debug.Log ("OnWebCamTextureToMatHelperErrorOccurred " + errorCode);
public void OnWebCamTextureToMatHelperErrorOccurred(WebCamTextureToMatHelper.ErrorCode errorCode)
{
Debug.Log("OnWebCamTextureToMatHelperErrorOccurred " + errorCode);
}
#if WINDOWS_UWP && !DISABLE_HOLOLENSCAMSTREAM_API
public void OnFrameMatAcquired (Mat bgraMat, Matrix4x4 projectionMatrix, Matrix4x4 cameraToWorldMatrix)
#if WINDOWS_UWP && !DISABLE_HOLOLENSCAMSTREAM_API
public void OnFrameMatAcquired(Mat bgraMat, Matrix4x4 projectionMatrix, Matrix4x4 cameraToWorldMatrix)
{
Mat downScaleMat = null;
float DOWNSCALE_RATIO;
@ -295,44 +317,50 @@ namespace HoloLensWithOpenCVForUnityExample
DOWNSCALE_RATIO = 1.0f;
}
Imgproc.cvtColor (downScaleMat, grayMat, CVTCOLOR_CODE);
Imgproc.equalizeHist (grayMat, grayMat);
if (enableDetection && !isDetecting ) {
Imgproc.cvtColor(downScaleMat, grayMat, CVTCOLOR_CODE);
Imgproc.equalizeHist(grayMat, grayMat);
if (enableDetection && !isDetecting)
{
isDetecting = true;
grayMat.copyTo (grayMat4Thread);
System.Threading.Tasks.Task.Run(() => {
grayMat.copyTo(grayMat4Thread);
System.Threading.Tasks.Task.Run(() =>
{
isThreadRunning = true;
DetectObject(grayMat4Thread, out detectionResult, cascade4Thread);
isThreadRunning = false;
OnDetectionDone ();
OnDetectionDone();
});
}
if (!displayCameraImage) {
if (!displayCameraImage)
{
// fill all black.
Imgproc.rectangle (bgraMat, new Point (0, 0), new Point (bgraMat.width (), bgraMat.height ()), new Scalar (0, 0, 0, 0), -1);
Imgproc.rectangle(bgraMat, new Point(0, 0), new Point(bgraMat.width(), bgraMat.height()), new Scalar(0, 0, 0, 0), -1);
}
if (!useSeparateDetection) {
if (hasUpdatedDetectionResult) {
if (!useSeparateDetection)
{
if (hasUpdatedDetectionResult)
{
hasUpdatedDetectionResult = false;
lock (rectangleTracker) {
rectangleTracker.UpdateTrackedObjects (detectionResult);
lock (rectangleTracker)
{
rectangleTracker.UpdateTrackedObjects(detectionResult);
}
}
lock (rectangleTracker) {
rectangleTracker.GetObjects (resultObjects, true);
lock (rectangleTracker)
{
rectangleTracker.GetObjects(resultObjects, true);
}
int len = resultObjects.Count;
@ -353,45 +381,52 @@ namespace HoloLensWithOpenCVForUnityExample
Imgproc.rectangle(bgraMat, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), COLOR_RED, 2);
}
}
else {
else
{
Rect[] rectsWhereRegions;
if (hasUpdatedDetectionResult) {
if (hasUpdatedDetectionResult)
{
hasUpdatedDetectionResult = false;
//UnityEngine.WSA.Application.InvokeOnAppThread (() => {
// Debug.Log("process: get rectsWhereRegions were got from detectionResult");
//}, true);
lock (rectangleTracker) {
rectsWhereRegions = detectionResult.ToArray ();
lock (rectangleTracker)
{
rectsWhereRegions = detectionResult.ToArray();
}
DrawDownScaleFaceRects(bgraMat, rectsWhereRegions, DOWNSCALE_RATIO, COLOR_BLUE, 1);
} else {
}
else
{
//UnityEngine.WSA.Application.InvokeOnAppThread (() => {
// Debug.Log("process: get rectsWhereRegions from previous positions");
//}, true);
lock (rectangleTracker) {
rectsWhereRegions = rectangleTracker.CreateCorrectionBySpeedOfRects ();
lock (rectangleTracker)
{
rectsWhereRegions = rectangleTracker.CreateCorrectionBySpeedOfRects();
}
DrawDownScaleFaceRects(bgraMat, rectsWhereRegions, DOWNSCALE_RATIO, COLOR_GREEN, 1);
}
detectedObjectsInRegions.Clear ();
detectedObjectsInRegions.Clear();
int len = rectsWhereRegions.Length;
for (int i = 0; i < len; i++)
{
DetectInRegion(grayMat, rectsWhereRegions[i], detectedObjectsInRegions, cascade);
}
lock (rectangleTracker) {
rectangleTracker.UpdateTrackedObjects (detectedObjectsInRegions);
rectangleTracker.GetObjects (resultObjects, true);
lock (rectangleTracker)
{
rectangleTracker.UpdateTrackedObjects(detectedObjectsInRegions);
rectangleTracker.GetObjects(resultObjects, true);
}
len = resultObjects.Count;
@ -413,24 +448,23 @@ namespace HoloLensWithOpenCVForUnityExample
}
}
Enqueue(() => {
if (!webCamTextureToMatHelper.IsPlaying ()) return;
Enqueue(() =>
{
if (!webCamTextureToMatHelper.IsPlaying()) return;
Utils.fastMatToTexture2D(bgraMat, texture);
bgraMat.Dispose ();
bgraMat.Dispose();
Matrix4x4 worldToCameraMatrix = cameraToWorldMatrix.inverse;
quad_renderer.sharedMaterial.SetMatrix ("_WorldToCameraMatrix", worldToCameraMatrix);
quad_renderer.sharedMaterial.SetMatrix("_WorldToCameraMatrix", worldToCameraMatrix);
// Position the canvas object slightly in front
// of the real world web camera.
Vector3 position = cameraToWorldMatrix.GetColumn (3) - cameraToWorldMatrix.GetColumn (2);
position *= 2.2f;
Vector3 position = cameraToWorldMatrix.GetColumn(3) - cameraToWorldMatrix.GetColumn(2) * 2.2f;
// Rotate the canvas object so that it faces the user.
Quaternion rotation = Quaternion.LookRotation (-cameraToWorldMatrix.GetColumn (2), cameraToWorldMatrix.GetColumn (1));
Quaternion rotation = Quaternion.LookRotation(-cameraToWorldMatrix.GetColumn(2), cameraToWorldMatrix.GetColumn(1));
gameObject.transform.position = position;
gameObject.transform.rotation = rotation;
@ -457,20 +491,23 @@ namespace HoloLensWithOpenCVForUnityExample
}
}
#else
#else
// Update is called once per frame
void Update ()
void Update()
{
lock (ExecuteOnMainThread) {
while (ExecuteOnMainThread.Count > 0) {
ExecuteOnMainThread.Dequeue ().Invoke ();
lock (ExecuteOnMainThread)
{
while (ExecuteOnMainThread.Count > 0)
{
ExecuteOnMainThread.Dequeue().Invoke();
}
}
if (webCamTextureToMatHelper.IsPlaying () && webCamTextureToMatHelper.DidUpdateThisFrame ()) {
if (webCamTextureToMatHelper.IsPlaying() && webCamTextureToMatHelper.DidUpdateThisFrame())
{
Mat rgbaMat = webCamTextureToMatHelper.GetMat ();
Mat rgbaMat = webCamTextureToMatHelper.GetMat();
Mat downScaleMat = null;
float DOWNSCALE_RATIO;
@ -485,31 +522,34 @@ namespace HoloLensWithOpenCVForUnityExample
DOWNSCALE_RATIO = 1.0f;
}
Imgproc.cvtColor (downScaleMat, grayMat, CVTCOLOR_CODE);
Imgproc.equalizeHist (grayMat, grayMat);
Imgproc.cvtColor(downScaleMat, grayMat, CVTCOLOR_CODE);
Imgproc.equalizeHist(grayMat, grayMat);
if (enableDetection && !isDetecting ) {
if (enableDetection && !isDetecting)
{
isDetecting = true;
grayMat.copyTo (grayMat4Thread);
grayMat.copyTo(grayMat4Thread);
StartThread (ThreadWorker);
StartThread(ThreadWorker);
}
if (!displayCameraImage) {
if (!displayCameraImage)
{
// fill all black.
Imgproc.rectangle (rgbaMat, new Point (0, 0), new Point (rgbaMat.width (), rgbaMat.height ()), new Scalar (0, 0, 0, 0), -1);
Imgproc.rectangle(rgbaMat, new Point(0, 0), new Point(rgbaMat.width(), rgbaMat.height()), new Scalar(0, 0, 0, 0), -1);
}
if (!useSeparateDetection) {
if (hasUpdatedDetectionResult)
if (!useSeparateDetection)
{
if (hasUpdatedDetectionResult)
{
hasUpdatedDetectionResult = false;
rectangleTracker.UpdateTrackedObjects (detectionResult);
rectangleTracker.UpdateTrackedObjects(detectionResult);
}
rectangleTracker.GetObjects (resultObjects, true);
rectangleTracker.GetObjects(resultObjects, true);
int len = resultObjects.Count;
for (int i = 0; i < len; i++)
@ -526,36 +566,41 @@ namespace HoloLensWithOpenCVForUnityExample
}
// draw face rect
Imgproc.rectangle (rgbaMat, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), COLOR_RED, 2);
Imgproc.rectangle(rgbaMat, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), COLOR_RED, 2);
}
} else {
}
else
{
Rect[] rectsWhereRegions;
if (hasUpdatedDetectionResult) {
if (hasUpdatedDetectionResult)
{
hasUpdatedDetectionResult = false;
//Debug.Log("process: get rectsWhereRegions were got from detectionResult");
rectsWhereRegions = detectionResult.ToArray ();
rectsWhereRegions = detectionResult.ToArray();
DrawDownScaleFaceRects(rgbaMat, rectsWhereRegions, DOWNSCALE_RATIO, COLOR_BLUE, 1);
} else {
}
else
{
//Debug.Log("process: get rectsWhereRegions from previous positions");
rectsWhereRegions = rectangleTracker.CreateCorrectionBySpeedOfRects ();
rectsWhereRegions = rectangleTracker.CreateCorrectionBySpeedOfRects();
DrawDownScaleFaceRects(rgbaMat, rectsWhereRegions, DOWNSCALE_RATIO, COLOR_GREEN, 1);
}
detectedObjectsInRegions.Clear ();
detectedObjectsInRegions.Clear();
int len = rectsWhereRegions.Length;
for (int i = 0; i < len; i++)
{
DetectInRegion(grayMat, rectsWhereRegions[i], detectedObjectsInRegions, cascade);
}
rectangleTracker.UpdateTrackedObjects (detectedObjectsInRegions);
rectangleTracker.GetObjects (resultObjects, true);
rectangleTracker.UpdateTrackedObjects(detectedObjectsInRegions);
rectangleTracker.GetObjects(resultObjects, true);
len = resultObjects.Count;
for (int i = 0; i < len; i++)
@ -575,60 +620,64 @@ namespace HoloLensWithOpenCVForUnityExample
Imgproc.rectangle(rgbaMat, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), COLOR_RED, 2);
}
}
Utils.fastMatToTexture2D (rgbaMat, texture);
Utils.fastMatToTexture2D(rgbaMat, texture);
}
if (webCamTextureToMatHelper.IsPlaying ()) {
if (webCamTextureToMatHelper.IsPlaying())
{
Matrix4x4 cameraToWorldMatrix = Camera.main.cameraToWorldMatrix;;
Matrix4x4 cameraToWorldMatrix = Camera.main.cameraToWorldMatrix; ;
Matrix4x4 worldToCameraMatrix = cameraToWorldMatrix.inverse;
quad_renderer.sharedMaterial.SetMatrix ("_WorldToCameraMatrix", worldToCameraMatrix);
quad_renderer.sharedMaterial.SetMatrix("_WorldToCameraMatrix", worldToCameraMatrix);
// Position the canvas object slightly in front
// of the real world web camera.
Vector3 position = cameraToWorldMatrix.GetColumn (3) - cameraToWorldMatrix.GetColumn (2);
position *= 2.2f;
Vector3 position = cameraToWorldMatrix.GetColumn(3) - cameraToWorldMatrix.GetColumn(2) * 2.2f;
// Rotate the canvas object so that it faces the user.
Quaternion rotation = Quaternion.LookRotation (-cameraToWorldMatrix.GetColumn (2), cameraToWorldMatrix.GetColumn (1));
Quaternion rotation = Quaternion.LookRotation(-cameraToWorldMatrix.GetColumn(2), cameraToWorldMatrix.GetColumn(1));
gameObject.transform.position = position;
gameObject.transform.rotation = rotation;
}
}
#endif
#endif
private void StartThread(Action action)
{
#if WINDOWS_UWP || (!UNITY_WSA_10_0 && (NET_4_6 || NET_STANDARD_2_0))
#if WINDOWS_UWP || (!UNITY_WSA_10_0 && (NET_4_6 || NET_STANDARD_2_0))
System.Threading.Tasks.Task.Run(() => action());
#else
#else
ThreadPool.QueueUserWorkItem(_ => action());
#endif
#endif
}
private void StopThread ()
private void StopThread()
{
if (!isThreadRunning)
return;
while (isThreadRunning) {
while (isThreadRunning)
{
//Wait threading stop
}
}
}
private void ThreadWorker()
{
isThreadRunning = true;
DetectObject (grayMat4Thread, out detectionResult, cascade4Thread);
DetectObject(grayMat4Thread, out detectionResult, cascade4Thread);
lock (ExecuteOnMainThread) {
if (ExecuteOnMainThread.Count == 0) {
ExecuteOnMainThread.Enqueue (() => {
OnDetectionDone ();
lock (ExecuteOnMainThread)
{
if (ExecuteOnMainThread.Count == 0)
{
ExecuteOnMainThread.Enqueue(() =>
{
OnDetectionDone();
});
}
}
@ -708,54 +757,54 @@ namespace HoloLensWithOpenCVForUnityExample
/// <summary>
/// Raises the destroy event.
/// </summary>
void OnDestroy ()
void OnDestroy()
{
imageOptimizationHelper.Dispose();
#if WINDOWS_UWP && !DISABLE_HOLOLENSCAMSTREAM_API
#if WINDOWS_UWP && !DISABLE_HOLOLENSCAMSTREAM_API
webCamTextureToMatHelper.frameMatAcquired -= OnFrameMatAcquired;
#endif
webCamTextureToMatHelper.Dispose ();
#endif
webCamTextureToMatHelper.Dispose();
if (rectangleTracker != null)
rectangleTracker.Dispose ();
rectangleTracker.Dispose();
}
/// <summary>
/// Raises the back button click event.
/// </summary>
public void OnBackButtonClick ()
public void OnBackButtonClick()
{
LoadScene ("HoloLensWithOpenCVForUnityExample");
SceneManager.LoadScene("HoloLensWithOpenCVForUnityExample");
}
/// <summary>
/// Raises the play button click event.
/// </summary>
public void OnPlayButtonClick ()
public void OnPlayButtonClick()
{
webCamTextureToMatHelper.Play ();
webCamTextureToMatHelper.Play();
}
/// <summary>
/// Raises the pause button click event.
/// </summary>
public void OnPauseButtonClick ()
public void OnPauseButtonClick()
{
webCamTextureToMatHelper.Pause ();
webCamTextureToMatHelper.Pause();
}
/// <summary>
/// Raises the stop button click event.
/// </summary>
public void OnStopButtonClick ()
public void OnStopButtonClick()
{
webCamTextureToMatHelper.Stop ();
webCamTextureToMatHelper.Stop();
}
/// <summary>
/// Raises the change camera button click event.
/// </summary>
public void OnChangeCameraButtonClick ()
public void OnChangeCameraButtonClick()
{
webCamTextureToMatHelper.requestedIsFrontFacing = !webCamTextureToMatHelper.IsFrontFacing();
}
@ -763,13 +812,14 @@ namespace HoloLensWithOpenCVForUnityExample
/// <summary>
/// Raises the use separate detection toggle value changed event.
/// </summary>
public void OnUseSeparateDetectionToggleValueChanged ()
public void OnUseSeparateDetectionToggleValueChanged()
{
useSeparateDetection = useSeparateDetectionToggle.isOn;
lock (rectangleTracker) {
lock (rectangleTracker)
{
if (rectangleTracker != null)
rectangleTracker.Reset ();
rectangleTracker.Reset();
}
}
@ -790,7 +840,7 @@ namespace HoloLensWithOpenCVForUnityExample
/// <summary>
/// Raises the display camera image toggle value changed event.
/// </summary>
public void OnDisplayCameraImageToggleValueChanged ()
public void OnDisplayCameraImageToggleValueChanged()
{
displayCameraImage = displayCameraImageToggle.isOn;
}

Просмотреть файл

@ -20,11 +20,11 @@ RenderSettings:
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
m_AmbientEquatorColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
m_AmbientGroundColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 3
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 0}
m_HaloStrength: 0.5
@ -55,23 +55,23 @@ LightmapSettings:
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 10
m_Resolution: 1
m_BakeResolution: 50
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 0
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 0
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 1024
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 1
m_BakeBackend: 0
m_MixedBakeMode: 2
m_BakeBackend: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 500
@ -89,7 +89,7 @@ LightmapSettings:
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ShowResolutionOverlay: 1
m_LightingDataAsset: {fileID: 0}
m_UseShadowmask: 0
m_UseShadowmask: 1
--- !u!196 &5
NavMeshSettings:
serializedVersion: 2
@ -151,7 +151,7 @@ RectTransform:
- {fileID: 1243491301}
- {fileID: 1061389117}
m_Father: {fileID: 1478280153}
m_RootOrder: 1
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -188,14 +188,14 @@ MonoBehaviour:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 62512751}
m_Enabled: 0
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 0.392}
m_RaycastTarget: 1
m_Color: {r: 1, g: 1, b: 1, a: 0}
m_RaycastTarget: 0
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
@ -240,8 +240,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -396,8 +396,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -467,6 +467,88 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 92177783}
m_CullTransparentMesh: 0
--- !u!1 &125943912
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 125943915}
- component: {fileID: 125943914}
- component: {fileID: 125943913}
m_Layer: 0
m_Name: UnityUI
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &125943913
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 125943912}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4684083f6dff4a1d8a790bccc354fcf4, type: 3}
m_Name:
m_EditorClassIdentifier:
updateLinkedTransform: 0
moveLerpTime: 0.1
rotateLerpTime: 0.1
scaleLerpTime: 0
maintainScale: 1
smoothing: 1
lifetime: 0
referenceDirection: 1
minDistance: 1
maxDistance: 2
minViewDegrees: 0
maxViewDegrees: 20
aspectV: 1
ignoreAngleClamp: 0
ignoreDistanceClamp: 0
useFixedVerticalPosition: 0
fixedVerticalPosition: -0.4
orientToReferenceDirection: 0
--- !u!114 &125943914
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 125943912}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b55691ad5b034fe6966763a6e23818d2, type: 3}
m_Name:
m_EditorClassIdentifier:
trackedTargetType: 0
trackedHandness: 3
trackedHandJoint: 2
transformOverride: {fileID: 0}
additionalOffset: {x: 0, y: 0, z: 0}
additionalRotation: {x: 0, y: 0, z: 0}
updateSolvers: 1
--- !u!4 &125943915
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 125943912}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 2}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1478280153}
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &151719821
GameObject:
m_ObjectHideFlags: 0
@ -547,8 +629,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -583,52 +665,6 @@ MonoBehaviour:
m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null
m_IsOn: 1
--- !u!1001 &234758700
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_RootOrder
value: 2
objectReference: {fileID: 0}
- target: {fileID: 20770519707920992, guid: d29bc40b7f3df26479d6a0aac211c355,
type: 3}
propertyPath: far clip plane
value: 5
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
--- !u!1 &262962544
GameObject:
m_ObjectHideFlags: 0
@ -712,12 +748,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 262962544}
m_CullTransparentMesh: 0
--- !u!4 &270024293 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 4000012520274942, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5,
type: 3}
m_PrefabInstance: {fileID: 864547286}
m_PrefabAsset: {fileID: 0}
--- !u!1 &315063041
GameObject:
m_ObjectHideFlags: 0
@ -877,8 +907,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -1171,81 +1201,148 @@ MonoBehaviour:
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Change Camera
--- !u!1001 &864547286
PrefabInstance:
--- !u!1 &857511043
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 857511044}
- component: {fileID: 857511049}
- component: {fileID: 857511048}
- component: {fileID: 857511047}
- component: {fileID: 857511046}
- component: {fileID: 857511045}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &857511044
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 857511043}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 1809869575}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &857511045
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 857511043}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bf98dd1206224111a38765365e98e207, type: 3}
m_Name:
m_EditorClassIdentifier:
setCursorInvisibleWhenFocusLocked: 0
maxGazeCollisionDistance: 10
raycastLayerMasks:
- serializedVersion: 2
m_Bits: 4294967291
stabilizer:
storedStabilitySamples: 60
gazeTransform: {fileID: 0}
minHeadVelocityThreshold: 0.5
maxHeadVelocityThreshold: 2
useEyeTracking: 1
--- !u!114 &857511046
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 857511043}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7a21b486d0bb44444b1418aaa38b44de, type: 3}
m_Name:
m_EditorClassIdentifier:
m_HorizontalAxis: Horizontal
m_VerticalAxis: Vertical
m_SubmitButton: Submit
m_CancelButton: Cancel
m_InputActionsPerSecond: 10
m_RepeatDelay: 0.5
m_ForceModuleActive: 0
--- !u!114 &857511047
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 857511043}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_FirstSelected: {fileID: 0}
m_sendNavigationEvents: 1
m_DragThreshold: 10
--- !u!81 &857511048
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 857511043}
m_Enabled: 1
--- !u!20 &857511049
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 857511043}
m_Enabled: 1
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 1478280153}
m_Modifications:
- target: {fileID: 1000011443254168, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4000012520274942, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000012520274942, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000012520274942, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000012520274942, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4000012520274942, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4000012520274942, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4000012520274942, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4000012520274942, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000012520274942, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalScale.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4000012520274942, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalScale.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4000012084356042, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalScale.x
value: 5
objectReference: {fileID: 0}
- target: {fileID: 4000012084356042, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalScale.y
value: 5
objectReference: {fileID: 0}
- target: {fileID: 4000012084356042, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalScale.z
value: 5
objectReference: {fileID: 0}
- target: {fileID: 114814769360254126, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5,
type: 3}
propertyPath: m_Enabled
value: 0
objectReference: {fileID: 0}
- target: {fileID: 114000014245746336, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5,
type: 3}
propertyPath: m_Enabled
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
m_ClearFlags: 2
m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1}
m_projectionMatrixMode: 1
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_GateFitMode: 2
m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!1 &968596576
GameObject:
m_ObjectHideFlags: 0
@ -1398,8 +1495,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -1718,8 +1815,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -1952,8 +2049,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -2310,8 +2407,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -2473,10 +2570,7 @@ GameObject:
- component: {fileID: 1478280151}
- component: {fileID: 1478280150}
- component: {fileID: 1478280156}
- component: {fileID: 1478280155}
- component: {fileID: 1478280154}
- component: {fileID: 1478280157}
- component: {fileID: 1478280158}
m_Layer: 5
m_Name: Canvas
m_TagString: Untagged
@ -2533,7 +2627,7 @@ Canvas:
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 2
m_Camera: {fileID: 1972617041}
m_Camera: {fileID: 0}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
@ -2551,19 +2645,18 @@ RectTransform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1478280149}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 2}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.001, y: 0.001, z: 0.001}
m_Children:
- {fileID: 270024293}
- {fileID: 62512752}
m_Father: {fileID: 0}
m_RootOrder: 1
m_Father: {fileID: 125943915}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 800, y: 496.1241}
m_SizeDelta: {x: 640, y: 480}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1478280154
MonoBehaviour:
@ -2574,35 +2667,9 @@ MonoBehaviour:
m_GameObject: {fileID: 1478280149}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2be8bd2ebd8277c448d6d81c75517fee, type: 3}
m_Script: {fileID: 11500000, guid: ff4e3b9019304b5aaec5664de0778d21, type: 3}
m_Name:
m_EditorClassIdentifier:
TagalongDistance: 2
EnforceDistance: 1
PositionUpdateSpeed: 9.8
SmoothMotion: 1
SmoothingFactor: 0.75
--- !u!114 &1478280155
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1478280149}
m_Enabled: 0
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fb69de839bd015f4099b5bd2c45e53e5, type: 3}
m_Name:
m_EditorClassIdentifier:
UseUnscaledTime: 1
PositionPerSecond: 30
RotationDegreesPerSecond: 720
RotationSpeedScaler: 0
ScalePerSecond: 5
SmoothLerpToTarget: 0
SmoothPositionLerpRatio: 0.5
SmoothRotationLerpRatio: 0.5
SmoothScaleLerpRatio: 0.5
--- !u!65 &1478280156
BoxCollider:
m_ObjectHideFlags: 0
@ -2616,103 +2683,6 @@ BoxCollider:
serializedVersion: 2
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!114 &1478280157
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1478280149}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ac8d5b128a1d8204fb76c86f47b75912, type: 3}
m_Name:
m_EditorClassIdentifier:
pivotAxis: 0
targetTransform: {fileID: 0}
--- !u!114 &1478280158
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1478280149}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2aebab3047f2113489ca3eb8423228b6, type: 3}
m_Name:
m_EditorClassIdentifier:
Canvas: {fileID: 1478280152}
--- !u!1001 &1492569179
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_RootOrder
value: 4
objectReference: {fileID: 0}
- target: {fileID: 108000011213487996, guid: b2db04283121ca74495c2ee000fb4243,
type: 3}
propertyPath: m_Range
value: 0.01
objectReference: {fileID: 0}
- target: {fileID: 4000013144497514, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalScale.x
value: 0.001
objectReference: {fileID: 0}
- target: {fileID: 4000013144497514, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalScale.y
value: 0.001
objectReference: {fileID: 0}
- target: {fileID: 4000013144497514, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalScale.z
value: 0.001
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
--- !u!114 &1492569180 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 114000013851064060, guid: b2db04283121ca74495c2ee000fb4243,
type: 3}
m_PrefabInstance: {fileID: 1492569179}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: afa1ae235bc6cfa43addd1435e2fd822, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &1646213444
GameObject:
m_ObjectHideFlags: 0
@ -2862,58 +2832,37 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1722292691}
m_CullTransparentMesh: 0
--- !u!1001 &1972617040
PrefabInstance:
--- !u!1 &1809869574
GameObject:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_RootOrder
value: 3
objectReference: {fileID: 0}
- target: {fileID: 114742747811649402, guid: 3eddd1c29199313478dd3f912bfab2ab,
type: 3}
propertyPath: Cursor
value:
objectReference: {fileID: 1492569180}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
--- !u!20 &1972617041 stripped
Camera:
m_CorrespondingSourceObject: {fileID: 20049547090947856, guid: 3eddd1c29199313478dd3f912bfab2ab,
type: 3}
m_PrefabInstance: {fileID: 1972617040}
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1809869575}
m_Layer: 0
m_Name: MixedRealityPlayspace
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1809869575
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1809869574}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 857511044}
m_Father: {fileID: 0}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1976741141
GameObject:
m_ObjectHideFlags: 0
@ -3076,3 +3025,47 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &2147208328
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2147208330}
- component: {fileID: 2147208329}
m_Layer: 0
m_Name: MixedRealityToolkit
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &2147208329
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2147208328}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 83d9acc7968244a8886f3af591305bcb, type: 3}
m_Name:
m_EditorClassIdentifier:
activeProfile: {fileID: 11400000, guid: 019ea231fcd4127409ae7906b2996ee1, type: 2}
--- !u!4 &2147208330
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2147208328}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

Просмотреть файл

@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Threading;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using OpenCVForUnity.RectangleTrack;
using OpenCVForUnity.CoreModule;
using OpenCVForUnity.ObjdetectModule;
@ -20,7 +21,7 @@ namespace HoloLensWithOpenCVForUnityExample
/// Referring to https://github.com/Itseez/opencv/blob/master/modules/objdetect/src/detection_based_tracker.cpp.
/// </summary>
[RequireComponent(typeof(HololensCameraStreamToMatHelper))]
public class HoloLensFaceDetectionOverlayExample : ExampleSceneBase
public class HoloLensFaceDetectionOverlayExample : MonoBehaviour
{
/// <summary>
/// Determines if enables the detection.
@ -82,70 +83,89 @@ namespace HoloLensWithOpenCVForUnityExample
/// </summary>
List<Rect> detectionResult = new List<Rect>();
#if WINDOWS_UWP && !DISABLE_HOLOLENSCAMSTREAM_API
#if WINDOWS_UWP && !DISABLE_HOLOLENSCAMSTREAM_API
int CVTCOLOR_CODE = Imgproc.COLOR_BGRA2GRAY;
Scalar COLOR_RED = new Scalar(0, 0, 255, 255);
Scalar COLOR_GREEN = new Scalar(0, 255, 0, 255);
Scalar COLOR_BLUE = new Scalar(255, 0, 0, 255);
#else
#else
int CVTCOLOR_CODE = Imgproc.COLOR_RGBA2GRAY;
Scalar COLOR_RED = new Scalar(255, 0, 0, 255);
Scalar COLOR_GREEN = new Scalar(0, 255, 0, 255);
Scalar COLOR_BLUE = new Scalar(0, 0, 255, 255);
#endif
#endif
Mat grayMat4Thread;
CascadeClassifier cascade4Thread;
readonly static Queue<Action> ExecuteOnMainThread = new Queue<Action>();
System.Object sync = new System.Object ();
System.Object sync = new System.Object();
bool _isThreadRunning = false;
bool isThreadRunning {
get { lock (sync)
return _isThreadRunning; }
set { lock (sync)
_isThreadRunning = value; }
bool isThreadRunning
{
get
{
lock (sync)
return _isThreadRunning;
}
set
{
lock (sync)
_isThreadRunning = value;
}
}
RectangleTracker rectangleTracker;
float coeffTrackingWindowSize = 2.0f;
float coeffObjectSizeToTrack = 0.85f;
List<Rect> detectedObjectsInRegions = new List<Rect> ();
List<Rect> resultObjects = new List<Rect> ();
List<Rect> detectedObjectsInRegions = new List<Rect>();
List<Rect> resultObjects = new List<Rect>();
bool _isDetecting = false;
bool isDetecting {
get { lock (sync)
return _isDetecting; }
set { lock (sync)
_isDetecting = value; }
bool isDetecting
{
get
{
lock (sync)
return _isDetecting;
}
set
{
lock (sync)
_isDetecting = value;
}
}
bool _hasUpdatedDetectionResult = false;
bool hasUpdatedDetectionResult {
get { lock (sync)
return _hasUpdatedDetectionResult; }
set { lock (sync)
_hasUpdatedDetectionResult = value; }
bool hasUpdatedDetectionResult
{
get
{
lock (sync)
return _hasUpdatedDetectionResult;
}
set
{
lock (sync)
_hasUpdatedDetectionResult = value;
}
}
Matrix4x4 projectionMatrix;
RectOverlay rectOverlay;
// Use this for initialization
protected override void Start ()
protected void Start()
{
base.Start ();
imageOptimizationHelper = gameObject.GetComponent<ImageOptimizationHelper>();
webCamTextureToMatHelper = gameObject.GetComponent<HololensCameraStreamToMatHelper> ();
#if WINDOWS_UWP && !DISABLE_HOLOLENSCAMSTREAM_API
webCamTextureToMatHelper = gameObject.GetComponent<HololensCameraStreamToMatHelper>();
#if WINDOWS_UWP && !DISABLE_HOLOLENSCAMSTREAM_API
webCamTextureToMatHelper.frameMatAcquired += OnFrameMatAcquired;
#endif
webCamTextureToMatHelper.Initialize ();
#endif
webCamTextureToMatHelper.Initialize();
rectangleTracker = new RectangleTracker ();
rectOverlay = gameObject.GetComponent<RectOverlay> ();
rectangleTracker = new RectangleTracker();
rectOverlay = gameObject.GetComponent<RectOverlay>();
useSeparateDetectionToggle.isOn = useSeparateDetection;
enableDownScaleToggle.isOn = enableDownScale;
@ -154,18 +174,18 @@ namespace HoloLensWithOpenCVForUnityExample
/// <summary>
/// Raises the web cam texture to mat helper initialized event.
/// </summary>
public void OnWebCamTextureToMatHelperInitialized ()
public void OnWebCamTextureToMatHelperInitialized()
{
Debug.Log ("OnWebCamTextureToMatHelperInitialized");
Debug.Log("OnWebCamTextureToMatHelperInitialized");
Mat webCamTextureMat = webCamTextureToMatHelper.GetMat ();
Mat webCamTextureMat = webCamTextureToMatHelper.GetMat();
Debug.Log ("Screen.width " + Screen.width + " Screen.height " + Screen.height + " Screen.orientation " + Screen.orientation);
Debug.Log("Screen.width " + Screen.width + " Screen.height " + Screen.height + " Screen.orientation " + Screen.orientation);
#if WINDOWS_UWP && !DISABLE_HOLOLENSCAMSTREAM_API
#if WINDOWS_UWP && !DISABLE_HOLOLENSCAMSTREAM_API
projectionMatrix = webCamTextureToMatHelper.GetProjectionMatrix ();
#else
#else
//This value is obtained from PhotoCapture's TryGetProjectionMatrix() method.I do not know whether this method is good.
//Please see the discussion of this thread.Https://forums.hololens.com/discussion/782/live-stream-of-locatable-camera-webcam-in-unity
projectionMatrix = Matrix4x4.identity;
@ -185,71 +205,73 @@ namespace HoloLensWithOpenCVForUnityExample
projectionMatrix.m31 = 0.00000f;
projectionMatrix.m32 = -1.00000f;
projectionMatrix.m33 = 0.00000f;
#endif
#endif
grayMat = new Mat ();
cascade = new CascadeClassifier ();
cascade.load (Utils.getFilePath ("lbpcascade_frontalface.xml"));
#if !UNITY_WSA_10_0 || UNITY_EDITOR
grayMat = new Mat();
cascade = new CascadeClassifier();
cascade.load(Utils.getFilePath("lbpcascade_frontalface.xml"));
#if !UNITY_WSA_10_0 || UNITY_EDITOR
// "empty" method is not working on the UWP platform.
if (cascade.empty())
{
Debug.LogError("cascade file is not loaded. Please copy from “OpenCVForUnity/StreamingAssets/” to “Assets/StreamingAssets/” folder. ");
}
#endif
#endif
grayMat4Thread = new Mat ();
cascade4Thread = new CascadeClassifier ();
cascade4Thread.load (Utils.getFilePath ("haarcascade_frontalface_alt.xml"));
#if !UNITY_WSA_10_0 || UNITY_EDITOR
grayMat4Thread = new Mat();
cascade4Thread = new CascadeClassifier();
cascade4Thread.load(Utils.getFilePath("haarcascade_frontalface_alt.xml"));
#if !UNITY_WSA_10_0 || UNITY_EDITOR
// "empty" method is not working on the UWP platform.
if (cascade4Thread.empty())
{
Debug.LogError("cascade file is not loaded. Please copy from “OpenCVForUnity/StreamingAssets/” to “Assets/StreamingAssets/” folder. ");
}
#endif
#endif
}
/// <summary>
/// Raises the web cam texture to mat helper disposed event.
/// </summary>
public void OnWebCamTextureToMatHelperDisposed ()
public void OnWebCamTextureToMatHelperDisposed()
{
Debug.Log ("OnWebCamTextureToMatHelperDisposed");
Debug.Log("OnWebCamTextureToMatHelperDisposed");
StopThread ();
lock (ExecuteOnMainThread) {
ExecuteOnMainThread.Clear ();
StopThread();
lock (ExecuteOnMainThread)
{
ExecuteOnMainThread.Clear();
}
hasUpdatedDetectionResult = false;
isDetecting = false;
if (grayMat != null)
grayMat.Dispose ();
grayMat.Dispose();
if (cascade != null)
cascade.Dispose ();
cascade.Dispose();
if (grayMat4Thread != null)
grayMat4Thread.Dispose ();
grayMat4Thread.Dispose();
if (cascade4Thread != null)
cascade4Thread.Dispose ();
cascade4Thread.Dispose();
rectangleTracker.Reset ();
rectangleTracker.Reset();
}
/// <summary>
/// Raises the web cam texture to mat helper error occurred event.
/// </summary>
/// <param name="errorCode">Error code.</param>
public void OnWebCamTextureToMatHelperErrorOccurred(WebCamTextureToMatHelper.ErrorCode errorCode){
Debug.Log ("OnWebCamTextureToMatHelperErrorOccurred " + errorCode);
public void OnWebCamTextureToMatHelperErrorOccurred(WebCamTextureToMatHelper.ErrorCode errorCode)
{
Debug.Log("OnWebCamTextureToMatHelperErrorOccurred " + errorCode);
}
#if WINDOWS_UWP && !DISABLE_HOLOLENSCAMSTREAM_API
public void OnFrameMatAcquired (Mat bgraMat, Matrix4x4 projectionMatrix, Matrix4x4 cameraToWorldMatrix)
#if WINDOWS_UWP && !DISABLE_HOLOLENSCAMSTREAM_API
public void OnFrameMatAcquired(Mat bgraMat, Matrix4x4 projectionMatrix, Matrix4x4 cameraToWorldMatrix)
{
Mat downScaleMat = null;
float DOWNSCALE_RATIO;
@ -264,79 +286,92 @@ namespace HoloLensWithOpenCVForUnityExample
DOWNSCALE_RATIO = 1.0f;
}
Imgproc.cvtColor (downScaleMat, grayMat, CVTCOLOR_CODE);
Imgproc.equalizeHist (grayMat, grayMat);
if (enableDetection && !isDetecting ) {
Imgproc.cvtColor(downScaleMat, grayMat, CVTCOLOR_CODE);
Imgproc.equalizeHist(grayMat, grayMat);
if (enableDetection && !isDetecting)
{
isDetecting = true;
grayMat.copyTo (grayMat4Thread);
grayMat.copyTo(grayMat4Thread);
System.Threading.Tasks.Task.Run(() => {
System.Threading.Tasks.Task.Run(() =>
{
isThreadRunning = true;
DetectObject(grayMat4Thread, out detectionResult, cascade4Thread);
isThreadRunning = false;
OnDetectionDone ();
OnDetectionDone();
});
}
Rect[] rects;
if (!useSeparateDetection) {
if (hasUpdatedDetectionResult) {
if (!useSeparateDetection)
{
if (hasUpdatedDetectionResult)
{
hasUpdatedDetectionResult = false;
lock (rectangleTracker) {
rectangleTracker.UpdateTrackedObjects (detectionResult);
lock (rectangleTracker)
{
rectangleTracker.UpdateTrackedObjects(detectionResult);
}
}
lock (rectangleTracker) {
rectangleTracker.GetObjects (resultObjects, true);
lock (rectangleTracker)
{
rectangleTracker.GetObjects(resultObjects, true);
}
rects = resultObjects.ToArray ();
rects = resultObjects.ToArray();
}else {
}
else
{
Rect[] rectsWhereRegions;
if (hasUpdatedDetectionResult) {
if (hasUpdatedDetectionResult)
{
hasUpdatedDetectionResult = false;
//UnityEngine.WSA.Application.InvokeOnAppThread (() => {
// Debug.Log("process: get rectsWhereRegions were got from detectionResult");
//}, true);
lock (rectangleTracker) {
rectsWhereRegions = detectionResult.ToArray ();
lock (rectangleTracker)
{
rectsWhereRegions = detectionResult.ToArray();
}
} else {
}
else
{
//UnityEngine.WSA.Application.InvokeOnAppThread (() => {
// Debug.Log("process: get rectsWhereRegions from previous positions");
//}, true);
lock (rectangleTracker) {
rectsWhereRegions = rectangleTracker.CreateCorrectionBySpeedOfRects ();
lock (rectangleTracker)
{
rectsWhereRegions = rectangleTracker.CreateCorrectionBySpeedOfRects();
}
}
detectedObjectsInRegions.Clear ();
detectedObjectsInRegions.Clear();
int len = rectsWhereRegions.Length;
for (int i = 0; i < len; i++)
{
DetectInRegion(grayMat, rectsWhereRegions[i], detectedObjectsInRegions, cascade);
}
lock (rectangleTracker) {
rectangleTracker.UpdateTrackedObjects (detectedObjectsInRegions);
rectangleTracker.GetObjects (resultObjects, true);
lock (rectangleTracker)
{
rectangleTracker.UpdateTrackedObjects(detectedObjectsInRegions);
rectangleTracker.GetObjects(resultObjects, true);
}
rects = resultObjects.ToArray ();
rects = resultObjects.ToArray();
}
if (enableDownScale)
@ -354,12 +389,12 @@ namespace HoloLensWithOpenCVForUnityExample
}
}
Enqueue(() => {
Enqueue(() =>
{
if (!webCamTextureToMatHelper.IsPlaying()) return;
if (!webCamTextureToMatHelper.IsPlaying ()) return;
DrawRects (rects, bgraMat.width(), bgraMat.height());
bgraMat.Dispose ();
DrawRects(rects, bgraMat.width(), bgraMat.height());
bgraMat.Dispose();
Vector3 ccCameraSpacePos = UnProjectVector(projectionMatrix, new Vector3(0.0f, 0.0f, overlayDistance));
Vector3 tlCameraSpacePos = UnProjectVector(projectionMatrix, new Vector3(-overlayDistance, overlayDistance, overlayDistance));
@ -369,11 +404,11 @@ namespace HoloLensWithOpenCVForUnityExample
gameObject.transform.position = position;
//scale
Vector3 scale = new Vector3(Mathf.Abs(tlCameraSpacePos.x - ccCameraSpacePos.x)*2, Mathf.Abs(tlCameraSpacePos.y - ccCameraSpacePos.y)*2, 1);
Vector3 scale = new Vector3(Mathf.Abs(tlCameraSpacePos.x - ccCameraSpacePos.x) * 2, Mathf.Abs(tlCameraSpacePos.y - ccCameraSpacePos.y) * 2, 1);
gameObject.transform.localScale = scale;
// Rotate the canvas object so that it faces the user.
Quaternion rotation = Quaternion.LookRotation (-cameraToWorldMatrix.GetColumn (2), cameraToWorldMatrix.GetColumn (1));
Quaternion rotation = Quaternion.LookRotation(-cameraToWorldMatrix.GetColumn(2), cameraToWorldMatrix.GetColumn(1));
gameObject.transform.rotation = rotation;
rectOverlay.UpdateOverlayTransform(gameObject.transform);
@ -400,20 +435,23 @@ namespace HoloLensWithOpenCVForUnityExample
}
}
#else
#else
// Update is called once per frame
void Update ()
void Update()
{
lock (ExecuteOnMainThread) {
while (ExecuteOnMainThread.Count > 0) {
ExecuteOnMainThread.Dequeue ().Invoke ();
lock (ExecuteOnMainThread)
{
while (ExecuteOnMainThread.Count > 0)
{
ExecuteOnMainThread.Dequeue().Invoke();
}
}
if (webCamTextureToMatHelper.IsPlaying () && webCamTextureToMatHelper.DidUpdateThisFrame ()) {
if (webCamTextureToMatHelper.IsPlaying() && webCamTextureToMatHelper.DidUpdateThisFrame())
{
Mat rgbaMat = webCamTextureToMatHelper.GetMat ();
Mat rgbaMat = webCamTextureToMatHelper.GetMat();
Mat downScaleMat = null;
float DOWNSCALE_RATIO;
@ -428,28 +466,30 @@ namespace HoloLensWithOpenCVForUnityExample
DOWNSCALE_RATIO = 1.0f;
}
Imgproc.cvtColor (downScaleMat, grayMat, CVTCOLOR_CODE);
Imgproc.equalizeHist (grayMat, grayMat);
Imgproc.cvtColor(downScaleMat, grayMat, CVTCOLOR_CODE);
Imgproc.equalizeHist(grayMat, grayMat);
if (enableDetection && !isDetecting ) {
if (enableDetection && !isDetecting)
{
isDetecting = true;
grayMat.copyTo (grayMat4Thread);
grayMat.copyTo(grayMat4Thread);
StartThread (ThreadWorker);
StartThread(ThreadWorker);
}
if (!useSeparateDetection) {
if (hasUpdatedDetectionResult)
if (!useSeparateDetection)
{
if (hasUpdatedDetectionResult)
{
hasUpdatedDetectionResult = false;
rectangleTracker.UpdateTrackedObjects (detectionResult);
rectangleTracker.UpdateTrackedObjects(detectionResult);
}
rectangleTracker.GetObjects (resultObjects, true);
rectangleTracker.GetObjects(resultObjects, true);
Rect[] rects = resultObjects.ToArray ();
Rect[] rects = resultObjects.ToArray();
if (enableDownScale)
{
@ -469,31 +509,36 @@ namespace HoloLensWithOpenCVForUnityExample
// draw face rect
DrawRects(rects, rgbaMat.width(), rgbaMat.height());
} else {
}
else
{
Rect[] rectsWhereRegions;
if (hasUpdatedDetectionResult) {
if (hasUpdatedDetectionResult)
{
hasUpdatedDetectionResult = false;
//Debug.Log("process: get rectsWhereRegions were got from detectionResult");
rectsWhereRegions = detectionResult.ToArray ();
} else {
rectsWhereRegions = detectionResult.ToArray();
}
else
{
//Debug.Log("process: get rectsWhereRegions from previous positions");
rectsWhereRegions = rectangleTracker.CreateCorrectionBySpeedOfRects ();
rectsWhereRegions = rectangleTracker.CreateCorrectionBySpeedOfRects();
}
detectedObjectsInRegions.Clear ();
detectedObjectsInRegions.Clear();
int len = rectsWhereRegions.Length;
for (int i = 0; i < len; i++)
{
DetectInRegion (grayMat, rectsWhereRegions[i], detectedObjectsInRegions, cascade);
DetectInRegion(grayMat, rectsWhereRegions[i], detectedObjectsInRegions, cascade);
}
rectangleTracker.UpdateTrackedObjects (detectedObjectsInRegions);
rectangleTracker.GetObjects (resultObjects, true);
rectangleTracker.UpdateTrackedObjects(detectedObjectsInRegions);
rectangleTracker.GetObjects(resultObjects, true);
Rect[] rects = resultObjects.ToArray ();
Rect[] rects = resultObjects.ToArray();
if (enableDownScale)
{
@ -515,30 +560,31 @@ namespace HoloLensWithOpenCVForUnityExample
}
}
if (webCamTextureToMatHelper.IsPlaying ()) {
if (webCamTextureToMatHelper.IsPlaying())
{
Matrix4x4 cameraToWorldMatrix = Camera.main.cameraToWorldMatrix;;
Matrix4x4 cameraToWorldMatrix = Camera.main.cameraToWorldMatrix; ;
Vector3 ccCameraSpacePos = UnProjectVector(projectionMatrix, new Vector3(0.0f, 0.0f, overlayDistance));
Vector3 tlCameraSpacePos = UnProjectVector(projectionMatrix, new Vector3(-overlayDistance, overlayDistance, overlayDistance));
//position
Vector3 position = cameraToWorldMatrix.MultiplyPoint3x4(ccCameraSpacePos);
gameObject.transform.position = position;
//scale
Vector3 scale = new Vector3(Mathf.Abs(tlCameraSpacePos.x - ccCameraSpacePos.x)*2, Mathf.Abs(tlCameraSpacePos.y - ccCameraSpacePos.y)*2, 1);
Vector3 scale = new Vector3(Mathf.Abs(tlCameraSpacePos.x - ccCameraSpacePos.x) * 2, Mathf.Abs(tlCameraSpacePos.y - ccCameraSpacePos.y) * 2, 1);
gameObject.transform.localScale = scale;
// Rotate the canvas object so that it faces the user.
Quaternion rotation = Quaternion.LookRotation (-cameraToWorldMatrix.GetColumn (2), cameraToWorldMatrix.GetColumn (1));
Quaternion rotation = Quaternion.LookRotation(-cameraToWorldMatrix.GetColumn(2), cameraToWorldMatrix.GetColumn(1));
gameObject.transform.rotation = rotation;
rectOverlay.UpdateOverlayTransform(gameObject.transform);
}
}
#endif
#endif
private Vector3 UnProjectVector(Matrix4x4 proj, Vector3 to)
{
@ -556,32 +602,34 @@ namespace HoloLensWithOpenCVForUnityExample
{
UnityEngine.Rect[] overlayRects = new UnityEngine.Rect[rects.Length];
for (int i = 0; i < rects.Length; i++) {
overlayRects[i] = new UnityEngine.Rect(rects[i].x/imageWidth
, rects[i].y/imageHeight
, rects[i].width/imageWidth
, rects[i].height/imageHeight);
for (int i = 0; i < rects.Length; i++)
{
overlayRects[i] = new UnityEngine.Rect(rects[i].x / imageWidth
, rects[i].y / imageHeight
, rects[i].width / imageWidth
, rects[i].height / imageHeight);
}
rectOverlay.DrawRects(overlayRects);
}
private void StartThread(Action action)
{
#if WINDOWS_UWP || (!UNITY_WSA_10_0 && (NET_4_6 || NET_STANDARD_2_0))
#if WINDOWS_UWP || (!UNITY_WSA_10_0 && (NET_4_6 || NET_STANDARD_2_0))
System.Threading.Tasks.Task.Run(() => action());
#else
#else
ThreadPool.QueueUserWorkItem(_ => action());
#endif
#endif
}
private void StopThread ()
private void StopThread()
{
if (!isThreadRunning)
return;
while (isThreadRunning) {
while (isThreadRunning)
{
//Wait threading stop
}
}
}
private void ThreadWorker()
@ -590,10 +638,13 @@ namespace HoloLensWithOpenCVForUnityExample
DetectObject(grayMat4Thread, out detectionResult, cascade4Thread);
lock (ExecuteOnMainThread) {
if (ExecuteOnMainThread.Count == 0) {
ExecuteOnMainThread.Enqueue (() => {
OnDetectionDone ();
lock (ExecuteOnMainThread)
{
if (ExecuteOnMainThread.Count == 0)
{
ExecuteOnMainThread.Enqueue(() =>
{
OnDetectionDone();
});
}
}
@ -657,54 +708,54 @@ namespace HoloLensWithOpenCVForUnityExample
/// <summary>
/// Raises the destroy event.
/// </summary>
void OnDestroy ()
void OnDestroy()
{
imageOptimizationHelper.Dispose();
#if WINDOWS_UWP && !DISABLE_HOLOLENSCAMSTREAM_API
#if WINDOWS_UWP && !DISABLE_HOLOLENSCAMSTREAM_API
webCamTextureToMatHelper.frameMatAcquired -= OnFrameMatAcquired;
#endif
webCamTextureToMatHelper.Dispose ();
#endif
webCamTextureToMatHelper.Dispose();
if (rectangleTracker != null)
rectangleTracker.Dispose ();
rectangleTracker.Dispose();
}
/// <summary>
/// Raises the back button click event.
/// </summary>
public void OnBackButtonClick ()
public void OnBackButtonClick()
{
LoadScene ("HoloLensWithOpenCVForUnityExample");
SceneManager.LoadScene("HoloLensWithOpenCVForUnityExample");
}
/// <summary>
/// Raises the play button click event.
/// </summary>
public void OnPlayButtonClick ()
public void OnPlayButtonClick()
{
webCamTextureToMatHelper.Play ();
webCamTextureToMatHelper.Play();
}
/// <summary>
/// Raises the pause button click event.
/// </summary>
public void OnPauseButtonClick ()
public void OnPauseButtonClick()
{
webCamTextureToMatHelper.Pause ();
webCamTextureToMatHelper.Pause();
}
/// <summary>
/// Raises the stop button click event.
/// </summary>
public void OnStopButtonClick ()
public void OnStopButtonClick()
{
webCamTextureToMatHelper.Stop ();
webCamTextureToMatHelper.Stop();
}
/// <summary>
/// Raises the change camera button click event.
/// </summary>
public void OnChangeCameraButtonClick ()
public void OnChangeCameraButtonClick()
{
webCamTextureToMatHelper.requestedIsFrontFacing = !webCamTextureToMatHelper.IsFrontFacing();
}
@ -712,13 +763,14 @@ namespace HoloLensWithOpenCVForUnityExample
/// <summary>
/// Raises the use separate detection toggle value changed event.
/// </summary>
public void OnUseSeparateDetectionToggleValueChanged ()
public void OnUseSeparateDetectionToggleValueChanged()
{
useSeparateDetection = useSeparateDetectionToggle.isOn;
lock (rectangleTracker) {
lock (rectangleTracker)
{
if (rectangleTracker != null)
rectangleTracker.Reset ();
rectangleTracker.Reset();
}
}

Просмотреть файл

@ -20,11 +20,11 @@ RenderSettings:
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
m_AmbientEquatorColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
m_AmbientGroundColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 3
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 0}
m_HaloStrength: 0.5
@ -55,23 +55,23 @@ LightmapSettings:
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 10
m_Resolution: 1
m_BakeResolution: 50
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 0
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 0
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 1024
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 1
m_BakeBackend: 0
m_MixedBakeMode: 2
m_BakeBackend: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 500
@ -89,7 +89,7 @@ LightmapSettings:
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ShowResolutionOverlay: 1
m_LightingDataAsset: {fileID: 0}
m_UseShadowmask: 0
m_UseShadowmask: 1
--- !u!196 &5
NavMeshSettings:
serializedVersion: 2
@ -150,7 +150,7 @@ RectTransform:
- {fileID: 1166727613}
- {fileID: 1198966546}
m_Father: {fileID: 1478280153}
m_RootOrder: 1
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -239,8 +239,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -395,8 +395,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -549,12 +549,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 262962544}
m_CullTransparentMesh: 0
--- !u!4 &270024293 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 4000012520274942, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5,
type: 3}
m_PrefabInstance: {fileID: 864547286}
m_PrefabAsset: {fileID: 0}
--- !u!1 &476606573
GameObject:
m_ObjectHideFlags: 0
@ -640,8 +634,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -711,52 +705,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 476606573}
m_CullTransparentMesh: 0
--- !u!1001 &479785066
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_RootOrder
value: 2
objectReference: {fileID: 0}
- target: {fileID: 20770519707920992, guid: d29bc40b7f3df26479d6a0aac211c355,
type: 3}
propertyPath: far clip plane
value: 5
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
--- !u!1 &538427539
GameObject:
m_ObjectHideFlags: 0
@ -905,81 +853,88 @@ MonoBehaviour:
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Change Camera
--- !u!1001 &864547286
PrefabInstance:
--- !u!1 &922832626
GameObject:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 1478280153}
m_Modifications:
- target: {fileID: 1000011443254168, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4000012520274942, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000012520274942, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000012520274942, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000012520274942, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4000012520274942, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4000012520274942, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4000012520274942, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4000012520274942, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000012520274942, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalScale.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4000012520274942, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalScale.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4000012084356042, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalScale.x
value: 5
objectReference: {fileID: 0}
- target: {fileID: 4000012084356042, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalScale.y
value: 5
objectReference: {fileID: 0}
- target: {fileID: 4000012084356042, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
propertyPath: m_LocalScale.z
value: 5
objectReference: {fileID: 0}
- target: {fileID: 114814769360254126, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5,
type: 3}
propertyPath: m_Enabled
value: 0
objectReference: {fileID: 0}
- target: {fileID: 114000014245746336, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5,
type: 3}
propertyPath: m_Enabled
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: c828c5b9571ec9c4bb75aef2ba6bc8c5, type: 3}
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 922832629}
- component: {fileID: 922832628}
- component: {fileID: 922832627}
m_Layer: 0
m_Name: UnityUI
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &922832627
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 922832626}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4684083f6dff4a1d8a790bccc354fcf4, type: 3}
m_Name:
m_EditorClassIdentifier:
updateLinkedTransform: 0
moveLerpTime: 0.1
rotateLerpTime: 0.1
scaleLerpTime: 0
maintainScale: 1
smoothing: 1
lifetime: 0
referenceDirection: 1
minDistance: 1
maxDistance: 2
minViewDegrees: 0
maxViewDegrees: 20
aspectV: 1
ignoreAngleClamp: 0
ignoreDistanceClamp: 0
useFixedVerticalPosition: 0
fixedVerticalPosition: -0.4
orientToReferenceDirection: 0
--- !u!114 &922832628
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 922832626}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b55691ad5b034fe6966763a6e23818d2, type: 3}
m_Name:
m_EditorClassIdentifier:
trackedTargetType: 0
trackedHandness: 3
trackedHandJoint: 2
transformOverride: {fileID: 0}
additionalOffset: {x: 0, y: 0, z: 0}
additionalRotation: {x: 0, y: 0, z: 0}
updateSolvers: 1
--- !u!4 &922832629
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 922832626}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 2}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1478280153}
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &968596576
GameObject:
m_ObjectHideFlags: 0
@ -1347,8 +1302,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -1468,8 +1423,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -1619,8 +1574,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -1906,8 +1861,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -1990,9 +1945,7 @@ GameObject:
- component: {fileID: 1478280151}
- component: {fileID: 1478280150}
- component: {fileID: 1478280156}
- component: {fileID: 1478280155}
- component: {fileID: 1478280154}
- component: {fileID: 1478280157}
m_Layer: 5
m_Name: Canvas
m_TagString: Untagged
@ -2049,7 +2002,7 @@ Canvas:
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 2
m_Camera: {fileID: 1972617041}
m_Camera: {fileID: 0}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
@ -2067,19 +2020,18 @@ RectTransform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1478280149}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 2}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.001, y: 0.001, z: 0.001}
m_Children:
- {fileID: 270024293}
- {fileID: 62512752}
m_Father: {fileID: 0}
m_RootOrder: 1
m_Father: {fileID: 922832629}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 800, y: 496.1241}
m_SizeDelta: {x: 640, y: 480}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1478280154
MonoBehaviour:
@ -2090,35 +2042,9 @@ MonoBehaviour:
m_GameObject: {fileID: 1478280149}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2be8bd2ebd8277c448d6d81c75517fee, type: 3}
m_Script: {fileID: 11500000, guid: ff4e3b9019304b5aaec5664de0778d21, type: 3}
m_Name:
m_EditorClassIdentifier:
TagalongDistance: 2
EnforceDistance: 1
PositionUpdateSpeed: 9.8
SmoothMotion: 1
SmoothingFactor: 0.75
--- !u!114 &1478280155
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1478280149}
m_Enabled: 0
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fb69de839bd015f4099b5bd2c45e53e5, type: 3}
m_Name:
m_EditorClassIdentifier:
UseUnscaledTime: 1
PositionPerSecond: 30
RotationDegreesPerSecond: 720
RotationSpeedScaler: 0
ScalePerSecond: 5
SmoothLerpToTarget: 0
SmoothPositionLerpRatio: 0.5
SmoothRotationLerpRatio: 0.5
SmoothScaleLerpRatio: 0.5
--- !u!65 &1478280156
BoxCollider:
m_ObjectHideFlags: 0
@ -2132,78 +2058,6 @@ BoxCollider:
serializedVersion: 2
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!114 &1478280157
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1478280149}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ac8d5b128a1d8204fb76c86f47b75912, type: 3}
m_Name:
m_EditorClassIdentifier:
pivotAxis: 0
targetTransform: {fileID: 0}
--- !u!1001 &1492569179
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_RootOrder
value: 4
objectReference: {fileID: 0}
- target: {fileID: 108000011213487996, guid: b2db04283121ca74495c2ee000fb4243,
type: 3}
propertyPath: m_Range
value: 0.01
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
--- !u!114 &1492569180 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 114000013851064060, guid: b2db04283121ca74495c2ee000fb4243,
type: 3}
m_PrefabInstance: {fileID: 1492569179}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: afa1ae235bc6cfa43addd1435e2fd822, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &1498563581
GameObject:
m_ObjectHideFlags: 0
@ -2283,6 +2137,37 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1498563581}
m_CullTransparentMesh: 0
--- !u!1 &1579763168
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1579763169}
m_Layer: 0
m_Name: MixedRealityPlayspace
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1579763169
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1579763168}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1727345409}
m_Father: {fileID: 0}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1619485359
GameObject:
m_ObjectHideFlags: 0
@ -2362,6 +2247,192 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1619485359}
m_CullTransparentMesh: 0
--- !u!1 &1727345408
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1727345409}
- component: {fileID: 1727345414}
- component: {fileID: 1727345413}
- component: {fileID: 1727345412}
- component: {fileID: 1727345411}
- component: {fileID: 1727345410}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1727345409
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1727345408}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 1579763169}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1727345410
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1727345408}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bf98dd1206224111a38765365e98e207, type: 3}
m_Name:
m_EditorClassIdentifier:
setCursorInvisibleWhenFocusLocked: 0
maxGazeCollisionDistance: 10
raycastLayerMasks:
- serializedVersion: 2
m_Bits: 4294967291
stabilizer:
storedStabilitySamples: 60
gazeTransform: {fileID: 0}
minHeadVelocityThreshold: 0.5
maxHeadVelocityThreshold: 2
useEyeTracking: 1
--- !u!114 &1727345411
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1727345408}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7a21b486d0bb44444b1418aaa38b44de, type: 3}
m_Name:
m_EditorClassIdentifier:
m_HorizontalAxis: Horizontal
m_VerticalAxis: Vertical
m_SubmitButton: Submit
m_CancelButton: Cancel
m_InputActionsPerSecond: 10
m_RepeatDelay: 0.5
m_ForceModuleActive: 0
--- !u!114 &1727345412
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1727345408}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_FirstSelected: {fileID: 0}
m_sendNavigationEvents: 1
m_DragThreshold: 10
--- !u!81 &1727345413
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1727345408}
m_Enabled: 1
--- !u!20 &1727345414
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1727345408}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 2
m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1}
m_projectionMatrixMode: 1
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_GateFitMode: 2
m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!1 &1764993121
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1764993123}
- component: {fileID: 1764993122}
m_Layer: 0
m_Name: MixedRealityToolkit
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1764993122
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1764993121}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 83d9acc7968244a8886f3af591305bcb, type: 3}
m_Name:
m_EditorClassIdentifier:
activeProfile: {fileID: 11400000, guid: 019ea231fcd4127409ae7906b2996ee1, type: 2}
--- !u!4 &1764993123
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1764993121}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1957184992
GameObject:
m_ObjectHideFlags: 0
@ -2437,58 +2508,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1957184992}
m_CullTransparentMesh: 0
--- !u!1001 &1972617040
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_RootOrder
value: 3
objectReference: {fileID: 0}
- target: {fileID: 114742747811649402, guid: 3eddd1c29199313478dd3f912bfab2ab,
type: 3}
propertyPath: Cursor
value:
objectReference: {fileID: 1492569180}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
--- !u!20 &1972617041 stripped
Camera:
m_CorrespondingSourceObject: {fileID: 20049547090947856, guid: 3eddd1c29199313478dd3f912bfab2ab,
type: 3}
m_PrefabInstance: {fileID: 1972617040}
m_PrefabAsset: {fileID: 0}
--- !u!1 &2007257836
GameObject:
m_ObjectHideFlags: 0

Просмотреть файл

@ -1,22 +1,15 @@
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using System.Collections.Generic;
using HoloToolkit.Unity.InputModule;
using OpenCVForUnity.CoreModule;
using OpenCVForUnity.ObjdetectModule;
using OpenCVForUnity.UnityUtils;
using OpenCVForUnity.ImgprocModule;
using Microsoft.MixedReality.Toolkit.Input;
#if UNITY_2017_2_OR_NEWER
using UnityEngine.XR.WSA.WebCam;
using UnityEngine.XR.WSA.Input;
using WSAWebCamCameraParameters = UnityEngine.XR.WSA.WebCam.CameraParameters;
#else
using UnityEngine.VR.WSA.WebCam;
using UnityEngine.VR.WSA.Input;
using WSAWebCamCameraParameters = UnityEngine.VR.WSA.WebCam.CameraParameters;
#endif
namespace HoloLensWithOpenCVForUnityExample
{
@ -25,9 +18,8 @@ namespace HoloLensWithOpenCVForUnityExample
/// An example of holographic photo blending using the PhotocCapture class on Hololens. (Air Tap to take a picture)
/// Referring to https://forum.unity3d.com/threads/holographic-photo-blending-with-photocapture.416023/.
/// </summary>
public class HoloLensPhotoCaptureExample : ExampleSceneBase
public class HoloLensPhotoCaptureExample : MonoBehaviour
{
GestureRecognizer m_GestureRecognizer;
GameObject m_Canvas = null;
Renderer m_CanvasRenderer = null;
PhotoCapture m_PhotoCaptureObj;
@ -35,6 +27,8 @@ namespace HoloLensWithOpenCVForUnityExample
bool m_CapturingPhoto = false;
Texture2D m_Texture = null;
bool isPhotoModeRunning = false;
/// <summary>
/// The rgba mat.
/// </summary>
@ -60,205 +54,182 @@ namespace HoloLensWithOpenCVForUnityExample
/// </summary>
Color32[] colors;
protected override void Start ()
protected void Start()
{
base.Start ();
m_Canvas = GameObject.Find ("PhotoCaptureCanvas");
m_CanvasRenderer = m_Canvas.GetComponent<Renderer> () as Renderer;
m_Canvas = GameObject.Find("PhotoCaptureCanvas");
m_CanvasRenderer = m_Canvas.GetComponent<Renderer>() as Renderer;
m_CanvasRenderer.enabled = false;
Initialize ();
Initialize();
}
void SetupGestureRecognizer ()
void Initialize()
{
m_GestureRecognizer = new GestureRecognizer ();
m_GestureRecognizer.SetRecognizableGestures (GestureSettings.Tap);
#if UNITY_2017_2_OR_NEWER
m_GestureRecognizer.Tapped += OnTappedEvent;
#else
m_GestureRecognizer.TappedEvent += OnTappedEvent;
#endif
m_GestureRecognizer.StartCapturingGestures ();
Debug.Log("Initializing...");
List<Resolution> resolutions = new List<Resolution>(PhotoCapture.SupportedResolutions);
Resolution selectedResolution = resolutions[1];
m_CapturingPhoto = false;
}
void Initialize ()
{
Debug.Log ("Initializing...");
List<Resolution> resolutions = new List<Resolution> (PhotoCapture.SupportedResolutions);
Resolution selectedResolution = resolutions [1];
foreach (var item in resolutions) {
Debug.Log ("resolution width " + item.width + " height " + item.height);
foreach (var item in resolutions)
{
Debug.Log("resolution width " + item.width + " height " + item.height);
}
m_CameraParameters = new WSAWebCamCameraParameters (WebCamMode.PhotoMode);
m_CameraParameters = new WSAWebCamCameraParameters(WebCamMode.PhotoMode);
m_CameraParameters.cameraResolutionWidth = selectedResolution.width;
m_CameraParameters.cameraResolutionHeight = selectedResolution.height;
m_CameraParameters.hologramOpacity = 0.0f;
m_CameraParameters.pixelFormat = CapturePixelFormat.BGRA32;
m_Texture = new Texture2D (selectedResolution.width, selectedResolution.height, TextureFormat.BGRA32, false);
m_Texture = new Texture2D(selectedResolution.width, selectedResolution.height, TextureFormat.BGRA32, false);
rgbaMat = new Mat (m_Texture.height, m_Texture.width, CvType.CV_8UC4);
colors = new Color32[rgbaMat.cols () * rgbaMat.rows ()];
grayMat = new Mat (rgbaMat.rows (), rgbaMat.cols (), CvType.CV_8UC1);
rgbaMat = new Mat(m_Texture.height, m_Texture.width, CvType.CV_8UC4);
colors = new Color32[rgbaMat.cols() * rgbaMat.rows()];
grayMat = new Mat(rgbaMat.rows(), rgbaMat.cols(), CvType.CV_8UC1);
faces = new MatOfRect ();
faces = new MatOfRect();
cascade = new CascadeClassifier ();
cascade.load (Utils.getFilePath ("haarcascade_frontalface_alt.xml"));
cascade = new CascadeClassifier();
cascade.load(Utils.getFilePath("haarcascade_frontalface_alt.xml"));
PhotoCapture.CreateAsync (false, OnCreatedPhotoCaptureObject);
PhotoCapture.CreateAsync(false, OnCreatedPhotoCaptureObject);
}
void OnCreatedPhotoCaptureObject (PhotoCapture captureObject)
void OnCreatedPhotoCaptureObject(PhotoCapture captureObject)
{
m_PhotoCaptureObj = captureObject;
m_PhotoCaptureObj.StartPhotoModeAsync (m_CameraParameters, OnStartPhotoMode);
m_PhotoCaptureObj.StartPhotoModeAsync(m_CameraParameters, OnStartPhotoMode);
}
void OnStartPhotoMode (PhotoCapture.PhotoCaptureResult result)
void OnStartPhotoMode(PhotoCapture.PhotoCaptureResult result)
{
SetupGestureRecognizer ();
//SetupGestureRecognizer ();
isPhotoModeRunning = true;
Debug.Log ("Ready!");
Debug.Log ("Air Tap to take a picture.");
Debug.Log("Ready!");
Debug.Log("Air Tap to take a picture.");
}
#if UNITY_2017_2_OR_NEWER
void OnTappedEvent (TappedEventArgs args)
#else
void OnTappedEvent (InteractionSourceKind source, int tapCount, Ray headRay)
#endif
public void OnTapped(MixedRealityPointerEventData eventData)
{
Debug.Log("OnTapped!");
// Determine if a Gaze pointer is over a GUI.
if (GazeManager.Instance.HitObject != null && (GazeManager.Instance.HitObject.GetComponent<Button>() != null || GazeManager.Instance.HitObject.GetComponent<Toggle>() != null
|| GazeManager.Instance.HitObject.GetComponent<Text>() != null || GazeManager.Instance.HitObject.GetComponent<Image>() != null))
if (eventData.selectedObject != null && (eventData.selectedObject.GetComponent<Button>() != null || eventData.selectedObject.GetComponent<Toggle>() != null
|| eventData.selectedObject.GetComponent<Text>() != null || eventData.selectedObject.GetComponent<Image>() != null))
{
return;
}
if (m_CapturingPhoto) {
if (!isPhotoModeRunning || m_CapturingPhoto)
{
return;
}
m_CanvasRenderer.enabled = false;
m_CapturingPhoto = true;
Debug.Log ("Taking picture...");
m_PhotoCaptureObj.TakePhotoAsync (OnPhotoCaptured);
Debug.Log("Taking picture...");
m_PhotoCaptureObj.TakePhotoAsync(OnPhotoCaptured);
}
void OnPhotoCaptured (PhotoCapture.PhotoCaptureResult result, PhotoCaptureFrame photoCaptureFrame)
void OnPhotoCaptured(PhotoCapture.PhotoCaptureResult result, PhotoCaptureFrame photoCaptureFrame)
{
Matrix4x4 cameraToWorldMatrix;
photoCaptureFrame.TryGetCameraToWorldMatrix (out cameraToWorldMatrix);
photoCaptureFrame.TryGetCameraToWorldMatrix(out cameraToWorldMatrix);
Matrix4x4 worldToCameraMatrix = cameraToWorldMatrix.inverse;
Matrix4x4 projectionMatrix;
photoCaptureFrame.TryGetProjectionMatrix (out projectionMatrix);
photoCaptureFrame.TryGetProjectionMatrix(out projectionMatrix);
photoCaptureFrame.UploadImageDataToTexture (m_Texture);
photoCaptureFrame.UploadImageDataToTexture(m_Texture);
Utils.texture2DToMat (m_Texture, rgbaMat);
Utils.texture2DToMat(m_Texture, rgbaMat);
Imgproc.cvtColor (rgbaMat, grayMat, Imgproc.COLOR_RGBA2GRAY);
Imgproc.equalizeHist (grayMat, grayMat);
Imgproc.cvtColor(rgbaMat, grayMat, Imgproc.COLOR_RGBA2GRAY);
Imgproc.equalizeHist(grayMat, grayMat);
// fill all black.
//Imgproc.rectangle (rgbaMat, new Point (0, 0), new Point (rgbaMat.width (), rgbaMat.height ()), new Scalar (0, 0, 0, 0), -1);
// draw an edge lines.
Imgproc.rectangle (rgbaMat, new Point (0, 0), new Point (rgbaMat.width (), rgbaMat.height ()), new Scalar (255, 0, 0, 255), 2);
Imgproc.rectangle(rgbaMat, new Point(0, 0), new Point(rgbaMat.width(), rgbaMat.height()), new Scalar(255, 0, 0, 255), 2);
// draw a diagonal line.
//Imgproc.line (rgbaMat, new Point (0, 0), new Point (rgbaMat.cols (), rgbaMat.rows ()), new Scalar (255, 0, 0, 255));
if (cascade != null)
cascade.detectMultiScale (grayMat, faces, 1.1, 2, 2, // TODO: objdetect.CV_HAAR_SCALE_IMAGE
new Size (grayMat.cols () * 0.05, grayMat.rows () * 0.05), new Size ());
cascade.detectMultiScale(grayMat, faces, 1.1, 2, 2, // TODO: objdetect.CV_HAAR_SCALE_IMAGE
new Size(grayMat.cols() * 0.05, grayMat.rows() * 0.05), new Size());
OpenCVForUnity.CoreModule.Rect[] rects = faces.toArray ();
for (int i = 0; i < rects.Length; i++) {
OpenCVForUnity.CoreModule.Rect[] rects = faces.toArray();
for (int i = 0; i < rects.Length; i++)
{
//Debug.Log ("detect faces " + rects [i]);
Imgproc.rectangle (rgbaMat, new Point (rects [i].x, rects [i].y), new Point (rects [i].x + rects [i].width, rects [i].y + rects [i].height), new Scalar (255, 0, 0, 255), 2);
Imgproc.rectangle(rgbaMat, new Point(rects[i].x, rects[i].y), new Point(rects[i].x + rects[i].width, rects[i].y + rects[i].height), new Scalar(255, 0, 0, 255), 2);
}
Imgproc.putText (rgbaMat, "W:" + rgbaMat.width () + " H:" + rgbaMat.height () + " SO:" + Screen.orientation, new Point (5, rgbaMat.rows () - 10), Imgproc.FONT_HERSHEY_SIMPLEX, 1.5, new Scalar (0, 255, 0, 255), 2, Imgproc.LINE_AA, false);
Imgproc.putText(rgbaMat, "W:" + rgbaMat.width() + " H:" + rgbaMat.height() + " SO:" + Screen.orientation, new Point(5, rgbaMat.rows() - 10), Imgproc.FONT_HERSHEY_SIMPLEX, 1.5, new Scalar(0, 255, 0, 255), 2, Imgproc.LINE_AA, false);
Utils.matToTexture2D (rgbaMat, m_Texture, colors);
Utils.matToTexture2D(rgbaMat, m_Texture, colors);
m_Texture.wrapMode = TextureWrapMode.Clamp;
m_CanvasRenderer.enabled = true;
m_CanvasRenderer.sharedMaterial.SetTexture ("_MainTex", m_Texture);
m_CanvasRenderer.sharedMaterial.SetMatrix ("_WorldToCameraMatrix", worldToCameraMatrix);
m_CanvasRenderer.sharedMaterial.SetMatrix ("_CameraProjectionMatrix", projectionMatrix);
m_CanvasRenderer.sharedMaterial.SetVector ("_VignetteOffset", new Vector4(0, 0));
m_CanvasRenderer.sharedMaterial.SetFloat ("_VignetteScale", 0.0f);
m_CanvasRenderer.sharedMaterial.SetTexture("_MainTex", m_Texture);
m_CanvasRenderer.sharedMaterial.SetMatrix("_WorldToCameraMatrix", worldToCameraMatrix);
m_CanvasRenderer.sharedMaterial.SetMatrix("_CameraProjectionMatrix", projectionMatrix);
m_CanvasRenderer.sharedMaterial.SetVector("_VignetteOffset", new Vector4(0, 0));
m_CanvasRenderer.sharedMaterial.SetFloat("_VignetteScale", 0.0f);
// Position the canvas object slightly in front
// of the real world web camera.
Vector3 position = cameraToWorldMatrix.GetColumn (3) - cameraToWorldMatrix.GetColumn (2);
position *= 2.2f;
Vector3 position = cameraToWorldMatrix.GetColumn(3) - cameraToWorldMatrix.GetColumn(2) * 2.2f;
// Rotate the canvas object so that it faces the user.
Quaternion rotation = Quaternion.LookRotation (-cameraToWorldMatrix.GetColumn (2), cameraToWorldMatrix.GetColumn (1));
Quaternion rotation = Quaternion.LookRotation(-cameraToWorldMatrix.GetColumn(2), cameraToWorldMatrix.GetColumn(1));
m_Canvas.transform.position = position;
m_Canvas.transform.rotation = rotation;
Debug.Log ("Took picture!");
Debug.Log ("projectionMatrix:\n" + projectionMatrix.ToString());
Debug.Log("Took picture!");
Debug.Log("projectionMatrix:\n" + projectionMatrix.ToString());
m_CapturingPhoto = false;
}
void OnStopPhotoMode (PhotoCapture.PhotoCaptureResult result)
void OnStopPhotoMode(PhotoCapture.PhotoCaptureResult result)
{
Debug.Log ("StopPhotoMode!");
m_PhotoCaptureObj.Dispose ();
Debug.Log("StopPhotoMode!");
m_PhotoCaptureObj.Dispose();
isPhotoModeRunning = false;
}
/// <summary>
/// Raises the destroy event.
/// </summary>
void OnDestroy ()
void OnDestroy()
{
if (m_PhotoCaptureObj != null)
m_PhotoCaptureObj.StopPhotoModeAsync (OnStopPhotoMode);
if (m_GestureRecognizer != null && m_GestureRecognizer.IsCapturingGestures()) {
m_GestureRecognizer.StopCapturingGestures ();
#if UNITY_2017_2_OR_NEWER
m_GestureRecognizer.Tapped -= OnTappedEvent;
#else
m_GestureRecognizer.TappedEvent -= OnTappedEvent;
#endif
m_GestureRecognizer.Dispose ();
}
m_PhotoCaptureObj.StopPhotoModeAsync(OnStopPhotoMode);
if (rgbaMat != null)
rgbaMat.Dispose ();
rgbaMat.Dispose();
if (grayMat != null)
grayMat.Dispose ();
grayMat.Dispose();
if (cascade != null)
cascade.Dispose ();
cascade.Dispose();
}
/// <summary>
/// Raises the back button click event.
/// </summary>
public void OnBackButtonClick ()
public void OnBackButtonClick()
{
LoadScene ("HoloLensWithOpenCVForUnityExample");
SceneManager.LoadScene("HoloLensWithOpenCVForUnityExample");
}
}
}

Просмотреть файл

@ -44,7 +44,7 @@ RenderSettings:
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 11
m_GIWorkflowMode: 0
m_GIWorkflowMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
@ -52,7 +52,7 @@ LightmapSettings:
m_AlbedoBoost: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 10
m_Resolution: 2
@ -70,8 +70,8 @@ LightmapSettings:
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 1
m_BakeBackend: 0
m_MixedBakeMode: 2
m_BakeBackend: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 500
@ -79,7 +79,7 @@ LightmapSettings:
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVRFilteringMode: 0
m_PVRFilteringMode: 1
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
@ -89,7 +89,7 @@ LightmapSettings:
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ShowResolutionOverlay: 1
m_LightingDataAsset: {fileID: 0}
m_UseShadowmask: 0
m_UseShadowmask: 1
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
@ -125,6 +125,7 @@ GameObject:
- component: {fileID: 34117365}
- component: {fileID: 34117364}
- component: {fileID: 34117368}
- component: {fileID: 34117369}
m_Layer: 0
m_Name: PhotoCaptureCanvas
m_TagString: Untagged
@ -217,62 +218,51 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 4ef4a715f18c9dd47915d7a51859c1ff, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1001 &116875595
PrefabInstance:
--- !u!114 &34117369
MonoBehaviour:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_RootOrder
value: 2
objectReference: {fileID: 0}
- target: {fileID: 4587520633816736, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 20770519707920992, guid: d29bc40b7f3df26479d6a0aac211c355,
type: 3}
propertyPath: far clip plane
value: 5
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
--- !u!20 &228639285 stripped
Camera:
m_CorrespondingSourceObject: {fileID: 20049547090947856, guid: 3eddd1c29199313478dd3f912bfab2ab,
type: 3}
m_PrefabInstance: {fileID: 2060851756}
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 34117363}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b7e736ec19b1c5543a9bb27c150f94fb, type: 3}
m_Name:
m_EditorClassIdentifier:
isFocusRequired: 0
MarkEventsAsUsed: 0
OnPointerDown:
m_PersistentCalls:
m_Calls: []
m_TypeName: Microsoft.MixedReality.Toolkit.Input.PointerUnityEvent, Microsoft.MixedReality.Toolkit.SDK,
Version=2.2.0.0, Culture=neutral, PublicKeyToken=null
OnPointerUp:
m_PersistentCalls:
m_Calls: []
m_TypeName: Microsoft.MixedReality.Toolkit.Input.PointerUnityEvent, Microsoft.MixedReality.Toolkit.SDK,
Version=2.2.0.0, Culture=neutral, PublicKeyToken=null
OnPointerClicked:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 34117368}
m_MethodName: OnTapped
m_Mode: 0
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
m_TypeName: Microsoft.MixedReality.Toolkit.Input.PointerUnityEvent, Microsoft.MixedReality.Toolkit.SDK,
Version=2.2.0.0, Culture=neutral, PublicKeyToken=null
OnPointerDragged:
m_PersistentCalls:
m_Calls: []
m_TypeName: Microsoft.MixedReality.Toolkit.Input.PointerUnityEvent, Microsoft.MixedReality.Toolkit.SDK,
Version=2.2.0.0, Culture=neutral, PublicKeyToken=null
--- !u!1 &314898261
GameObject:
m_ObjectHideFlags: 0
@ -356,6 +346,230 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 314898261}
m_CullTransparentMesh: 0
--- !u!1 &738791238
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 738791241}
- component: {fileID: 738791240}
- component: {fileID: 738791239}
m_Layer: 0
m_Name: UnityUI
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &738791239
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 738791238}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4684083f6dff4a1d8a790bccc354fcf4, type: 3}
m_Name:
m_EditorClassIdentifier:
updateLinkedTransform: 0
moveLerpTime: 0.1
rotateLerpTime: 0.1
scaleLerpTime: 0
maintainScale: 1
smoothing: 1
lifetime: 0
referenceDirection: 1
minDistance: 1
maxDistance: 2
minViewDegrees: 0
maxViewDegrees: 20
aspectV: 1
ignoreAngleClamp: 0
ignoreDistanceClamp: 0
useFixedVerticalPosition: 0
fixedVerticalPosition: -0.4
orientToReferenceDirection: 0
--- !u!114 &738791240
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 738791238}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b55691ad5b034fe6966763a6e23818d2, type: 3}
m_Name:
m_EditorClassIdentifier:
trackedTargetType: 0
trackedHandness: 3
trackedHandJoint: 2
transformOverride: {fileID: 0}
additionalOffset: {x: 0, y: 0, z: 0}
additionalRotation: {x: 0, y: 0, z: 0}
updateSolvers: 1
--- !u!4 &738791241
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 738791238}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 2}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1204382171}
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1056934370
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1056934371}
- component: {fileID: 1056934376}
- component: {fileID: 1056934375}
- component: {fileID: 1056934374}
- component: {fileID: 1056934373}
- component: {fileID: 1056934372}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1056934371
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1056934370}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 2003932586}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1056934372
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1056934370}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bf98dd1206224111a38765365e98e207, type: 3}
m_Name:
m_EditorClassIdentifier:
setCursorInvisibleWhenFocusLocked: 0
maxGazeCollisionDistance: 10
raycastLayerMasks:
- serializedVersion: 2
m_Bits: 4294967291
stabilizer:
storedStabilitySamples: 60
gazeTransform: {fileID: 0}
minHeadVelocityThreshold: 0.5
maxHeadVelocityThreshold: 2
useEyeTracking: 1
--- !u!114 &1056934373
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1056934370}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7a21b486d0bb44444b1418aaa38b44de, type: 3}
m_Name:
m_EditorClassIdentifier:
m_HorizontalAxis: Horizontal
m_VerticalAxis: Vertical
m_SubmitButton: Submit
m_CancelButton: Cancel
m_InputActionsPerSecond: 10
m_RepeatDelay: 0.5
m_ForceModuleActive: 0
--- !u!114 &1056934374
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1056934370}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_FirstSelected: {fileID: 0}
m_sendNavigationEvents: 1
m_DragThreshold: 10
--- !u!81 &1056934375
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1056934370}
m_Enabled: 1
--- !u!20 &1056934376
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1056934370}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 2
m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1}
m_projectionMatrixMode: 1
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_GateFitMode: 2
m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!1 &1204382163
GameObject:
m_ObjectHideFlags: 0
@ -369,10 +583,7 @@ GameObject:
- component: {fileID: 1204382169}
- component: {fileID: 1204382168}
- component: {fileID: 1204382167}
- component: {fileID: 1204382166}
- component: {fileID: 1204382165}
- component: {fileID: 1204382164}
- component: {fileID: 1204382172}
m_Layer: 5
m_Name: Canvas
m_TagString: Untagged
@ -389,49 +600,9 @@ MonoBehaviour:
m_GameObject: {fileID: 1204382163}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ac8d5b128a1d8204fb76c86f47b75912, type: 3}
m_Script: {fileID: 11500000, guid: ff4e3b9019304b5aaec5664de0778d21, type: 3}
m_Name:
m_EditorClassIdentifier:
pivotAxis: 0
targetTransform: {fileID: 0}
--- !u!114 &1204382165
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1204382163}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2be8bd2ebd8277c448d6d81c75517fee, type: 3}
m_Name:
m_EditorClassIdentifier:
TagalongDistance: 2
EnforceDistance: 1
PositionUpdateSpeed: 9.8
SmoothMotion: 1
SmoothingFactor: 0.75
--- !u!114 &1204382166
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1204382163}
m_Enabled: 0
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fb69de839bd015f4099b5bd2c45e53e5, type: 3}
m_Name:
m_EditorClassIdentifier:
UseUnscaledTime: 1
PositionPerSecond: 30
RotationDegreesPerSecond: 720
RotationSpeedScaler: 0
ScalePerSecond: 5
SmoothLerpToTarget: 0
SmoothPositionLerpRatio: 0.5
SmoothRotationLerpRatio: 0.5
SmoothScaleLerpRatio: 0.5
--- !u!65 &1204382167
BoxCollider:
m_ObjectHideFlags: 0
@ -494,7 +665,7 @@ Canvas:
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 2
m_Camera: {fileID: 228639285}
m_Camera: {fileID: 0}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
@ -512,32 +683,19 @@ RectTransform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1204382163}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 2}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.001, y: 0.001, z: 0.001}
m_Children:
- {fileID: 1267244721}
m_Father: {fileID: 0}
m_RootOrder: 1
m_Father: {fileID: 738791241}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 800, y: 496.1241}
m_SizeDelta: {x: 640, y: 480}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1204382172
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1204382163}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2aebab3047f2113489ca3eb8423228b6, type: 3}
m_Name:
m_EditorClassIdentifier:
Canvas: {fileID: 1204382170}
--- !u!1 &1267244720
GameObject:
m_ObjectHideFlags: 0
@ -637,76 +795,81 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1267244720}
m_CullTransparentMesh: 0
--- !u!114 &1725320204 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 114000013851064060, guid: b2db04283121ca74495c2ee000fb4243,
type: 3}
m_PrefabInstance: {fileID: 1880953870}
--- !u!1 &1733684129
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1733684131}
- component: {fileID: 1733684130}
m_Layer: 0
m_Name: MixedRealityToolkit
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1733684130
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1733684129}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: afa1ae235bc6cfa43addd1435e2fd822, type: 3}
m_Script: {fileID: 11500000, guid: 83d9acc7968244a8886f3af591305bcb, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1001 &1880953870
PrefabInstance:
activeProfile: {fileID: 11400000, guid: 019ea231fcd4127409ae7906b2996ee1, type: 2}
--- !u!4 &1733684131
Transform:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_RootOrder
value: 4
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalScale.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalScale.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalScale.z
value: 1
objectReference: {fileID: 0}
- target: {fileID: 108000011213487996, guid: b2db04283121ca74495c2ee000fb4243,
type: 3}
propertyPath: m_Range
value: 0.01
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1733684129}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &2003932585
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2003932586}
m_Layer: 0
m_Name: MixedRealityPlayspace
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2003932586
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2003932585}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1056934371}
m_Father: {fileID: 0}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &2053462721
GameObject:
m_ObjectHideFlags: 0
@ -792,8 +955,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -863,49 +1026,3 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2053462721}
m_CullTransparentMesh: 0
--- !u!1001 &2060851756
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_RootOrder
value: 3
objectReference: {fileID: 0}
- target: {fileID: 114742747811649402, guid: 3eddd1c29199313478dd3f912bfab2ab,
type: 3}
propertyPath: Cursor
value:
objectReference: {fileID: 1725320204}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}

Просмотреть файл

@ -1,6 +1,7 @@
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using OpenCVForUnity.CoreModule;
namespace HoloLensWithOpenCVForUnityExample
@ -8,7 +9,7 @@ namespace HoloLensWithOpenCVForUnityExample
/// <summary>
/// HoloLensWithOpenCVForUnity Example
/// </summary>
public class HoloLensWithOpenCVForUnityExample : ExampleSceneBase
public class HoloLensWithOpenCVForUnityExample : MonoBehaviour
{
public Text exampleTitle;
public Text versionInfo;
@ -16,49 +17,47 @@ namespace HoloLensWithOpenCVForUnityExample
static float verticalNormalizedPosition = 1f;
// Use this for initialization
protected override void Start ()
protected void Start()
{
base.Start ();
exampleTitle.text = "HoloLensWithOpenCVForUnity Example " + Application.version;
versionInfo.text = Core.NATIVE_LIBRARY_NAME + " " + OpenCVForUnity.UnityUtils.Utils.getVersion() + " (" + Core.VERSION + ")";
versionInfo.text += " / UnityEditor " + Application.unityVersion;
versionInfo.text += " / ";
#if UNITY_EDITOR
#if UNITY_EDITOR
versionInfo.text += "Editor";
#elif UNITY_STANDALONE_WIN
#elif UNITY_STANDALONE_WIN
versionInfo.text += "Windows";
#elif UNITY_STANDALONE_OSX
#elif UNITY_STANDALONE_OSX
versionInfo.text += "Mac OSX";
#elif UNITY_STANDALONE_LINUX
#elif UNITY_STANDALONE_LINUX
versionInfo.text += "Linux";
#elif UNITY_ANDROID
#elif UNITY_ANDROID
versionInfo.text += "Android";
#elif UNITY_IOS
#elif UNITY_IOS
versionInfo.text += "iOS";
#elif UNITY_WSA
#elif UNITY_WSA
versionInfo.text += "WSA";
#elif UNITY_WEBGL
#elif UNITY_WEBGL
versionInfo.text += "WebGL";
#endif
#endif
versionInfo.text += " ";
#if ENABLE_MONO
#if ENABLE_MONO
versionInfo.text += "Mono";
#elif ENABLE_IL2CPP
#elif ENABLE_IL2CPP
versionInfo.text += "IL2CPP";
#elif ENABLE_DOTNET
#elif ENABLE_DOTNET
versionInfo.text += ".NET";
#endif
#endif
scrollRect.verticalNormalizedPosition = verticalNormalizedPosition;
}
// Update is called once per frame
void Update ()
void Update()
{
}
public void OnScrollRectValueChanged()
@ -67,39 +66,39 @@ namespace HoloLensWithOpenCVForUnityExample
}
public void OnShowLicenseButtonClick ()
public void OnShowLicenseButtonClick()
{
LoadScene ("ShowLicense");
SceneManager.LoadScene("ShowLicense");
}
public void OnHoloLensPhotoCaptureExampleButtonClick ()
public void OnHoloLensPhotoCaptureExampleButtonClick()
{
LoadScene ("HoloLensPhotoCaptureExample");
SceneManager.LoadScene("HoloLensPhotoCaptureExample");
}
public void OnHoloLensComicFilterExampleButtonClick ()
public void OnHoloLensComicFilterExampleButtonClick()
{
LoadScene ("HoloLensComicFilterExample");
}
public void OnHoloLensFaceDetectionExampleButtonClick ()
{
LoadScene ("HoloLensFaceDetectionExample");
SceneManager.LoadScene("HoloLensComicFilterExample");
}
public void OnHoloLensFaceDetectionOverlayExampleButtonClick ()
public void OnHoloLensFaceDetectionExampleButtonClick()
{
LoadScene ("HoloLensFaceDetectionOverlayExample");
SceneManager.LoadScene("HoloLensFaceDetectionExample");
}
public void OnHoloLensArUcoExampleButtonClick ()
public void OnHoloLensFaceDetectionOverlayExampleButtonClick()
{
LoadScene ("HoloLensArUcoExample");
SceneManager.LoadScene("HoloLensFaceDetectionOverlayExample");
}
public void OnHoloLensArUcoCameraCalibrationExampleButtonClick ()
public void OnHoloLensArUcoExampleButtonClick()
{
LoadScene ("HoloLensArUcoCameraCalibrationExample");
SceneManager.LoadScene("HoloLensArUcoExample");
}
public void OnHoloLensArUcoCameraCalibrationExampleButtonClick()
{
SceneManager.LoadScene("HoloLensArUcoCameraCalibrationExample");
}
}
}

Просмотреть файл

@ -20,11 +20,11 @@ RenderSettings:
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
m_AmbientEquatorColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
m_AmbientGroundColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 3
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 0}
m_HaloStrength: 0.5
@ -55,23 +55,23 @@ LightmapSettings:
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 10
m_Resolution: 1
m_BakeResolution: 50
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 0
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 0
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 1024
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 1
m_BakeBackend: 0
m_MixedBakeMode: 2
m_BakeBackend: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 500
@ -89,7 +89,7 @@ LightmapSettings:
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ShowResolutionOverlay: 1
m_LightingDataAsset: {fileID: 0}
m_UseShadowmask: 0
m_UseShadowmask: 1
--- !u!196 &5
NavMeshSettings:
serializedVersion: 2
@ -275,8 +275,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -431,8 +431,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -866,8 +866,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -931,111 +931,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 691428506}
m_CullTransparentMesh: 0
--- !u!1001 &748020957
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_RootOrder
value: 4
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
--- !u!114 &748020958 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 114000013851064060, guid: b2db04283121ca74495c2ee000fb4243,
type: 3}
m_PrefabInstance: {fileID: 748020957}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: afa1ae235bc6cfa43addd1435e2fd822, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1001 &804900737
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_RootOrder
value: 3
objectReference: {fileID: 0}
- target: {fileID: 114742747811649402, guid: 3eddd1c29199313478dd3f912bfab2ab,
type: 3}
propertyPath: Cursor
value:
objectReference: {fileID: 748020958}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
--- !u!20 &804900738 stripped
Camera:
m_CorrespondingSourceObject: {fileID: 20049547090947856, guid: 3eddd1c29199313478dd3f912bfab2ab,
type: 3}
m_PrefabInstance: {fileID: 804900737}
m_PrefabAsset: {fileID: 0}
--- !u!1 &965925560
GameObject:
m_ObjectHideFlags: 0
@ -1050,10 +945,7 @@ GameObject:
- component: {fileID: 965925563}
- component: {fileID: 965925562}
- component: {fileID: 965925568}
- component: {fileID: 965925567}
- component: {fileID: 965925566}
- component: {fileID: 965925565}
- component: {fileID: 965925569}
m_Layer: 5
m_Name: Canvas
m_TagString: Untagged
@ -1069,18 +961,18 @@ RectTransform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 965925560}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 2}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.001, y: 0.001, z: 0.001}
m_Children:
- {fileID: 1899556538}
m_Father: {fileID: 0}
m_RootOrder: 1
m_Father: {fileID: 2036144017}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 800, y: 496.12405}
m_SizeDelta: {x: 640, y: 480}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &965925562
MonoBehaviour:
@ -1134,7 +1026,7 @@ Canvas:
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 2
m_Camera: {fileID: 804900738}
m_Camera: {fileID: 0}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
@ -1154,49 +1046,9 @@ MonoBehaviour:
m_GameObject: {fileID: 965925560}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ac8d5b128a1d8204fb76c86f47b75912, type: 3}
m_Script: {fileID: 11500000, guid: ff4e3b9019304b5aaec5664de0778d21, type: 3}
m_Name:
m_EditorClassIdentifier:
pivotAxis: 0
targetTransform: {fileID: 0}
--- !u!114 &965925566
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 965925560}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2be8bd2ebd8277c448d6d81c75517fee, type: 3}
m_Name:
m_EditorClassIdentifier:
TagalongDistance: 2
EnforceDistance: 1
PositionUpdateSpeed: 9.8
SmoothMotion: 1
SmoothingFactor: 0.75
--- !u!114 &965925567
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 965925560}
m_Enabled: 0
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fb69de839bd015f4099b5bd2c45e53e5, type: 3}
m_Name:
m_EditorClassIdentifier:
UseUnscaledTime: 1
PositionPerSecond: 30
RotationDegreesPerSecond: 720
RotationSpeedScaler: 0
ScalePerSecond: 5
SmoothLerpToTarget: 0
SmoothPositionLerpRatio: 0.5
SmoothRotationLerpRatio: 0.5
SmoothScaleLerpRatio: 0.5
--- !u!65 &965925568
BoxCollider:
m_ObjectHideFlags: 0
@ -1210,19 +1062,6 @@ BoxCollider:
serializedVersion: 2
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!114 &965925569
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 965925560}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2aebab3047f2113489ca3eb8423228b6, type: 3}
m_Name:
m_EditorClassIdentifier:
Canvas: {fileID: 965925564}
--- !u!1 &983952212
GameObject:
m_ObjectHideFlags: 0
@ -1308,8 +1147,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -1464,8 +1303,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -1535,52 +1374,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 984789609}
m_CullTransparentMesh: 0
--- !u!1001 &988437600
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_RootOrder
value: 2
objectReference: {fileID: 0}
- target: {fileID: 20770519707920992, guid: d29bc40b7f3df26479d6a0aac211c355,
type: 3}
propertyPath: far clip plane
value: 5
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
--- !u!1 &1084706036
GameObject:
m_ObjectHideFlags: 0
@ -1749,8 +1542,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -1905,8 +1698,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -2138,6 +1931,81 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1353284452}
m_CullTransparentMesh: 0
--- !u!1 &1449875054
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1449875055}
m_Layer: 0
m_Name: MixedRealityPlayspace
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1449875055
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1449875054}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 2100204426}
m_Father: {fileID: 0}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1475387462
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1475387464}
- component: {fileID: 1475387463}
m_Layer: 0
m_Name: MixedRealityToolkit
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1475387463
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1475387462}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 83d9acc7968244a8886f3af591305bcb, type: 3}
m_Name:
m_EditorClassIdentifier:
activeProfile: {fileID: 11400000, guid: 019ea231fcd4127409ae7906b2996ee1, type: 2}
--- !u!4 &1475387464
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1475387462}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1506704322
GameObject:
m_ObjectHideFlags: 0
@ -2449,8 +2317,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -2917,3 +2785,227 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_HorizontalFit: 0
m_VerticalFit: 2
--- !u!1 &2036144014
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2036144017}
- component: {fileID: 2036144016}
- component: {fileID: 2036144015}
m_Layer: 0
m_Name: UnityUI
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &2036144015
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2036144014}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4684083f6dff4a1d8a790bccc354fcf4, type: 3}
m_Name:
m_EditorClassIdentifier:
updateLinkedTransform: 0
moveLerpTime: 0.1
rotateLerpTime: 0.1
scaleLerpTime: 0
maintainScale: 1
smoothing: 1
lifetime: 0
referenceDirection: 1
minDistance: 1
maxDistance: 2
minViewDegrees: 0
maxViewDegrees: 20
aspectV: 1
ignoreAngleClamp: 0
ignoreDistanceClamp: 0
useFixedVerticalPosition: 0
fixedVerticalPosition: -0.4
orientToReferenceDirection: 0
--- !u!114 &2036144016
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2036144014}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b55691ad5b034fe6966763a6e23818d2, type: 3}
m_Name:
m_EditorClassIdentifier:
trackedTargetType: 0
trackedHandness: 3
trackedHandJoint: 2
transformOverride: {fileID: 0}
additionalOffset: {x: 0, y: 0, z: 0}
additionalRotation: {x: 0, y: 0, z: 0}
updateSolvers: 1
--- !u!4 &2036144017
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2036144014}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 2}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 965925561}
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &2100204425
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2100204426}
- component: {fileID: 2100204431}
- component: {fileID: 2100204430}
- component: {fileID: 2100204429}
- component: {fileID: 2100204428}
- component: {fileID: 2100204427}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2100204426
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2100204425}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 1449875055}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &2100204427
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2100204425}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bf98dd1206224111a38765365e98e207, type: 3}
m_Name:
m_EditorClassIdentifier:
setCursorInvisibleWhenFocusLocked: 0
maxGazeCollisionDistance: 10
raycastLayerMasks:
- serializedVersion: 2
m_Bits: 4294967291
stabilizer:
storedStabilitySamples: 60
gazeTransform: {fileID: 0}
minHeadVelocityThreshold: 0.5
maxHeadVelocityThreshold: 2
useEyeTracking: 1
--- !u!114 &2100204428
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2100204425}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7a21b486d0bb44444b1418aaa38b44de, type: 3}
m_Name:
m_EditorClassIdentifier:
m_HorizontalAxis: Horizontal
m_VerticalAxis: Vertical
m_SubmitButton: Submit
m_CancelButton: Cancel
m_InputActionsPerSecond: 10
m_RepeatDelay: 0.5
m_ForceModuleActive: 0
--- !u!114 &2100204429
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2100204425}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_FirstSelected: {fileID: 0}
m_sendNavigationEvents: 1
m_DragThreshold: 10
--- !u!81 &2100204430
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2100204425}
m_Enabled: 1
--- !u!20 &2100204431
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2100204425}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 2
m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1}
m_projectionMatrixMode: 1
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_GateFitMode: 2
m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022

Просмотреть файл

@ -24,7 +24,7 @@ Material:
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _VignetteScale: 0
- _VignetteScale: 1.5
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _VignetteOffset: {r: 0, g: 0, b: 0, a: 0}

Просмотреть файл

@ -4,31 +4,27 @@
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: quad_material
m_Shader: {fileID: 10752, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords:
m_LightmapFlags: 5
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 2
serializedVersion: 3
m_TexEnvs:
- first:
name: _MainTex
second:
- _MainTex:
m_Texture: {fileID: 2800000, guid: e266aedc629209a4196966ac4bf20d68, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- first:
name: _VignetteScale
second: 0
- _VignetteScale: 0
m_Colors:
- first:
name: _Color
second: {r: 1, g: 1, b: 1, a: 1}
- first:
name: _VignetteOffset
second: {r: 0, g: 0, b: 0, a: 0}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _VignetteOffset: {r: 0, g: 0, b: 0, a: 0}

Просмотреть файл

@ -1,36 +0,0 @@
#pragma warning disable 0109
using UnityEngine;
using UnityEngine.SceneManagement;
using HoloToolkit.Unity.InputModule;
using HoloToolkit.Unity;
namespace HoloLensWithOpenCVForUnityExample
{
// Prevent HoloToolKit InputManager Singletons from working multiple scenes.
public class ExampleSceneBase : MonoBehaviour {
protected new MixedRealityCameraManager camera;
protected HoloToolkit.Unity.InputModule.Cursor cursor;
protected InputManager input;
// Use this for initialization
protected virtual void Start () {
camera = FindObjectOfType<MixedRealityCameraManager>();
cursor = FindObjectOfType<HoloToolkit.Unity.InputModule.Cursor>();
input = FindObjectOfType<InputManager>();
}
protected virtual void LoadScene(string sceneName) {
Destroy(camera.transform.parent.gameObject);
Destroy(cursor.gameObject);
Destroy(input.gameObject);
// Avoids the error that is caused by the absence of the camera in the scene.
Camera cam = gameObject.AddComponent<Camera> ();
cam.backgroundColor = Color.black;
CameraCache.Refresh (cam);
SceneManager.LoadScene (sceneName);
}
}
}

Просмотреть файл

@ -1,28 +1,29 @@
using UnityEngine;
using UnityEngine.SceneManagement;
using System.Collections;
namespace HoloLensWithOpenCVForUnityExample
{
public class ShowLicense : ExampleSceneBase
public class ShowLicense : MonoBehaviour
{
// Use this for initialization
protected override void Start ()
protected void Start()
{
base.Start ();
}
// Update is called once per frame
void Update ()
void Update()
{
}
/// <summary>
/// Raises the back button click event.
/// </summary>
public void OnBackButtonClick ()
public void OnBackButtonClick()
{
LoadScene ("HoloLensWithOpenCVForUnityExample");
SceneManager.LoadScene("HoloLensWithOpenCVForUnityExample");
}
}
}

Просмотреть файл

@ -20,11 +20,11 @@ RenderSettings:
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
m_AmbientEquatorColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
m_AmbientGroundColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 3
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 0}
m_HaloStrength: 0.5
@ -55,23 +55,23 @@ LightmapSettings:
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 10
m_Resolution: 1
m_BakeResolution: 50
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 0
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 0
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 1024
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 1
m_BakeBackend: 0
m_MixedBakeMode: 2
m_BakeBackend: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 500
@ -89,7 +89,7 @@ LightmapSettings:
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ShowResolutionOverlay: 1
m_LightingDataAsset: {fileID: 0}
m_UseShadowmask: 0
m_UseShadowmask: 1
--- !u!196 &5
NavMeshSettings:
serializedVersion: 2
@ -240,57 +240,6 @@ MonoBehaviour:
m_Calls: []
m_TypeName: UnityEngine.UI.ScrollRect+ScrollRectEvent, UnityEngine.UI, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null
--- !u!1001 &113481611
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
propertyPath: m_RootOrder
value: 2
objectReference: {fileID: 0}
- target: {fileID: 20770519707920992, guid: d29bc40b7f3df26479d6a0aac211c355,
type: 3}
propertyPath: m_ClearFlags
value: 1
objectReference: {fileID: 0}
- target: {fileID: 20770519707920992, guid: d29bc40b7f3df26479d6a0aac211c355,
type: 3}
propertyPath: far clip plane
value: 5
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: d29bc40b7f3df26479d6a0aac211c355, type: 3}
--- !u!1 &222236842
GameObject:
m_ObjectHideFlags: 0
@ -329,6 +278,81 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: -20, y: -20}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &289714094
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 289714095}
m_Layer: 0
m_Name: MixedRealityPlayspace
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &289714095
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 289714094}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 733034982}
m_Father: {fileID: 0}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &496169141
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 496169143}
- component: {fileID: 496169142}
m_Layer: 0
m_Name: MixedRealityToolkit
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &496169142
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 496169141}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 83d9acc7968244a8886f3af591305bcb, type: 3}
m_Name:
m_EditorClassIdentifier:
activeProfile: {fileID: 11400000, guid: 019ea231fcd4127409ae7906b2996ee1, type: 2}
--- !u!4 &496169143
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 496169141}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &593276356
GameObject:
m_ObjectHideFlags: 0
@ -366,7 +390,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: -0.000030517578}
m_AnchoredPosition: {x: 0, y: 0.000030335286}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 1}
--- !u!114 &593276358
@ -452,58 +476,148 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 593276356}
m_CullTransparentMesh: 0
--- !u!1001 &697584198
PrefabInstance:
--- !u!1 &733034981
GameObject:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
propertyPath: m_RootOrder
value: 3
objectReference: {fileID: 0}
- target: {fileID: 114742747811649402, guid: 3eddd1c29199313478dd3f912bfab2ab,
type: 3}
propertyPath: Cursor
value:
objectReference: {fileID: 1252979787}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 3}
--- !u!20 &697584199 stripped
Camera:
m_CorrespondingSourceObject: {fileID: 20049547090947856, guid: 3eddd1c29199313478dd3f912bfab2ab,
type: 3}
m_PrefabInstance: {fileID: 697584198}
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 733034982}
- component: {fileID: 733034987}
- component: {fileID: 733034986}
- component: {fileID: 733034985}
- component: {fileID: 733034984}
- component: {fileID: 733034983}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &733034982
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 733034981}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 289714095}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &733034983
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 733034981}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bf98dd1206224111a38765365e98e207, type: 3}
m_Name:
m_EditorClassIdentifier:
setCursorInvisibleWhenFocusLocked: 0
maxGazeCollisionDistance: 10
raycastLayerMasks:
- serializedVersion: 2
m_Bits: 4294967291
stabilizer:
storedStabilitySamples: 60
gazeTransform: {fileID: 0}
minHeadVelocityThreshold: 0.5
maxHeadVelocityThreshold: 2
useEyeTracking: 1
--- !u!114 &733034984
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 733034981}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7a21b486d0bb44444b1418aaa38b44de, type: 3}
m_Name:
m_EditorClassIdentifier:
m_HorizontalAxis: Horizontal
m_VerticalAxis: Vertical
m_SubmitButton: Submit
m_CancelButton: Cancel
m_InputActionsPerSecond: 10
m_RepeatDelay: 0.5
m_ForceModuleActive: 0
--- !u!114 &733034985
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 733034981}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_FirstSelected: {fileID: 0}
m_sendNavigationEvents: 1
m_DragThreshold: 10
--- !u!81 &733034986
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 733034981}
m_Enabled: 1
--- !u!20 &733034987
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 733034981}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 2
m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1}
m_projectionMatrixMode: 1
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_GateFitMode: 2
m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!1 &737810279
GameObject:
m_ObjectHideFlags: 0
@ -518,10 +632,7 @@ GameObject:
- component: {fileID: 737810282}
- component: {fileID: 737810281}
- component: {fileID: 737810287}
- component: {fileID: 737810286}
- component: {fileID: 737810285}
- component: {fileID: 737810284}
- component: {fileID: 737810288}
m_Layer: 5
m_Name: Canvas
m_TagString: Untagged
@ -537,19 +648,19 @@ RectTransform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 737810279}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 2}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.001, y: 0.001, z: 0.001}
m_Children:
- {fileID: 2108325106}
- {fileID: 1154483357}
m_Father: {fileID: 0}
m_RootOrder: 1
m_Father: {fileID: 1450715879}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 800, y: 492.30768}
m_SizeDelta: {x: 640, y: 480}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &737810281
MonoBehaviour:
@ -603,7 +714,7 @@ Canvas:
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 2
m_Camera: {fileID: 697584199}
m_Camera: {fileID: 0}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
@ -623,49 +734,9 @@ MonoBehaviour:
m_GameObject: {fileID: 737810279}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ac8d5b128a1d8204fb76c86f47b75912, type: 3}
m_Script: {fileID: 11500000, guid: ff4e3b9019304b5aaec5664de0778d21, type: 3}
m_Name:
m_EditorClassIdentifier:
pivotAxis: 0
targetTransform: {fileID: 0}
--- !u!114 &737810285
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 737810279}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2be8bd2ebd8277c448d6d81c75517fee, type: 3}
m_Name:
m_EditorClassIdentifier:
TagalongDistance: 2
EnforceDistance: 1
PositionUpdateSpeed: 9.8
SmoothMotion: 1
SmoothingFactor: 0.75
--- !u!114 &737810286
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 737810279}
m_Enabled: 0
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fb69de839bd015f4099b5bd2c45e53e5, type: 3}
m_Name:
m_EditorClassIdentifier:
UseUnscaledTime: 1
PositionPerSecond: 30
RotationDegreesPerSecond: 720
RotationSpeedScaler: 0
ScalePerSecond: 5
SmoothLerpToTarget: 0
SmoothPositionLerpRatio: 0.5
SmoothRotationLerpRatio: 0.5
SmoothScaleLerpRatio: 0.5
--- !u!65 &737810287
BoxCollider:
m_ObjectHideFlags: 0
@ -679,19 +750,6 @@ BoxCollider:
serializedVersion: 2
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!114 &737810288
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 737810279}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2aebab3047f2113489ca3eb8423228b6, type: 3}
m_Name:
m_EditorClassIdentifier:
Canvas: {fileID: 737810283}
--- !u!1 &993264510
GameObject:
m_ObjectHideFlags: 0
@ -774,59 +832,88 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: -25}
m_SizeDelta: {x: -40, y: -90}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1001 &1252979786
PrefabInstance:
--- !u!1 &1450715876
GameObject:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4000013535415816, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
propertyPath: m_RootOrder
value: 4
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: b2db04283121ca74495c2ee000fb4243, type: 3}
--- !u!114 &1252979787 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 114000013851064060, guid: b2db04283121ca74495c2ee000fb4243,
type: 3}
m_PrefabInstance: {fileID: 1252979786}
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1450715879}
- component: {fileID: 1450715878}
- component: {fileID: 1450715877}
m_Layer: 0
m_Name: UnityUI
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1450715877
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1450715876}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: afa1ae235bc6cfa43addd1435e2fd822, type: 3}
m_Script: {fileID: 11500000, guid: 4684083f6dff4a1d8a790bccc354fcf4, type: 3}
m_Name:
m_EditorClassIdentifier:
updateLinkedTransform: 0
moveLerpTime: 0.1
rotateLerpTime: 0.1
scaleLerpTime: 0
maintainScale: 1
smoothing: 1
lifetime: 0
referenceDirection: 1
minDistance: 1
maxDistance: 2
minViewDegrees: 0
maxViewDegrees: 20
aspectV: 1
ignoreAngleClamp: 0
ignoreDistanceClamp: 0
useFixedVerticalPosition: 0
fixedVerticalPosition: -0.4
orientToReferenceDirection: 0
--- !u!114 &1450715878
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1450715876}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b55691ad5b034fe6966763a6e23818d2, type: 3}
m_Name:
m_EditorClassIdentifier:
trackedTargetType: 0
trackedHandness: 3
trackedHandJoint: 2
transformOverride: {fileID: 0}
additionalOffset: {x: 0, y: 0, z: 0}
additionalRotation: {x: 0, y: 0, z: 0}
updateSolvers: 1
--- !u!4 &1450715879
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1450715876}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 2}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 737810280}
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1760640403
GameObject:
m_ObjectHideFlags: 0
@ -952,8 +1039,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -971,7 +1058,7 @@ MonoBehaviour:
m_HandleRect: {fileID: 2061365887}
m_Direction: 2
m_Value: 1
m_Size: 0.4377668
m_Size: 0.3085443
m_NumberOfSteps: 0
m_OnValueChanged:
m_PersistentCalls:
@ -1179,8 +1266,8 @@ MonoBehaviour:
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_HighlightedColor: {r: 0.8584906, g: 0.7600767, b: 0.36040404, a: 1}
m_PressedColor: {r: 0.35375908, g: 0.6886792, b: 0.14618193, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -3,11 +3,10 @@
*/
using UnityEngine;
using UnityEngine.UI;
using System;
using System.Linq;
using System.Collections.Generic;
using UnityEngine.UI;
#if WINDOWS_UWP
using System.Threading.Tasks;
@ -25,19 +24,19 @@ namespace HololensCameraIntrinsics
{
public Text ResultText;
#if WINDOWS_UWP
#if WINDOWS_UWP
CameraIntrinsicsChecker cameraIntrinsicsChecker;
// Use this for initialization
void Start ()
void Start()
{
CameraIntrinsicsChecker.CreateAync (OnCameraIntrinsicsCheckerInstanceCreated);
CameraIntrinsicsChecker.CreateAync(OnCameraIntrinsicsCheckerInstanceCreated);
}
void OnDestroy()
{
if (cameraIntrinsicsChecker != null)
cameraIntrinsicsChecker.Dispose ();
cameraIntrinsicsChecker.Dispose();
}
private void OnCameraIntrinsicsCheckerInstanceCreated(CameraIntrinsicsChecker checker)
@ -50,7 +49,7 @@ namespace HololensCameraIntrinsics
this.cameraIntrinsicsChecker = checker;
checker.GetCameraIntrinsicsAync (OnCameraIntrinsicsGot);
checker.GetCameraIntrinsicsAync(OnCameraIntrinsicsGot);
}
private void OnCameraIntrinsicsGot(CameraIntrinsics cameraIntrinsics, VideoEncodingProperties property)
@ -61,7 +60,6 @@ namespace HololensCameraIntrinsics
return;
}
double calculatedFrameRate = (double)property.FrameRate.Numerator / (double)property.FrameRate.Denominator;
String result = "\n" + "=============================================";
@ -80,13 +78,12 @@ namespace HololensCameraIntrinsics
{
ResultText.text += result;
}, false);
}
#endif
#endif
}
#if WINDOWS_UWP
#if WINDOWS_UWP
public class CameraIntrinsicsChecker
{
public delegate void OnVideoCaptureResourceCreatedCallback(CameraIntrinsicsChecker chakerObject);
@ -173,7 +170,7 @@ namespace HololensCameraIntrinsics
foreach (var property in allProperties)
{
await _mediaCapture.VideoDeviceController.SetMediaStreamPropertiesAsync(STREAM_TYPE, property);
// Get CameraIntrinsics
var taskCompletionSource = new TaskCompletionSource<bool>();
@ -233,12 +230,12 @@ namespace HololensCameraIntrinsics
_mediaCapture = new MediaCapture();
await _mediaCapture.InitializeAsync(new MediaCaptureInitializationSettings()
{
VideoDeviceId = _deviceInfo.Id,
SourceGroup = _frameSourceGroup,
MemoryPreference = MediaCaptureMemoryPreference.Cpu,
StreamingCaptureMode = StreamingCaptureMode.Video
});
{
VideoDeviceId = _deviceInfo.Id,
SourceGroup = _frameSourceGroup,
MemoryPreference = MediaCaptureMemoryPreference.Cpu,
StreamingCaptureMode = StreamingCaptureMode.Video
});
_mediaCapture.VideoDeviceController.Focus.TrySetAuto(true);
}
@ -248,5 +245,5 @@ namespace HololensCameraIntrinsics
sourceInfo.SourceKind == MediaFrameSourceKind.Color);
}
}
#endif
#endif
}

Двоичные данные
BuildSettings.jpg Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 172 KiB

Просмотреть файл

Двоичные данные
ChArUcoBoard-mx5-my7-d10-os1000-bb1.pdf Normal file

Двоичный файл не отображается.

Двоичные данные
MRTKProjectConfigurator.jpg Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 81 KiB

Двоичные данные
PlayerSettings.jpg Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 401 KiB

Двоичные данные
ProjectAssets.jpg Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 166 KiB

Просмотреть файл

@ -2,7 +2,7 @@
## What's new
* IL2CPP Backend support.
* MRTKv2 support.
## Demo Video (old version)
@ -15,37 +15,39 @@
## Environment
* Hololens 10.0.17763.134 (RS5)
* Windows 10 Pro 1803
* Windows 10 SDK 10.0.17134
* Visual Studio 2017 (v157.4.0)
* Unity 2018.3.0f2+
* [HoloToolkit-Unity](https://github.com/Microsoft/MixedRealityToolkit-Unity/releases) 2017.4.3.0
* [OpenCV for Unity](https://assetstore.unity.com/packages/tools/integration/opencv-for-unity-21088?aid=1011l4ehR) 2.3.3+
* Hololens 10.0.17763.914 (RS5)
* Windows 10 SDK 10.0.18362.0
* Visual Studio 2017 or 2019
* Unity 2018.4.7f1+
* [Microsoft Mixed Reality Toolkit](https://github.com/Microsoft/MixedRealityToolkit-Unity/releases) v2.2.0
* [OpenCV for Unity](https://assetstore.unity.com/packages/tools/integration/opencv-for-unity-21088?aid=1011l4ehR) 2.3.7+
* [HoloLensCameraStream](https://github.com/VulcanTechnologies/HoloLensCameraStream)
## Setup
1. Download the latest release unitypackage. [HoloLensWithOpenCVForUnityExample.unitypackage](https://github.com/EnoxSoftware/HoloLensWithOpenCVForUnityExample/releases)
1. Create a new project. (HoloLensWithOpenCVForUnityExample)
1. Import the HoloToolkit-Unity-2017.4.3.0.unitypackage.
* Setup the HoloToolKit. (Mixed Reality ToolKit > Configure > Apply Mixed Reality Project Setting)
1. Import the OpenCVForUnity.
* Setup the OpenCVForUnity. (Tools > OpenCV for Unity > Set Plugin Import Settings)
* Move the "OpenCVForUnity/StreamingAssets/haarcascade_frontalface_alt.xml" and "OpenCVForUnity/StreamingAssets/lbpcascade_frontalface.xml" to the "Assets/StreamingAssets/" folder.
1. Clone HoloLensCameraStream repository.
* Copy the "HoloLensCameraStream/HoloLensVideoCaptureExample/Assets/CamStream/" folder to the "Assets/" folder.
* Set the scripting backend of the plugin inspector to "Any Script Backend". (IL2CPP support)
1. Import the Microsoft.MixedReality.Toolkit.Unity.Foundation.2.2.0.unitypackage.
* Setup the MRTKv2. (Mixed Reality ToolKit > Utilities > Configure Unity Project)
1. Import the HoloLensWithOpenCVForUnityExample.unitypackage.
1. Add the "Assets/HoloLensWithOpenCVForUnityExample/*.unity" files to the "Scenes In Build" list in the "Build Settings" window.
1. Set "IL2CPP" to "Other Settings > Configuration > Scripting Backend" selector in the "Player Settings" window.
1. Add "WebCam" to "Publishing Settings > Capabilities" checklist in the "Player Settings" window.
1. Build and Deploy to HoloLens. (See [https://developer.microsoft.com/en-us/windows/holographic/holograms_100](https://developer.microsoft.com/en-us/windows/holographic/holograms_100))
* (Print the AR marker "ArUcoMarker_DICT_6X6_250_ID1.pdf" on an A4 size paper)
* (Print the AR marker "CanonicalMarker-d10-i1-sp500-bb1.pdf" and "ChArUcoBoard-mx5-my7-d10-os1000-bb1.pdf" on an A4 size paper)
|Assets|Buld Settings|
|Project Assets|MRTK Project Configurator|
|---|---|
|![buildsetting01.jpg](buildsetting01.jpg)|![buildsetting02.jpg](buildsetting02.jpg)|
|![ProjectAssets.jpg](ProjectAssets.jpg)|![MRTKProjectConfigurator.jpg](MRTKProjectConfigurator.jpg)|
|Build Settings|Player Settings|
|---|---|
|![BuildSettings.jpg](BuildSettings.jpg)|![PlayerSettings.jpg](PlayerSettings.jpg)|
## ScreenShot (old version)
![screenshot01.jpg](screenshot01.jpg)

Двоичные данные
buildsetting01.jpg

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 98 KiB

Двоичные данные
buildsetting02.jpg

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 316 KiB