Browse Source

适配YuanNi

胡佳骏 1 year ago
parent
commit
2443f09232
100 changed files with 1804 additions and 4039 deletions
  1. 1 1
      Samples~/ShadowCreator.meta
  2. BIN
      Samples~/ShadowCreator/Components/Model_UpdateAPK_V1/Plugins/Android/android-support-v4.jar
  3. 1 1
      Samples~/ShadowCreator/Plugins.meta
  4. 1 1
      Samples~/ShadowCreator/Plugins/Android.meta
  5. BIN
      Samples~/ShadowCreator/Plugins/Android/ivwebrtclibrary-debug.aar
  6. BIN
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Android/IngameDebugConsole.aar
  7. 0 67
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Editor/DebugLogManagerEditor.cs
  8. 0 456
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Prefabs/DebugLogItem.prefab
  9. 0 19
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/README.txt
  10. 0 30
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/CircularBuffer.cs
  11. 0 20
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/ConsoleMethodAttribute.cs
  12. 0 693
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/DebugLogConsole.cs
  13. 0 78
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/DebugLogEntry.cs
  14. 0 12
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/DebugLogEntry.cs.meta
  15. 0 34
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/DebugLogIndexList.cs
  16. 0 12
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/DebugLogIndexList.cs.meta
  17. 0 130
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/DebugLogItem.cs
  18. 0 12
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/DebugLogItem.cs.meta
  19. 0 54
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/DebugLogLogcatListener.cs
  20. 0 12
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/DebugLogLogcatListener.cs.meta
  21. 0 796
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/DebugLogManager.cs
  22. 0 12
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/DebugLogManager.cs.meta
  23. 0 228
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/DebugLogPopup.cs
  24. 0 12
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/DebugLogPopup.cs.meta
  25. 0 328
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/DebugLogRecycledListView.cs
  26. 0 12
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/DebugLogRecycledListView.cs.meta
  27. 0 60
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/DebugsOnScrollListener.cs
  28. 0 12
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/DebugsOnScrollListener.cs.meta
  29. 0 9
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites.meta
  30. BIN
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/IconClear.psd
  31. BIN
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/IconCollapse.psd
  32. 0 91
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/IconCollapse.psd.meta
  33. BIN
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/IconError.psd
  34. 0 91
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/IconError.psd.meta
  35. BIN
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/IconHide.psd
  36. BIN
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/IconInfo.psd
  37. 0 91
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/IconInfo.psd.meta
  38. BIN
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/IconResize.psd
  39. 0 91
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/IconResize.psd.meta
  40. BIN
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/IconSnapToBottom.psd
  41. 0 91
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/IconSnapToBottom.psd.meta
  42. BIN
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/IconSnapToBottomBg.psd
  43. 0 91
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/IconSnapToBottomBg.psd.meta
  44. BIN
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/IconWarning.psd
  45. 0 91
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/IconWarning.psd.meta
  46. BIN
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/SlicedBackground.psd
  47. BIN
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/SlicedBackground2.psd
  48. 0 91
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/SlicedBackground2.psd.meta
  49. BIN
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/SlicedBackground3.psd
  50. 0 91
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/SlicedBackground3.psd.meta
  51. 0 9
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/Unused.meta
  52. BIN
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/Unused/IconErrorHighRes.psd
  53. BIN
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/Unused/IconInfoHighRes.psd
  54. BIN
      Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/Unused/IconWarningHighRes.psd
  55. 169 101
      Samples~/ShadowCreator/Resources/Prefabs/ShadowSystem.prefab
  56. 93 6
      Samples~/ShadowCreator/SvrToXR/ControllerInputFromAction.cs
  57. 8 0
      Samples~/ShadowCreator/YuanNi.meta
  58. 8 0
      Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations.meta
  59. 58 0
      Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_H20_3DoF.asset
  60. 8 0
      Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_H20_3DoF.asset.meta
  61. 67 0
      Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_H20_3DoF_Gaze.asset
  62. 8 0
      Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_H20_3DoF_Gaze.asset.meta
  63. 67 0
      Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_H20_3DoF_ImageTracking.asset
  64. 8 0
      Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_H20_3DoF_ImageTracking.asset.meta
  65. 67 0
      Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_H20_3DoF_L3Gesture.asset
  66. 8 0
      Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_H20_3DoF_L3Gesture.asset.meta
  67. 67 0
      Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_H20_3DoF_ObjectTracking.asset
  68. 8 0
      Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_H20_3DoF_ObjectTracking.asset.meta
  69. 67 0
      Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_H20_3DoF_XRSDK.asset
  70. 8 0
      Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_H20_3DoF_XRSDK.asset.meta
  71. 67 0
      Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_H20_6DoF.asset
  72. 8 0
      Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_H20_6DoF.asset.meta
  73. 67 0
      Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_H20_6DoF_Camera.asset
  74. 8 0
      Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_H20_6DoF_Camera.asset.meta
  75. 67 0
      Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_Phone_3DoF.asset
  76. 8 0
      Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_Phone_3DoF.asset.meta
  77. 67 0
      Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_Phone_6DoF.asset
  78. 8 0
      Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_Phone_6DoF.asset.meta
  79. 8 0
      Samples~/ShadowCreator/YuanNi/GxrSdk.meta
  80. 8 0
      Samples~/ShadowCreator/YuanNi/GxrSdk/Examples.meta
  81. 8 0
      Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common.meta
  82. 8 0
      Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Materials.meta
  83. 77 0
      Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Materials/ColorCubeMaterial.mat
  84. 8 0
      Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Materials/ColorCubeMaterial.mat.meta
  85. 77 0
      Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Materials/CubeUnlitMateria.mat
  86. 8 0
      Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Materials/CubeUnlitMateria.mat.meta
  87. 74 0
      Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Materials/ImageMaterial.mat
  88. 8 0
      Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Materials/ImageMaterial.mat.meta
  89. 76 0
      Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Materials/Mummy_Eye_mat.mat
  90. 8 0
      Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Materials/Mummy_Eye_mat.mat.meta
  91. 83 0
      Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Materials/Mummy_mat.mat
  92. 8 0
      Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Materials/Mummy_mat.mat.meta
  93. 77 0
      Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Materials/PlaneColorMaterial.mat
  94. 8 0
      Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Materials/PlaneColorMaterial.mat.meta
  95. 77 0
      Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Materials/PolygonMaterial.mat
  96. 3 3
      Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Materials/PolygonMaterial.mat.meta
  97. 73 0
      Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Materials/PoseVisualizer.mat
  98. 8 0
      Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Materials/PoseVisualizer.mat.meta
  99. 8 0
      Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Models.meta
  100. 69 0
      Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Models/Mummy_Anim.controller

+ 1 - 1
Samples~/ShadowCreator/Plugins/IngameDebugConsole.meta → Samples~/ShadowCreator.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 9b8c140f9006a6143ac4349c94e9be82
+guid: 6eef341b63172e84696e264dc020adf5
 folderAsset: yes
 DefaultImporter:
   externalObjects: {}

BIN
Samples~/ShadowCreator/Components/Model_UpdateAPK_V1/Plugins/Android/android-support-v4.jar


+ 1 - 1
Samples~/ShadowCreator/Plugins.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 3cf802f0ae72b6e408816f2e44253364
+guid: 6e6cf8c5c1243a14e9c09f9bf7677b7b
 folderAsset: yes
 DefaultImporter:
   externalObjects: {}

+ 1 - 1
Samples~/ShadowCreator/Plugins/Android.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 056ca2f4bf2e0c44499d7bbd1d2a8217
+guid: 52adb4c1706263e4daa289251943abb8
 folderAsset: yes
 timeCreated: 1524478545
 licenseType: Free

BIN
Samples~/ShadowCreator/Plugins/Android/ivwebrtclibrary-debug.aar


BIN
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Android/IngameDebugConsole.aar


+ 0 - 67
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Editor/DebugLogManagerEditor.cs

@@ -1,67 +0,0 @@
-using UnityEditor;
-
-namespace IngameDebugConsole
-{
-	[CustomEditor( typeof( DebugLogManager ) )]
-	public class DebugLogManagerEditor : Editor
-	{
-		private SerializedProperty singleton;
-		private SerializedProperty minimumHeight;
-		private SerializedProperty enablePopup;
-		private SerializedProperty startInPopupMode;
-		private SerializedProperty toggleWithKey;
-		private SerializedProperty toggleKey;
-		private SerializedProperty clearCommandAfterExecution;
-		private SerializedProperty commandHistorySize;
-		private SerializedProperty receiveLogcatLogsInAndroid;
-		private SerializedProperty logcatArguments;
-
-		private void OnEnable()
-		{
-			singleton = serializedObject.FindProperty( "singleton" );
-			minimumHeight = serializedObject.FindProperty( "minimumHeight" );
-			enablePopup = serializedObject.FindProperty( "enablePopup" );
-			startInPopupMode = serializedObject.FindProperty( "startInPopupMode" );
-			toggleWithKey = serializedObject.FindProperty( "toggleWithKey" );
-			toggleKey = serializedObject.FindProperty( "toggleKey" );
-			clearCommandAfterExecution = serializedObject.FindProperty( "clearCommandAfterExecution" );
-			commandHistorySize = serializedObject.FindProperty( "commandHistorySize" );
-			receiveLogcatLogsInAndroid = serializedObject.FindProperty( "receiveLogcatLogsInAndroid" );
-			logcatArguments = serializedObject.FindProperty( "logcatArguments" );
-		}
-
-		public override void OnInspectorGUI()
-		{
-			serializedObject.Update();
-
-			EditorGUILayout.PropertyField( singleton );
-			EditorGUILayout.PropertyField( minimumHeight );
-			EditorGUILayout.PropertyField( enablePopup );
-
-			if( enablePopup.boolValue )
-				DrawSubProperty( startInPopupMode );
-
-			EditorGUILayout.PropertyField( toggleWithKey );
-
-			if( toggleWithKey.boolValue )
-				DrawSubProperty( toggleKey );
-
-			EditorGUILayout.PropertyField( clearCommandAfterExecution );
-			EditorGUILayout.PropertyField( commandHistorySize );
-			EditorGUILayout.PropertyField( receiveLogcatLogsInAndroid );
-
-			if( receiveLogcatLogsInAndroid.boolValue )
-				DrawSubProperty( logcatArguments );
-
-			DrawPropertiesExcluding( serializedObject, "m_Script" );
-			serializedObject.ApplyModifiedProperties();
-		}
-
-		private void DrawSubProperty( SerializedProperty property )
-		{
-			EditorGUI.indentLevel++;
-			EditorGUILayout.PropertyField( property );
-			EditorGUI.indentLevel--;
-		}
-	}
-}

+ 0 - 456
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Prefabs/DebugLogItem.prefab

@@ -1,456 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!1 &104862
-GameObject:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  serializedVersion: 6
-  m_Component:
-  - component: {fileID: 22461494}
-  - component: {fileID: 22233942}
-  - component: {fileID: 11411806}
-  m_Layer: 5
-  m_Name: LogCount
-  m_TagString: Untagged
-  m_Icon: {fileID: 0}
-  m_NavMeshLayer: 0
-  m_StaticEditorFlags: 0
-  m_IsActive: 0
---- !u!224 &22461494
-RectTransform:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 104862}
-  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: 22420350}
-  m_Father: {fileID: 22479264}
-  m_RootOrder: 2
-  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
-  m_AnchorMin: {x: 1, y: 0.5}
-  m_AnchorMax: {x: 1, y: 0.5}
-  m_AnchoredPosition: {x: -28, y: 0}
-  m_SizeDelta: {x: 38, y: 28}
-  m_Pivot: {x: 0.5, y: 0.5}
---- !u!222 &22233942
-CanvasRenderer:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 104862}
-  m_CullTransparentMesh: 0
---- !u!114 &11411806
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 104862}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  m_Material: {fileID: 0}
-  m_Color: {r: 0.42647058, g: 0.42647058, b: 0.42647058, a: 1}
-  m_RaycastTarget: 0
-  m_OnCullStateChanged:
-    m_PersistentCalls:
-      m_Calls: []
-  m_Sprite: {fileID: 21300000, guid: b3f0d976f6d6802479d6465d11b3aa68, type: 3}
-  m_Type: 1
-  m_PreserveAspect: 0
-  m_FillCenter: 1
-  m_FillMethod: 4
-  m_FillAmount: 1
-  m_FillClockwise: 1
-  m_FillOrigin: 0
-  m_UseSpriteMesh: 0
-  m_PixelsPerUnitMultiplier: 1
---- !u!1 &151462
-GameObject:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  serializedVersion: 6
-  m_Component:
-  - component: {fileID: 22420350}
-  - component: {fileID: 22200920}
-  - component: {fileID: 11432936}
-  m_Layer: 5
-  m_Name: LogCountText
-  m_TagString: Untagged
-  m_Icon: {fileID: 0}
-  m_NavMeshLayer: 0
-  m_StaticEditorFlags: 0
-  m_IsActive: 1
---- !u!224 &22420350
-RectTransform:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 151462}
-  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: 22461494}
-  m_RootOrder: 0
-  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}
-  m_SizeDelta: {x: -2, y: 0}
-  m_Pivot: {x: 0.5, y: 0.5}
---- !u!222 &22200920
-CanvasRenderer:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 151462}
-  m_CullTransparentMesh: 0
---- !u!114 &11432936
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 151462}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  m_Material: {fileID: 0}
-  m_Color: {r: 0.83823526, g: 0.84439874, b: 0.84439874, a: 1}
-  m_RaycastTarget: 0
-  m_OnCullStateChanged:
-    m_PersistentCalls:
-      m_Calls: []
-  m_FontData:
-    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
-    m_FontSize: 16
-    m_FontStyle: 0
-    m_BestFit: 1
-    m_MinSize: 1
-    m_MaxSize: 16
-    m_Alignment: 4
-    m_AlignByGeometry: 0
-    m_RichText: 1
-    m_HorizontalOverflow: 0
-    m_VerticalOverflow: 0
-    m_LineSpacing: 1
-  m_Text: 1
---- !u!1 &152362
-GameObject:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  serializedVersion: 6
-  m_Component:
-  - component: {fileID: 22427300}
-  - component: {fileID: 22262284}
-  - component: {fileID: 11404142}
-  m_Layer: 5
-  m_Name: LogType
-  m_TagString: Untagged
-  m_Icon: {fileID: 0}
-  m_NavMeshLayer: 0
-  m_StaticEditorFlags: 0
-  m_IsActive: 1
---- !u!224 &22427300
-RectTransform:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 152362}
-  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: 22479264}
-  m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
-  m_AnchorMin: {x: 0, y: 0.5}
-  m_AnchorMax: {x: 0, y: 0.5}
-  m_AnchoredPosition: {x: 25, y: 0}
-  m_SizeDelta: {x: 32, y: 32}
-  m_Pivot: {x: 0.5, y: 0.5}
---- !u!222 &22262284
-CanvasRenderer:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 152362}
-  m_CullTransparentMesh: 0
---- !u!114 &11404142
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 152362}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  m_Material: {fileID: 0}
-  m_Color: {r: 1, g: 1, b: 1, a: 1}
-  m_RaycastTarget: 1
-  m_OnCullStateChanged:
-    m_PersistentCalls:
-      m_Calls: []
-  m_Sprite: {fileID: 21300000, guid: 33b115bf5efdfa04d8e2e0b70a6643cd, type: 3}
-  m_Type: 0
-  m_PreserveAspect: 0
-  m_FillCenter: 1
-  m_FillMethod: 4
-  m_FillAmount: 1
-  m_FillClockwise: 1
-  m_FillOrigin: 0
-  m_UseSpriteMesh: 0
-  m_PixelsPerUnitMultiplier: 1
---- !u!1 &166880
-GameObject:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  serializedVersion: 6
-  m_Component:
-  - component: {fileID: 22479264}
-  - component: {fileID: 22288988}
-  - component: {fileID: 11459012}
-  - component: {fileID: 11408050}
-  - component: {fileID: 11456372}
-  - component: {fileID: 5424363997932289780}
-  m_Layer: 5
-  m_Name: DebugLogItem
-  m_TagString: Untagged
-  m_Icon: {fileID: 0}
-  m_NavMeshLayer: 0
-  m_StaticEditorFlags: 0
-  m_IsActive: 1
---- !u!224 &22479264
-RectTransform:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 166880}
-  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: 22427300}
-  - {fileID: 22457652}
-  - {fileID: 22461494}
-  m_Father: {fileID: 0}
-  m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
-  m_AnchorMin: {x: 0, y: 1}
-  m_AnchorMax: {x: 1, y: 1}
-  m_AnchoredPosition: {x: 0, y: 0}
-  m_SizeDelta: {x: 0, y: 40}
-  m_Pivot: {x: 0, y: 1}
---- !u!222 &22288988
-CanvasRenderer:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 166880}
-  m_CullTransparentMesh: 0
---- !u!114 &11459012
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 166880}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  m_Material: {fileID: 0}
-  m_Color: {r: 0.23529412, g: 0.23529412, b: 0.23529412, a: 0.697}
-  m_RaycastTarget: 1
-  m_OnCullStateChanged:
-    m_PersistentCalls:
-      m_Calls: []
-  m_Sprite: {fileID: 21300000, guid: 98e8e1cf8dc7dbf469617c2e40c8a944, type: 3}
-  m_Type: 1
-  m_PreserveAspect: 0
-  m_FillCenter: 1
-  m_FillMethod: 4
-  m_FillAmount: 1
-  m_FillClockwise: 1
-  m_FillOrigin: 0
-  m_UseSpriteMesh: 0
-  m_PixelsPerUnitMultiplier: 1
---- !u!114 &11408050
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 166880}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: d2ea291be9de70a4abfec595203c96c1, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  transformComponent: {fileID: 22479264}
-  imageComponent: {fileID: 11459012}
-  logText: {fileID: 11465282}
-  logTypeImage: {fileID: 11404142}
-  logCountParent: {fileID: 104862}
-  logCountText: {fileID: 11432936}
---- !u!114 &11456372
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 166880}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  m_Navigation:
-    m_Mode: 3
-    m_SelectOnUp: {fileID: 0}
-    m_SelectOnDown: {fileID: 0}
-    m_SelectOnLeft: {fileID: 0}
-    m_SelectOnRight: {fileID: 0}
-  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_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
-    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
-    m_ColorMultiplier: 1
-    m_FadeDuration: 0.1
-  m_SpriteState:
-    m_HighlightedSprite: {fileID: 0}
-    m_PressedSprite: {fileID: 0}
-    m_SelectedSprite: {fileID: 0}
-    m_DisabledSprite: {fileID: 0}
-  m_AnimationTriggers:
-    m_NormalTrigger: Normal
-    m_HighlightedTrigger: Highlighted
-    m_PressedTrigger: Pressed
-    m_SelectedTrigger: Highlighted
-    m_DisabledTrigger: Disabled
-  m_Interactable: 1
-  m_TargetGraphic: {fileID: 11459012}
-  m_OnClick:
-    m_PersistentCalls:
-      m_Calls: []
---- !u!65 &5424363997932289780
-BoxCollider:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 166880}
-  m_Material: {fileID: 0}
-  m_IsTrigger: 0
-  m_Enabled: 1
-  serializedVersion: 2
-  m_Size: {x: 1800, y: 40, z: 1}
-  m_Center: {x: 900, y: -20, z: 0}
---- !u!1 &173670
-GameObject:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  serializedVersion: 6
-  m_Component:
-  - component: {fileID: 22457652}
-  - component: {fileID: 22240404}
-  - component: {fileID: 11465282}
-  m_Layer: 5
-  m_Name: LogText
-  m_TagString: Untagged
-  m_Icon: {fileID: 0}
-  m_NavMeshLayer: 0
-  m_StaticEditorFlags: 0
-  m_IsActive: 1
---- !u!224 &22457652
-RectTransform:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 173670}
-  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: 22479264}
-  m_RootOrder: 1
-  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
-  m_AnchorMin: {x: 0, y: 0}
-  m_AnchorMax: {x: 1, y: 1}
-  m_AnchoredPosition: {x: 22.5, y: 0}
-  m_SizeDelta: {x: -55, y: -2}
-  m_Pivot: {x: 0.5, y: 0.5}
---- !u!222 &22240404
-CanvasRenderer:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 173670}
-  m_CullTransparentMesh: 0
---- !u!114 &11465282
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 173670}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  m_Material: {fileID: 0}
-  m_Color: {r: 0.83823526, g: 0.84439874, b: 0.84439874, a: 1}
-  m_RaycastTarget: 1
-  m_OnCullStateChanged:
-    m_PersistentCalls:
-      m_Calls: []
-  m_FontData:
-    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
-    m_FontSize: 15
-    m_FontStyle: 0
-    m_BestFit: 0
-    m_MinSize: 1
-    m_MaxSize: 40
-    m_Alignment: 3
-    m_AlignByGeometry: 0
-    m_RichText: 1
-    m_HorizontalOverflow: 1
-    m_VerticalOverflow: 0
-    m_LineSpacing: 1
-  m_Text: Debug.Log summary

+ 0 - 19
Samples~/ShadowCreator/Plugins/IngameDebugConsole/README.txt

@@ -1,19 +0,0 @@
-= In-game Debug Console =
-
-Online documentation available at: https://github.com/yasirkula/UnityIngameDebugConsole
-E-mail: yasirkula@gmail.com
-
-1. ABOUT
-This asset helps you see debug messages (logs, warnings, errors, exceptions) runtime in a build (also assertions in editor) and execute commands using its built-in console.
-
-2. HOW TO
-You can simply place the IngameDebugConsole prefab to your scene. You may want to tweak the following settings:
-
-- Singleton: if enabled, console window will persist between scenes (recommended). If, however, you don't want the console on each scene, then deselect this option and manually drag & drop the DebugLogCanvas prefab to the scenes you want
-- Enable Popup: if disabled, no popup will be shown when the console window is hidden
-- Start In Popup Mode: if enabled, console will be initialized as a popup
-- Toggle With Key: if enabled, pressing the Toggle Key will show/hide (i.e. toggle) the console window at runtime
-- Clear Command After Execution: if enabled, the command input field at the bottom of the console window will automatically be cleared after entering a command. If you want to spam a command, or make small tweaks to the previous command without having to write the whole command again, then deselect this option
-- Command History Size: console keeps track of the previously entered commands, this value determines how many will be remembered (you can scroll through the history via up and down arrow keys while the command input field is focused)
-- Receive Logcat Logs In Android: if enabled, on Android platform, logcat entries of the application will also be logged to the console with the prefix "LOGCAT:". This may come in handy especially if you want to access the native logs of your Android plugins (like Admob)
-- Logcat Arguments: on Android, if Logcat logs are enabled, native logs will be filtered using these arguments. If left blank, all native logs of the application will be logged to the console. If you want to, for example, see Admob's logs only, you can enter -s Ads here

+ 0 - 30
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/CircularBuffer.cs

@@ -1,30 +0,0 @@
-using UnityEngine;
-
-namespace IngameDebugConsole
-{
-	public class CircularBuffer<T>
-	{
-		private T[] arr;
-		private int index;
-
-		public T this[int index] { get { return arr[( this.index + index ) % arr.Length]; } }
-		public int Count { get; private set; }
-
-		public CircularBuffer( int capacity )
-		{
-			arr = new T[capacity];
-		}
-
-		public void Add( T value )
-		{
-			if( Count < arr.Length )
-				arr[Count++] = value;
-			else
-			{
-				arr[index] = value;
-				if( ++index >= arr.Length )
-					index = 0;
-			}
-		}
-	}
-}

+ 0 - 20
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/ConsoleMethodAttribute.cs

@@ -1,20 +0,0 @@
-using System;
-
-namespace IngameDebugConsole
-{
-	[AttributeUsage( AttributeTargets.Method, Inherited = false, AllowMultiple = true )]
-	public class ConsoleMethodAttribute : Attribute
-	{
-		private string m_command;
-		private string m_description;
-
-		public string Command { get { return m_command; } }
-		public string Description { get { return m_description; } }
-
-		public ConsoleMethodAttribute( string command, string description )
-		{
-			m_command = command;
-			m_description = description;
-		}
-	}
-}

+ 0 - 693
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/DebugLogConsole.cs

@@ -1,693 +0,0 @@
-using UnityEngine;
-using System.Reflection;
-using System.Collections.Generic;
-using System.Text;
-using System;
-
-// Manages the console commands, parses console input and handles execution of commands
-// Supported method parameter types: int, float, bool, string, Vector2, Vector3, Vector4
-
-// Helper class to store important information about a command
-namespace IngameDebugConsole
-{
-	public class ConsoleMethodInfo
-	{
-		public readonly MethodInfo method;
-		public readonly Type[] parameterTypes;
-		public readonly object instance;
-
-		public readonly string signature;
-
-		public ConsoleMethodInfo( MethodInfo method, Type[] parameterTypes, object instance, string signature )
-		{
-			this.method = method;
-			this.parameterTypes = parameterTypes;
-			this.instance = instance;
-			this.signature = signature;
-		}
-
-		public bool IsValid()
-		{
-			if( !method.IsStatic && ( instance == null || instance.Equals( null ) ) )
-				return false;
-
-			return true;
-		}
-	}
-
-	public static class DebugLogConsole
-	{
-		public delegate bool ParseFunction( string input, out object output );
-
-		// All the commands
-		private static Dictionary<string, ConsoleMethodInfo> methods = new Dictionary<string, ConsoleMethodInfo>();
-
-		// All the parse functions
-		private static Dictionary<Type, ParseFunction> parseFunctions;
-
-		// All the readable names of accepted types
-		private static Dictionary<Type, string> typeReadableNames;
-
-		// Split arguments of an entered command
-		private static List<string> commandArguments = new List<string>( 8 );
-
-		// Command parameter delimeter groups
-		private static readonly string[] inputDelimiters = new string[] { "\"\"", "{}", "()", "[]" };
-
-		static DebugLogConsole()
-		{
-			parseFunctions = new Dictionary<Type, ParseFunction>() {
-				{ typeof( string ), ParseString },
-				{ typeof( bool ), ParseBool },
-				{ typeof( int ), ParseInt },
-				{ typeof( uint ), ParseUInt },
-				{ typeof( long ), ParseLong },
-				{ typeof( ulong ), ParseULong },
-				{ typeof( byte ), ParseByte },
-				{ typeof( sbyte ), ParseSByte },
-				{ typeof( short ), ParseShort },
-				{ typeof( ushort ), ParseUShort },
-				{ typeof( char ), ParseChar },
-				{ typeof( float ), ParseFloat },
-				{ typeof( double ), ParseDouble },
-				{ typeof( decimal ), ParseDecimal },
-				{ typeof( Vector2 ), ParseVector2 },
-				{ typeof( Vector3 ), ParseVector3 },
-				{ typeof( Vector4 ), ParseVector4 },
-				{ typeof( GameObject ), ParseGameObject } };
-
-			typeReadableNames = new Dictionary<Type, string>() {
-				{ typeof( string ), "String" },
-				{ typeof( bool ), "Boolean" },
-				{ typeof( int ), "Integer" },
-				{ typeof( uint ), "Unsigned Integer" },
-				{ typeof( long ), "Long" },
-				{ typeof( ulong ), "Unsigned Long" },
-				{ typeof( byte ), "Byte" },
-				{ typeof( sbyte ), "Short Byte" },
-				{ typeof( short ), "Short" },
-				{ typeof( ushort ), "Unsigned Short" },
-				{ typeof( char ), "Char" },
-				{ typeof( float ), "Float" },
-				{ typeof( double ), "Double" },
-				{ typeof( decimal ), "Decimal" },
-				{ typeof( Vector2 ), "Vector2" },
-				{ typeof( Vector3 ), "Vector3" },
-				{ typeof( Vector4 ), "Vector4" },
-				{ typeof( GameObject ), "GameObject" } };
-
-#if UNITY_EDITOR || !NETFX_CORE
-			// Load commands in most common Unity assemblies
-			HashSet<Assembly> assemblies = new HashSet<Assembly> { Assembly.GetAssembly( typeof( DebugLogConsole ) ) };
-			try
-			{
-				assemblies.Add( Assembly.Load( "Assembly-CSharp" ) );
-			}
-			catch { }
-
-			foreach( var assembly in assemblies )
-			{
-				foreach( var type in assembly.GetExportedTypes() )
-				{
-					foreach( var method in type.GetMethods( BindingFlags.Static | BindingFlags.Public | BindingFlags.DeclaredOnly ) )
-					{
-						foreach( var attribute in method.GetCustomAttributes( typeof( ConsoleMethodAttribute ), false ) )
-						{
-							ConsoleMethodAttribute consoleMethod = attribute as ConsoleMethodAttribute;
-							if( consoleMethod != null )
-								AddCommand( consoleMethod.Command, consoleMethod.Description, method );
-						}
-					}
-				}
-			}
-#endif
-
-			AddCommandStatic( "help", "Prints all commands", "LogAllCommands", typeof( DebugLogConsole ) );
-			AddCommandStatic( "sysinfo", "Prints system information", "LogSystemInfo", typeof( DebugLogConsole ) );
-		}
-
-		// Logs the list of available commands
-		public static void LogAllCommands()
-		{
-			int length = 25;
-			foreach( var entry in methods )
-			{
-				if( entry.Value.IsValid() )
-					length += 3 + entry.Value.signature.Length;
-			}
-
-			StringBuilder stringBuilder = new StringBuilder( length );
-			stringBuilder.Append( "Available commands:" );
-
-			foreach( var entry in methods )
-			{
-				if( entry.Value.IsValid() )
-					stringBuilder.Append( "\n- " ).Append( entry.Value.signature );
-			}
-
-			Debug.Log( stringBuilder.Append( "\n" ).ToString() );
-		}
-
-		// Logs system information
-		public static void LogSystemInfo()
-		{
-			StringBuilder stringBuilder = new StringBuilder( 1024 );
-			stringBuilder.Append( "Rig: " ).AppendSysInfoIfPresent( SystemInfo.deviceModel ).AppendSysInfoIfPresent( SystemInfo.processorType )
-				.AppendSysInfoIfPresent( SystemInfo.systemMemorySize, "MB RAM" ).Append( SystemInfo.processorCount ).Append( " cores\n" );
-			stringBuilder.Append( "OS: " ).Append( SystemInfo.operatingSystem ).Append( "\n" );
-			stringBuilder.Append( "GPU: " ).Append( SystemInfo.graphicsDeviceName ).Append( " " ).Append( SystemInfo.graphicsMemorySize )
-				.Append( "MB " ).Append( SystemInfo.graphicsDeviceVersion )
-				.Append( SystemInfo.graphicsMultiThreaded ? " multi-threaded\n" : "\n" );
-			stringBuilder.Append( "Data Path: " ).Append( Application.dataPath ).Append( "\n" );
-			stringBuilder.Append( "Persistent Data Path: " ).Append( Application.persistentDataPath ).Append( "\n" );
-			stringBuilder.Append( "StreamingAssets Path: " ).Append( Application.streamingAssetsPath ).Append( "\n" );
-			stringBuilder.Append( "Temporary Cache Path: " ).Append( Application.temporaryCachePath ).Append( "\n" );
-			stringBuilder.Append( "Device ID: " ).Append( SystemInfo.deviceUniqueIdentifier ).Append( "\n" );
-			stringBuilder.Append( "Max Texture Size: " ).Append( SystemInfo.maxTextureSize ).Append( "\n" );
-			stringBuilder.Append( "Max Cubemap Size: " ).Append( SystemInfo.maxCubemapSize ).Append( "\n" );
-			stringBuilder.Append( "Accelerometer: " ).Append( SystemInfo.supportsAccelerometer ? "supported\n" : "not supported\n" );
-			stringBuilder.Append( "Gyro: " ).Append( SystemInfo.supportsGyroscope ? "supported\n" : "not supported\n" );
-			stringBuilder.Append( "Location Service: " ).Append( SystemInfo.supportsLocationService ? "supported\n" : "not supported\n" );
-#if !UNITY_2019_1_OR_NEWER
-			stringBuilder.Append( "Image Effects: " ).Append( SystemInfo.supportsImageEffects ? "supported\n" : "not supported\n" );
-			stringBuilder.Append( "RenderToCubemap: " ).Append( SystemInfo.supportsRenderToCubemap ? "supported\n" : "not supported\n" );
-#endif
-			stringBuilder.Append( "Compute Shaders: " ).Append( SystemInfo.supportsComputeShaders ? "supported\n" : "not supported\n" );
-			stringBuilder.Append( "Shadows: " ).Append( SystemInfo.supportsShadows ? "supported\n" : "not supported\n" );
-			stringBuilder.Append( "Instancing: " ).Append( SystemInfo.supportsInstancing ? "supported\n" : "not supported\n" );
-			stringBuilder.Append( "Motion Vectors: " ).Append( SystemInfo.supportsMotionVectors ? "supported\n" : "not supported\n" );
-			stringBuilder.Append( "3D Textures: " ).Append( SystemInfo.supports3DTextures ? "supported\n" : "not supported\n" );
-			stringBuilder.Append( "3D Render Textures: " ).Append( SystemInfo.supports3DRenderTextures ? "supported\n" : "not supported\n" );
-			stringBuilder.Append( "2D Array Textures: " ).Append( SystemInfo.supports2DArrayTextures ? "supported\n" : "not supported\n" );
-			stringBuilder.Append( "Cubemap Array Textures: " ).Append( SystemInfo.supportsCubemapArrayTextures ? "supported" : "not supported" );
-
-			Debug.Log( stringBuilder.Append( "\n" ).ToString() );
-		}
-
-		private static StringBuilder AppendSysInfoIfPresent( this StringBuilder sb, string info, string postfix = null )
-		{
-			if( info != SystemInfo.unsupportedIdentifier )
-			{
-				sb.Append( info );
-
-				if( postfix != null )
-					sb.Append( postfix );
-
-				sb.Append( " " );
-			}
-
-			return sb;
-		}
-
-		private static StringBuilder AppendSysInfoIfPresent( this StringBuilder sb, int info, string postfix = null )
-		{
-			if( info > 0 )
-			{
-				sb.Append( info );
-
-				if( postfix != null )
-					sb.Append( postfix );
-
-				sb.Append( " " );
-			}
-
-			return sb;
-		}
-
-		// Add a command related with an instance method (i.e. non static method)
-		public static void AddCommandInstance( string command, string description, string methodName, object instance )
-		{
-			if( instance == null )
-			{
-				Debug.LogError( "Instance can't be null!" );
-				return;
-			}
-
-			AddCommand( command, description, methodName, instance.GetType(), instance );
-		}
-
-		// Add a command related with a static method (i.e. no instance is required to call the method)
-		public static void AddCommandStatic( string command, string description, string methodName, Type ownerType )
-		{
-			AddCommand( command, description, methodName, ownerType );
-		}
-
-		// Remove a command from the console
-		public static void RemoveCommand( string command )
-		{
-			if( !string.IsNullOrEmpty( command ) )
-				methods.Remove( command );
-		}
-
-		// Returns the first command that starts with the entered argument
-		public static string GetAutoCompleteCommand( string commandStart )
-		{
-			foreach( var entry in methods )
-			{
-				if( entry.Key.StartsWith( commandStart ) )
-					return entry.Key;
-			}
-
-			return null;
-		}
-
-		// Create a new command and set its properties
-		private static void AddCommand( string command, string description, string methodName, Type ownerType, object instance = null )
-		{
-			if( string.IsNullOrEmpty( command ) )
-			{
-				Debug.LogError( "Command name can't be empty!" );
-				return;
-			}
-
-			command = command.Trim();
-			if( command.IndexOf( ' ' ) >= 0 )
-			{
-				Debug.LogError( "Command name can't contain whitespace: " + command );
-				return;
-			}
-
-			// Get the method from the class
-			MethodInfo method = ownerType.GetMethod( methodName, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static );
-			if( method == null )
-			{
-				Debug.LogError( methodName + " does not exist in " + ownerType );
-				return;
-			}
-
-			AddCommand( command, description, method, instance );
-		}
-
-		private static void AddCommand( string command, string description, MethodInfo method, object instance = null )
-		{
-			// Fetch the parameters of the class
-			ParameterInfo[] parameters = method.GetParameters();
-			if( parameters == null )
-				parameters = new ParameterInfo[0];
-
-			bool isMethodValid = true;
-
-			// Store the parameter types in an array
-			Type[] parameterTypes = new Type[parameters.Length];
-			for( int k = 0; k < parameters.Length; k++ )
-			{
-				Type parameterType = parameters[k].ParameterType;
-				if( parseFunctions.ContainsKey( parameterType ) )
-					parameterTypes[k] = parameterType;
-				else
-				{
-					isMethodValid = false;
-					break;
-				}
-			}
-
-			// If method is valid, associate it with the entered command
-			if( isMethodValid )
-			{
-				StringBuilder methodSignature = new StringBuilder( 256 );
-				methodSignature.Append( command ).Append( ": " );
-
-				if( !string.IsNullOrEmpty( description ) )
-					methodSignature.Append( description ).Append( " -> " );
-
-				methodSignature.Append( method.DeclaringType.ToString() ).Append( "." ).Append( method.Name ).Append( "(" );
-				for( int i = 0; i < parameterTypes.Length; i++ )
-				{
-					Type type = parameterTypes[i];
-					string typeName;
-					if( !typeReadableNames.TryGetValue( type, out typeName ) )
-						typeName = type.Name;
-
-					methodSignature.Append( typeName );
-
-					if( i < parameterTypes.Length - 1 )
-						methodSignature.Append( ", " );
-				}
-
-				methodSignature.Append( ")" );
-
-				Type returnType = method.ReturnType;
-				if( returnType != typeof( void ) )
-				{
-					string returnTypeName;
-					if( !typeReadableNames.TryGetValue( returnType, out returnTypeName ) )
-						returnTypeName = returnType.Name;
-
-					methodSignature.Append( " : " ).Append( returnTypeName );
-				}
-
-				methods[command] = new ConsoleMethodInfo( method, parameterTypes, instance, methodSignature.ToString() );
-			}
-		}
-
-		// Parse the command and try to execute it
-		public static void ExecuteCommand( string command )
-		{
-			if( command == null )
-				return;
-
-			command = command.Trim();
-
-			if( command.Length == 0 )
-				return;
-
-			// Parse the arguments
-			commandArguments.Clear();
-
-			int endIndex = IndexOfChar( command, ' ', 0 );
-			commandArguments.Add( command.Substring( 0, endIndex ) );
-
-			for( int i = endIndex + 1; i < command.Length; i++ )
-			{
-				if( command[i] == ' ' )
-					continue;
-
-				int delimiterIndex = IndexOfDelimiter( command[i] );
-				if( delimiterIndex >= 0 )
-				{
-					endIndex = IndexOfChar( command, inputDelimiters[delimiterIndex][1], i + 1 );
-					commandArguments.Add( command.Substring( i + 1, endIndex - i - 1 ) );
-				}
-				else
-				{
-					endIndex = IndexOfChar( command, ' ', i + 1 );
-					commandArguments.Add( command.Substring( i, endIndex - i ) );
-				}
-
-				i = endIndex;
-			}
-
-			// Check if command exists
-			ConsoleMethodInfo methodInfo;
-			if( !methods.TryGetValue( commandArguments[0], out methodInfo ) )
-				Debug.LogWarning( "Can't find command: " + commandArguments[0] );
-			else if( !methodInfo.IsValid() )
-				Debug.LogWarning( "Method no longer valid (instance dead): " + commandArguments[0] );
-			else
-			{
-				// Check if number of parameter match
-				if( methodInfo.parameterTypes.Length != commandArguments.Count - 1 )
-				{
-					Debug.LogWarning( "Parameter count mismatch: " + methodInfo.parameterTypes.Length + " parameters are needed" );
-					return;
-				}
-
-				Debug.Log( "Executing command: " + commandArguments[0] );
-
-				// Parse the parameters into objects
-				object[] parameters = new object[methodInfo.parameterTypes.Length];
-				for( int i = 0; i < methodInfo.parameterTypes.Length; i++ )
-				{
-					string argument = commandArguments[i + 1];
-
-					Type parameterType = methodInfo.parameterTypes[i];
-					ParseFunction parseFunction;
-					if( !parseFunctions.TryGetValue( parameterType, out parseFunction ) )
-					{
-						Debug.LogError( "Unsupported parameter type: " + parameterType.Name );
-						return;
-					}
-
-					object val;
-					if( !parseFunction( argument, out val ) )
-					{
-						Debug.LogError( "Couldn't parse " + argument + " to " + parameterType.Name );
-						return;
-					}
-
-					parameters[i] = val;
-				}
-
-				// Execute the method associated with the command
-				object result = methodInfo.method.Invoke( methodInfo.instance, parameters );
-				if( methodInfo.method.ReturnType != typeof( void ) )
-				{
-					// Print the returned value to the console
-					if( result == null || result.Equals( null ) )
-						Debug.Log( "Value returned: null" );
-					else
-						Debug.Log( "Value returned: " + result.ToString() );
-				}
-			}
-		}
-
-		// Find the index of the delimiter group that 'c' belongs to
-		private static int IndexOfDelimiter( char c )
-		{
-			for( int i = 0; i < inputDelimiters.Length; i++ )
-			{
-				if( c == inputDelimiters[i][0] )
-					return i;
-			}
-
-			return -1;
-		}
-
-		// Find the index of char in the string, or return the length of string instead of -1
-		private static int IndexOfChar( string command, char c, int startIndex )
-		{
-			int result = command.IndexOf( c, startIndex );
-			if( result < 0 )
-				result = command.Length;
-
-			return result;
-		}
-
-		private static bool ParseString( string input, out object output )
-		{
-			output = input;
-			return input.Length > 0;
-		}
-
-		private static bool ParseBool( string input, out object output )
-		{
-			if( input == "1" || input.ToLowerInvariant() == "true" )
-			{
-				output = true;
-				return true;
-			}
-
-			if( input == "0" || input.ToLowerInvariant() == "false" )
-			{
-				output = false;
-				return true;
-			}
-
-			output = false;
-			return false;
-		}
-
-		private static bool ParseInt( string input, out object output )
-		{
-			bool result;
-			int value;
-			result = int.TryParse( input, out value );
-
-			output = value;
-			return result;
-		}
-
-		private static bool ParseUInt( string input, out object output )
-		{
-			bool result;
-			uint value;
-			result = uint.TryParse( input, out value );
-
-			output = value;
-			return result;
-		}
-
-		private static bool ParseLong( string input, out object output )
-		{
-			bool result;
-			long value;
-			result = long.TryParse( input, out value );
-
-			output = value;
-			return result;
-		}
-
-		private static bool ParseULong( string input, out object output )
-		{
-			bool result;
-			ulong value;
-			result = ulong.TryParse( input, out value );
-
-			output = value;
-			return result;
-		}
-
-		private static bool ParseByte( string input, out object output )
-		{
-			bool result;
-			byte value;
-			result = byte.TryParse( input, out value );
-
-			output = value;
-			return result;
-		}
-
-		private static bool ParseSByte( string input, out object output )
-		{
-			bool result;
-			sbyte value;
-			result = sbyte.TryParse( input, out value );
-
-			output = value;
-			return result;
-		}
-
-		private static bool ParseShort( string input, out object output )
-		{
-			bool result;
-			short value;
-			result = short.TryParse( input, out value );
-
-			output = value;
-			return result;
-		}
-
-		private static bool ParseUShort( string input, out object output )
-		{
-			bool result;
-			ushort value;
-			result = ushort.TryParse( input, out value );
-
-			output = value;
-			return result;
-		}
-
-		private static bool ParseChar( string input, out object output )
-		{
-			bool result;
-			char value;
-			result = char.TryParse( input, out value );
-
-			output = value;
-			return result;
-		}
-
-		private static bool ParseFloat( string input, out object output )
-		{
-			bool result;
-			float value;
-			result = float.TryParse( input, out value );
-
-			output = value;
-			return result;
-		}
-
-		private static bool ParseDouble( string input, out object output )
-		{
-			bool result;
-			double value;
-			result = double.TryParse( input, out value );
-
-			output = value;
-			return result;
-		}
-
-		private static bool ParseDecimal( string input, out object output )
-		{
-			bool result;
-			decimal value;
-			result = decimal.TryParse( input, out value );
-
-			output = value;
-			return result;
-		}
-
-		private static bool ParseVector2( string input, out object output )
-		{
-			return CreateVectorFromInput( input, typeof( Vector2 ), out output );
-		}
-
-		private static bool ParseVector3( string input, out object output )
-		{
-			return CreateVectorFromInput( input, typeof( Vector3 ), out output );
-		}
-
-		private static bool ParseVector4( string input, out object output )
-		{
-			return CreateVectorFromInput( input, typeof( Vector4 ), out output );
-		}
-
-		private static bool ParseGameObject( string input, out object output )
-		{
-			output = GameObject.Find( input );
-			return true;
-		}
-
-		// Create a vector of specified type (fill the blank slots with 0 or ignore unnecessary slots)
-		private static bool CreateVectorFromInput( string input, Type vectorType, out object output )
-		{
-			List<string> tokens = new List<string>( input.Replace( ',', ' ' ).Trim().Split( ' ' ) );
-
-			int i;
-			for( i = tokens.Count - 1; i >= 0; i-- )
-			{
-				tokens[i] = tokens[i].Trim();
-				if( tokens[i].Length == 0 )
-					tokens.RemoveAt( i );
-			}
-
-			float[] tokenValues = new float[tokens.Count];
-			for( i = 0; i < tokens.Count; i++ )
-			{
-				float val;
-				if( !float.TryParse( tokens[i], out val ) )
-				{
-					if( vectorType == typeof( Vector3 ) )
-						output = new Vector3();
-					else if( vectorType == typeof( Vector2 ) )
-						output = new Vector2();
-					else
-						output = new Vector4();
-
-					return false;
-				}
-
-				tokenValues[i] = val;
-			}
-
-			if( vectorType == typeof( Vector3 ) )
-			{
-				Vector3 result = new Vector3();
-
-				for( i = 0; i < tokenValues.Length && i < 3; i++ )
-					result[i] = tokenValues[i];
-
-				for( ; i < 3; i++ )
-					result[i] = 0;
-
-				output = result;
-			}
-			else if( vectorType == typeof( Vector2 ) )
-			{
-				Vector2 result = new Vector2();
-
-				for( i = 0; i < tokenValues.Length && i < 2; i++ )
-					result[i] = tokenValues[i];
-
-				for( ; i < 2; i++ )
-					result[i] = 0;
-
-				output = result;
-			}
-			else
-			{
-				Vector4 result = new Vector4();
-
-				for( i = 0; i < tokenValues.Length && i < 4; i++ )
-					result[i] = tokenValues[i];
-
-				for( ; i < 4; i++ )
-					result[i] = 0;
-
-				output = result;
-			}
-
-			return true;
-		}
-	}
-}

+ 0 - 78
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/DebugLogEntry.cs

@@ -1,78 +0,0 @@
-using UnityEngine;
-
-// Container for a simple debug entry
-namespace IngameDebugConsole
-{
-	public class DebugLogEntry : System.IEquatable<DebugLogEntry>
-	{
-		private const int HASH_NOT_CALCULATED = -623218;
-
-		public string logString;
-		public string stackTrace;
-
-		private string completeLog = null;
-
-		// Sprite to show with this entry
-		public Sprite logTypeSpriteRepresentation;
-
-		// Collapsed count
-		public int count;
-
-		private int hashValue = HASH_NOT_CALCULATED;
-
-		public DebugLogEntry( string logString, string stackTrace, Sprite sprite )
-		{
-			this.logString = logString;
-			this.stackTrace = stackTrace;
-
-			logTypeSpriteRepresentation = sprite;
-
-			count = 1;
-		}
-
-		// Check if two entries have the same origin
-		public bool Equals( DebugLogEntry other )
-		{
-			return this.logString == other.logString && this.stackTrace == other.stackTrace;
-		}
-
-		// Return a string containing complete information about this debug entry
-		public override string ToString()
-		{
-			if( completeLog == null )
-				completeLog = string.Concat( logString, "\n", stackTrace );
-
-			return completeLog;
-		}
-
-		// Credit: https://stackoverflow.com/a/19250516/2373034
-		public override int GetHashCode()
-		{
-			if( hashValue == HASH_NOT_CALCULATED )
-			{
-				unchecked
-				{
-					hashValue = 17;
-					hashValue = hashValue * 23 + logString == null ? 0 : logString.GetHashCode();
-					hashValue = hashValue * 23 + stackTrace == null ? 0 : stackTrace.GetHashCode();
-				}
-			}
-
-			return hashValue;
-		}
-	}
-
-	public struct QueuedDebugLogEntry
-	{
-		public readonly string logString;
-		public readonly string stackTrace;
-		public readonly LogType logType;
-
-		public QueuedDebugLogEntry( string logString, string stackTrace, LogType logType )
-		{
-			this.logString = logString;
-			this.stackTrace = stackTrace;
-			this.logType = logType;
-		}
-	}
-}

+ 0 - 12
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/DebugLogEntry.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: e7b1a420c564be040bf73b8a377fc2c2
-timeCreated: 1466375168
-licenseType: Store
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 34
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/DebugLogIndexList.cs

@@ -1,34 +0,0 @@
-namespace IngameDebugConsole
-{
-	public class DebugLogIndexList
-	{
-		private int[] indices;
-		private int size;
-
-		public int Count { get { return size; } }
-		public int this[int index] { get { return indices[index]; } }
-
-		public DebugLogIndexList()
-		{
-			indices = new int[64];
-			size = 0;
-		}
-
-		public void Add( int index )
-		{
-			if( size == indices.Length )
-			{
-				int[] indicesNew = new int[size * 2];
-				System.Array.Copy( indices, 0, indicesNew, 0, size );
-				indices = indicesNew;
-			}
-
-			indices[size++] = index;
-		}
-
-		public void Clear()
-		{
-			size = 0;
-		}
-	}
-}

+ 0 - 12
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/DebugLogIndexList.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 37c6c91e5bfac6f499698c03f593bcbb
-timeCreated: 1520627934
-licenseType: Store
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 130
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/DebugLogItem.cs

@@ -1,130 +0,0 @@
-using UnityEngine;
-using UnityEngine.UI;
-using UnityEngine.EventSystems;
-#if UNITY_EDITOR
-using UnityEditor;
-using System.Text.RegularExpressions;
-#endif
-
-// A UI element to show information about a debug entry
-namespace IngameDebugConsole
-{
-	public class DebugLogItem : MonoBehaviour, IPointerClickHandler
-	{
-#pragma warning disable 0649
-		// Cached components
-		[SerializeField]
-		private RectTransform transformComponent;
-		public RectTransform Transform { get { return transformComponent; } }
-
-		[SerializeField]
-		private Image imageComponent;
-		public Image Image { get { return imageComponent; } }
-
-		[SerializeField]
-		private Text logText;
-		[SerializeField]
-		private Image logTypeImage;
-
-		// Objects related to the collapsed count of the debug entry
-		[SerializeField]
-		private GameObject logCountParent;
-		[SerializeField]
-		private Text logCountText;
-#pragma warning restore 0649
-
-		// Debug entry to show with this log item
-		private DebugLogEntry logEntry;
-
-		// Index of the entry in the list of entries
-		private int entryIndex;
-		public int Index { get { return entryIndex; } }
-
-		private DebugLogRecycledListView manager;
-
-		public void Initialize( DebugLogRecycledListView manager )
-		{
-			this.manager = manager;
-		}
-
-		public void SetContent( DebugLogEntry logEntry, int entryIndex, bool isExpanded )
-		{
-			this.logEntry = logEntry;
-			this.entryIndex = entryIndex;
-
-			Vector2 size = transformComponent.sizeDelta;
-			if( isExpanded )
-			{
-				logText.horizontalOverflow = HorizontalWrapMode.Wrap;
-				size.y = manager.SelectedItemHeight;
-			}
-			else
-			{
-				logText.horizontalOverflow = HorizontalWrapMode.Overflow;
-				size.y = manager.ItemHeight;
-			}
-			transformComponent.sizeDelta = size;
-
-			logText.text = isExpanded ? logEntry.ToString() : logEntry.logString;
-			logTypeImage.sprite = logEntry.logTypeSpriteRepresentation;
-		}
-
-		// Show the collapsed count of the debug entry
-		public void ShowCount()
-		{
-			logCountText.text = logEntry.count.ToString();
-			logCountParent.SetActive( true );
-		}
-
-		// Hide the collapsed count of the debug entry
-		public void HideCount()
-		{
-			logCountParent.SetActive( false );
-		}
-
-		// This log item is clicked, show the debug entry's stack trace
-		public void OnPointerClick( PointerEventData eventData )
-		{
-#if UNITY_EDITOR
-			if( eventData.button == PointerEventData.InputButton.Right )
-			{
-				Match regex = Regex.Match( logEntry.stackTrace, @"\(at .*\.cs:[0-9]+\)$", RegexOptions.Multiline );
-				if( regex.Success )
-				{
-					string line = logEntry.stackTrace.Substring( regex.Index + 4, regex.Length - 5 );
-					int lineSeparator = line.IndexOf( ':' );
-					MonoScript script = AssetDatabase.LoadAssetAtPath<MonoScript>( line.Substring( 0, lineSeparator ) );
-					if( script != null )
-						AssetDatabase.OpenAsset( script, int.Parse( line.Substring( lineSeparator + 1 ) ) );
-				}
-			}
-			else
-				manager.OnLogItemClicked( this );
-#else
-			manager.OnLogItemClicked( this );
-#endif
-		}
-
-		public float CalculateExpandedHeight( string content )
-		{
-			string text = logText.text;
-			HorizontalWrapMode wrapMode = logText.horizontalOverflow;
-
-			logText.text = content;
-			logText.horizontalOverflow = HorizontalWrapMode.Wrap;
-
-			float result = logText.preferredHeight;
-
-			logText.text = text;
-			logText.horizontalOverflow = wrapMode;
-
-			return Mathf.Max( manager.ItemHeight, result );
-		}
-
-		// Return a string containing complete information about the debug entry
-		public override string ToString()
-		{
-			return logEntry.ToString();
-		}
-	}
-}

+ 0 - 12
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/DebugLogItem.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: d2ea291be9de70a4abfec595203c96c1
-timeCreated: 1465919949
-licenseType: Store
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 54
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/DebugLogLogcatListener.cs

@@ -1,54 +0,0 @@
-#if !UNITY_EDITOR && UNITY_ANDROID
-using System.Collections.Generic;
-using UnityEngine;
-
-// Credit: https://stackoverflow.com/a/41018028/2373034
-namespace IngameDebugConsole
-{
-	public class DebugLogLogcatListener : AndroidJavaProxy
-	{
-		private Queue<string> queuedLogs;
-		private AndroidJavaObject nativeObject;
-
-		public DebugLogLogcatListener() : base( "com.yasirkula.unity.LogcatLogReceiver" )
-		{
-			queuedLogs = new Queue<string>( 16 );
-		}
-
-		~DebugLogLogcatListener()
-		{
-			Stop();
-
-			if( nativeObject != null )
-				nativeObject.Dispose();
-		}
-
-		public void Start( string arguments )
-		{
-			if( nativeObject == null )
-				nativeObject = new AndroidJavaObject( "com.yasirkula.unity.LogcatLogger" );
-
-			nativeObject.Call( "Start", this, arguments );
-		}
-
-		public void Stop()
-		{
-			if( nativeObject != null )
-				nativeObject.Call( "Stop" );
-		}
-
-		public void OnLogReceived( string log )
-		{
-			queuedLogs.Enqueue( log );
-		}
-
-		public string GetLog()
-		{
-			if( queuedLogs.Count > 0 )
-				return queuedLogs.Dequeue();
-
-			return null;
-		}
-	}
-}
-#endif

+ 0 - 12
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/DebugLogLogcatListener.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: dd3b7385882055d4a8c2b91deb6b2470
-timeCreated: 1510076185
-licenseType: Store
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 796
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/DebugLogManager.cs

@@ -1,796 +0,0 @@
-using UnityEngine;
-using UnityEngine.UI;
-using UnityEngine.EventSystems;
-using System.Collections.Generic;
-using System.IO;
-
-// Receives debug entries and custom events (e.g. Clear, Collapse, Filter by Type)
-// and notifies the recycled list view of changes to the list of debug entries
-// 
-// - Vocabulary -
-// Debug/Log entry: a Debug.Log/LogError/LogWarning/LogException/LogAssertion request made by
-//                   the client and intercepted by this manager object
-// Debug/Log item: a visual (uGUI) representation of a debug entry
-// 
-// There can be a lot of debug entries in the system but there will only be a handful of log items 
-// to show their properties on screen (these log items are recycled as the list is scrolled)
-
-// An enum to represent filtered log types
-namespace IngameDebugConsole
-{
-	public enum DebugLogFilter
-	{
-		None = 0,
-		Info = 1,
-		Warning = 2,
-		Error = 4,
-		All = 7
-	}
-
-	public class DebugLogManager : MonoBehaviour
-	{
-		private static DebugLogManager instance = null;
-
-#pragma warning disable 0649
-		// Debug console will persist between scenes
-		[Header( "Properties" )]
-		[SerializeField]
-		[HideInInspector]
-		private bool singleton = true;
-
-		// Minimum height of the console window
-		[SerializeField]
-		[HideInInspector]
-		private float minimumHeight = 200f;
-
-		[SerializeField]
-		[HideInInspector]
-		private bool enablePopup = true;
-
-		[SerializeField]
-		[HideInInspector]
-		private bool startInPopupMode = true;
-
-		[SerializeField]
-		[HideInInspector]
-		private bool toggleWithKey = false;
-
-		[SerializeField]
-		[HideInInspector]
-		private KeyCode toggleKey = KeyCode.BackQuote;
-
-		// Should command input field be cleared after pressing Enter
-		[SerializeField]
-		[HideInInspector]
-		private bool clearCommandAfterExecution = true;
-
-		[SerializeField]
-		[HideInInspector]
-		private int commandHistorySize = 15;
-
-		[SerializeField]
-		[HideInInspector]
-		private bool receiveLogcatLogsInAndroid = false;
-
-		[SerializeField]
-		[HideInInspector]
-		private string logcatArguments;
-
-		[Header( "Visuals" )]
-		[SerializeField]
-		private DebugLogItem logItemPrefab;
-
-		// Visuals for different log types
-		[SerializeField]
-		private Sprite infoLog;
-		[SerializeField]
-		private Sprite warningLog;
-		[SerializeField]
-		private Sprite errorLog;
-
-		private Dictionary<LogType, Sprite> logSpriteRepresentations;
-
-		[SerializeField]
-		private Color collapseButtonNormalColor;
-		[SerializeField]
-		private Color collapseButtonSelectedColor;
-
-		[SerializeField]
-		private Color filterButtonsNormalColor;
-		[SerializeField]
-		private Color filterButtonsSelectedColor;
-
-		[Header( "Internal References" )]
-		[SerializeField]
-		private RectTransform logWindowTR;
-
-		private RectTransform canvasTR;
-
-		[SerializeField]
-		private RectTransform logItemsContainer;
-
-		[SerializeField]
-		private InputField commandInputField;
-
-		[SerializeField]
-		private Image collapseButton;
-
-		[SerializeField]
-		private Image filterInfoButton;
-		[SerializeField]
-		private Image filterWarningButton;
-		[SerializeField]
-		private Image filterErrorButton;
-
-		[SerializeField]
-		private Text infoEntryCountText;
-		[SerializeField]
-		private Text warningEntryCountText;
-		[SerializeField]
-		private Text errorEntryCountText;
-
-		[SerializeField]
-		private GameObject snapToBottomButton;
-
-		// Canvas group to modify visibility of the log window
-		[SerializeField]
-		private CanvasGroup logWindowCanvasGroup;
-
-		[SerializeField]
-		private DebugLogPopup popupManager;
-
-		[SerializeField]
-		private ScrollRect logItemsScrollRect;
-
-		// Recycled list view to handle the log items efficiently
-		[SerializeField]
-		private DebugLogRecycledListView recycledListView;
-#pragma warning restore 0649
-
-		// Number of entries filtered by their types
-		private int infoEntryCount = 0, warningEntryCount = 0, errorEntryCount = 0;
-
-		private bool isLogWindowVisible = true;
-		private bool screenDimensionsChanged = false;
-
-		// Filters to apply to the list of debug entries to show
-		private bool isCollapseOn = false;
-		private DebugLogFilter logFilter = DebugLogFilter.All;
-
-		// If the last log item is completely visible (scrollbar is at the bottom),
-		// scrollbar will remain at the bottom when new debug entries are received
-		private bool snapToBottom = true;
-
-		// List of unique debug entries (duplicates of entries are not kept)
-		private List<DebugLogEntry> collapsedLogEntries;
-
-		// Dictionary to quickly find if a log already exists in collapsedLogEntries
-		private Dictionary<DebugLogEntry, int> collapsedLogEntriesMap;
-
-		// The order the collapsedLogEntries are received 
-		// (duplicate entries have the same index (value))
-		private DebugLogIndexList uncollapsedLogEntriesIndices;
-
-		// Filtered list of debug entries to show
-		private DebugLogIndexList indicesOfListEntriesToShow;
-
-		// Logs that should be registered in Update-loop
-		private List<QueuedDebugLogEntry> queuedLogs;
-
-		private List<DebugLogItem> pooledLogItems;
-
-		// History of the previously entered commands
-		private CircularBuffer<string> commandHistory;
-		private int commandHistoryIndex = -1;
-
-		// Required in ValidateScrollPosition() function
-		private PointerEventData nullPointerEventData;
-
-#if !UNITY_EDITOR && UNITY_ANDROID
-		private DebugLogLogcatListener logcatListener;
-#endif
-
-		private void Awake()
-		{
-			// Only one instance of debug console is allowed
-			if( instance == null )
-			{
-				instance = this;
-
-				// If it is a singleton object, don't destroy it between scene changes
-				if( singleton )
-					DontDestroyOnLoad( gameObject );
-			}
-			else if( this != instance )
-			{
-				Destroy( gameObject );
-				return;
-			}
-
-			pooledLogItems = new List<DebugLogItem>();
-			queuedLogs = new List<QueuedDebugLogEntry>();
-			commandHistory = new CircularBuffer<string>( commandHistorySize );
-
-			canvasTR = (RectTransform) transform;
-
-			// Associate sprites with log types
-			logSpriteRepresentations = new Dictionary<LogType, Sprite>
-				{
-					{ LogType.Log, infoLog },
-					{ LogType.Warning, warningLog },
-					{ LogType.Error, errorLog },
-					{ LogType.Exception, errorLog },
-					{ LogType.Assert, errorLog }
-				};
-
-			// Initially, all log types are visible
-			filterInfoButton.color = filterButtonsSelectedColor;
-			filterWarningButton.color = filterButtonsSelectedColor;
-			filterErrorButton.color = filterButtonsSelectedColor;
-
-			collapsedLogEntries = new List<DebugLogEntry>( 128 );
-			collapsedLogEntriesMap = new Dictionary<DebugLogEntry, int>( 128 );
-			uncollapsedLogEntriesIndices = new DebugLogIndexList();
-			indicesOfListEntriesToShow = new DebugLogIndexList();
-
-			recycledListView.Initialize( this, collapsedLogEntries, indicesOfListEntriesToShow, logItemPrefab.Transform.sizeDelta.y );
-			recycledListView.UpdateItemsInTheList( true );
-
-			if( minimumHeight < 200f )
-				minimumHeight = 200f;
-
-			nullPointerEventData = new PointerEventData( null );
-		}
-
-		private void OnEnable()
-		{
-			// Intercept debug entries
-			Application.logMessageReceived -= ReceivedLog;
-			Application.logMessageReceived += ReceivedLog;
-
-			// Listen for entered commands
-			commandInputField.onValidateInput -= OnValidateCommand;
-			commandInputField.onValidateInput += OnValidateCommand;
-
-			if( receiveLogcatLogsInAndroid )
-			{
-#if !UNITY_EDITOR && UNITY_ANDROID
-				if( logcatListener == null )
-					logcatListener = new DebugLogLogcatListener();
-
-				logcatListener.Start( logcatArguments );
-#endif
-			}
-
-			DebugLogConsole.AddCommandInstance( "save_logs", "Saves logs to a file", "SaveLogsToFile", this );
-
-			//Debug.LogAssertion( "assert" );
-			//Debug.LogError( "error" );
-			//Debug.LogException( new System.IO.EndOfStreamException() );
-			//Debug.LogWarning( "warning" );
-			//Debug.Log( "log" );
-		}
-
-		private void OnDisable()
-		{
-			if( instance != this )
-				return;
-
-			// Stop receiving debug entries
-			Application.logMessageReceived -= ReceivedLog;
-
-#if !UNITY_EDITOR && UNITY_ANDROID
-			if( logcatListener != null )
-				logcatListener.Stop();
-#endif
-
-			// Stop receiving commands
-			commandInputField.onValidateInput -= OnValidateCommand;
-
-			DebugLogConsole.RemoveCommand( "save_logs" );
-		}
-
-		// Launch in popup mode
-		private void Start()
-		{
-			if( enablePopup && startInPopupMode )
-				ShowPopup();
-			else
-			{
-				ShowLogWindow();
-				popupManager.gameObject.SetActive( enablePopup );
-			}
-		}
-
-		// Window is resized, update the list
-		private void OnRectTransformDimensionsChange()
-		{
-			screenDimensionsChanged = true;
-		}
-
-		// If snapToBottom is enabled, force the scrollbar to the bottom
-		private void LateUpdate()
-		{
-			int queuedLogCount = queuedLogs.Count;
-			if( queuedLogCount > 0 )
-			{
-				for( int i = 0; i < queuedLogCount; i++ )
-				{
-					QueuedDebugLogEntry logEntry = queuedLogs[i];
-					ReceivedLog( logEntry.logString, logEntry.stackTrace, logEntry.logType );
-				}
-
-				queuedLogs.Clear();
-			}
-
-			if( screenDimensionsChanged )
-			{
-				// Update the recycled list view
-				if( isLogWindowVisible )
-					recycledListView.OnViewportDimensionsChanged();
-				else
-					popupManager.OnViewportDimensionsChanged();
-
-				screenDimensionsChanged = false;
-			}
-
-			if( snapToBottom )
-			{
-				logItemsScrollRect.verticalNormalizedPosition = 0f;
-
-				if( snapToBottomButton.activeSelf )
-					snapToBottomButton.SetActive( false );
-			}
-			else
-			{
-				float scrollPos = logItemsScrollRect.verticalNormalizedPosition;
-				if( snapToBottomButton.activeSelf != ( scrollPos > 1E-6f && scrollPos < 0.9999f ) )
-					snapToBottomButton.SetActive( !snapToBottomButton.activeSelf );
-			}
-
-			if( toggleWithKey )
-			{
-				if( Input.GetKeyDown( toggleKey ) )
-				{
-					if( isLogWindowVisible )
-						ShowPopup();
-					else
-						ShowLogWindow();
-				}
-			}
-
-			if( isLogWindowVisible && commandInputField.isFocused )
-			{
-				if( Input.GetKeyDown( KeyCode.UpArrow ) )
-				{
-					if( commandHistoryIndex == -1 )
-						commandHistoryIndex = commandHistory.Count - 1;
-					else if( --commandHistoryIndex < 0 )
-						commandHistoryIndex = 0;
-
-					if( commandHistoryIndex >= 0 && commandHistoryIndex < commandHistory.Count )
-					{
-						commandInputField.text = commandHistory[commandHistoryIndex];
-						commandInputField.caretPosition = commandInputField.text.Length;
-					}
-				}
-				else if( Input.GetKeyDown( KeyCode.DownArrow ) )
-				{
-					if( commandHistoryIndex == -1 )
-						commandHistoryIndex = commandHistory.Count - 1;
-					else if( ++commandHistoryIndex >= commandHistory.Count )
-						commandHistoryIndex = commandHistory.Count - 1;
-
-					if( commandHistoryIndex >= 0 && commandHistoryIndex < commandHistory.Count )
-						commandInputField.text = commandHistory[commandHistoryIndex];
-				}
-			}
-
-#if !UNITY_EDITOR && UNITY_ANDROID
-			if( logcatListener != null )
-			{
-				string log;
-				while( ( log = logcatListener.GetLog() ) != null )
-					ReceivedLog( "LOGCAT: " + log, string.Empty, LogType.Log );
-			}
-#endif
-		}
-
-		public void ShowLogWindow()
-		{
-			// Show the log window
-			logWindowCanvasGroup.interactable = true;
-			logWindowCanvasGroup.blocksRaycasts = true;
-			logWindowCanvasGroup.alpha = 1f;
-
-			popupManager.Hide();
-
-			// Update the recycled list view 
-			// (in case new entries were intercepted while log window was hidden)
-			recycledListView.OnLogEntriesUpdated( true );
-
-			isLogWindowVisible = true;
-		}
-
-		public void ShowPopup()
-		{
-			// Hide the log window
-			logWindowCanvasGroup.interactable = false;
-			logWindowCanvasGroup.blocksRaycasts = false;
-			logWindowCanvasGroup.alpha = 0f;
-
-			popupManager.Show();
-
-			commandHistoryIndex = -1;
-			isLogWindowVisible = false;
-		}
-
-		// Command field input is changed, check if command is submitted
-		public char OnValidateCommand( string text, int charIndex, char addedChar )
-		{
-			if( addedChar == '\t' ) // Autocomplete attempt
-			{
-				if( !string.IsNullOrEmpty( text ) )
-				{
-					string autoCompletedCommand = DebugLogConsole.GetAutoCompleteCommand( text );
-					if( !string.IsNullOrEmpty( autoCompletedCommand ) )
-						commandInputField.text = autoCompletedCommand;
-				}
-
-				return '\0';
-			}
-			else if( addedChar == '\n' ) // Command is submitted
-			{
-				// Clear the command field
-				if( clearCommandAfterExecution )
-					commandInputField.text = "";
-
-				if( text.Length > 0 )
-				{
-					if( commandHistory.Count == 0 || commandHistory[commandHistory.Count - 1] != text )
-						commandHistory.Add( text );
-
-					commandHistoryIndex = -1;
-
-					// Execute the command
-					DebugLogConsole.ExecuteCommand( text );
-
-					// Snap to bottom and select the latest entry
-					SetSnapToBottom( true );
-				}
-
-				return '\0';
-			}
-
-			return addedChar;
-		}
-
-		// A debug entry is received
-		private void ReceivedLog( string logString, string stackTrace, LogType logType )
-		{
-			if( CanvasUpdateRegistry.IsRebuildingGraphics() || CanvasUpdateRegistry.IsRebuildingLayout() )
-			{
-				// Trying to update the UI while the canvas is being rebuilt will throw warnings in the Unity console
-				queuedLogs.Add( new QueuedDebugLogEntry( logString, stackTrace, logType ) );
-				return;
-			}
-
-			DebugLogEntry logEntry = new DebugLogEntry( logString, stackTrace, null );
-
-			// Check if this entry is a duplicate (i.e. has been received before)
-			int logEntryIndex;
-			bool isEntryInCollapsedEntryList = collapsedLogEntriesMap.TryGetValue( logEntry, out logEntryIndex );
-			if( !isEntryInCollapsedEntryList )
-			{
-				// It is not a duplicate,
-				// add it to the list of unique debug entries
-				logEntry.logTypeSpriteRepresentation = logSpriteRepresentations[logType];
-
-				logEntryIndex = collapsedLogEntries.Count;
-				collapsedLogEntries.Add( logEntry );
-				collapsedLogEntriesMap[logEntry] = logEntryIndex;
-			}
-			else
-			{
-				// It is a duplicate,
-				// increment the original debug item's collapsed count
-				logEntry = collapsedLogEntries[logEntryIndex];
-				logEntry.count++;
-			}
-
-			// Add the index of the unique debug entry to the list
-			// that stores the order the debug entries are received
-			uncollapsedLogEntriesIndices.Add( logEntryIndex );
-
-			// If this debug entry matches the current filters,
-			// add it to the list of debug entries to show
-			Sprite logTypeSpriteRepresentation = logEntry.logTypeSpriteRepresentation;
-			if( isCollapseOn && isEntryInCollapsedEntryList )
-			{
-				if( isLogWindowVisible )
-					recycledListView.OnCollapsedLogEntryAtIndexUpdated( logEntryIndex );
-			}
-			else if( logFilter == DebugLogFilter.All ||
-			   ( logTypeSpriteRepresentation == infoLog && ( ( logFilter & DebugLogFilter.Info ) == DebugLogFilter.Info ) ) ||
-			   ( logTypeSpriteRepresentation == warningLog && ( ( logFilter & DebugLogFilter.Warning ) == DebugLogFilter.Warning ) ) ||
-			   ( logTypeSpriteRepresentation == errorLog && ( ( logFilter & DebugLogFilter.Error ) == DebugLogFilter.Error ) ) )
-			{
-				indicesOfListEntriesToShow.Add( logEntryIndex );
-
-				if( isLogWindowVisible )
-					recycledListView.OnLogEntriesUpdated( false );
-			}
-
-			if( logType == LogType.Log )
-			{
-				infoEntryCount++;
-				infoEntryCountText.text = infoEntryCount.ToString();
-
-				// If debug popup is visible, notify it of the new debug entry
-				if( !isLogWindowVisible )
-					popupManager.NewInfoLogArrived();
-			}
-			else if( logType == LogType.Warning )
-			{
-				warningEntryCount++;
-				warningEntryCountText.text = warningEntryCount.ToString();
-
-				// If debug popup is visible, notify it of the new debug entry
-				if( !isLogWindowVisible )
-					popupManager.NewWarningLogArrived();
-			}
-			else
-			{
-				errorEntryCount++;
-				errorEntryCountText.text = errorEntryCount.ToString();
-
-				// If debug popup is visible, notify it of the new debug entry
-				if( !isLogWindowVisible )
-					popupManager.NewErrorLogArrived();
-			}
-		}
-
-		// Value of snapToBottom is changed (user scrolled the list manually)
-		public void SetSnapToBottom( bool snapToBottom )
-		{
-			this.snapToBottom = snapToBottom;
-		}
-
-		// Make sure the scroll bar of the scroll rect is adjusted properly
-		public void ValidateScrollPosition()
-		{
-			logItemsScrollRect.OnScroll( nullPointerEventData );
-		}
-
-		// Hide button is clicked
-		public void HideButtonPressed()
-		{
-			ShowPopup();
-		}
-
-		// Clear button is clicked
-		public void ClearButtonPressed()
-		{
-			snapToBottom = true;
-
-			infoEntryCount = 0;
-			warningEntryCount = 0;
-			errorEntryCount = 0;
-
-			infoEntryCountText.text = "0";
-			warningEntryCountText.text = "0";
-			errorEntryCountText.text = "0";
-
-			collapsedLogEntries.Clear();
-			collapsedLogEntriesMap.Clear();
-			uncollapsedLogEntriesIndices.Clear();
-			indicesOfListEntriesToShow.Clear();
-
-			recycledListView.DeselectSelectedLogItem();
-			recycledListView.OnLogEntriesUpdated( true );
-		}
-
-		// Collapse button is clicked
-		public void CollapseButtonPressed()
-		{
-			// Swap the value of collapse mode
-			isCollapseOn = !isCollapseOn;
-
-			snapToBottom = true;
-			collapseButton.color = isCollapseOn ? collapseButtonSelectedColor : collapseButtonNormalColor;
-			recycledListView.SetCollapseMode( isCollapseOn );
-
-			// Determine the new list of debug entries to show
-			FilterLogs();
-		}
-
-		// Filtering mode of info logs has been changed
-		public void FilterLogButtonPressed()
-		{
-			logFilter = logFilter ^ DebugLogFilter.Info;
-
-			if( ( logFilter & DebugLogFilter.Info ) == DebugLogFilter.Info )
-				filterInfoButton.color = filterButtonsSelectedColor;
-			else
-				filterInfoButton.color = filterButtonsNormalColor;
-
-			FilterLogs();
-		}
-
-		// Filtering mode of warning logs has been changed
-		public void FilterWarningButtonPressed()
-		{
-			logFilter = logFilter ^ DebugLogFilter.Warning;
-
-			if( ( logFilter & DebugLogFilter.Warning ) == DebugLogFilter.Warning )
-				filterWarningButton.color = filterButtonsSelectedColor;
-			else
-				filterWarningButton.color = filterButtonsNormalColor;
-
-			FilterLogs();
-		}
-
-		// Filtering mode of error logs has been changed
-		public void FilterErrorButtonPressed()
-		{
-			logFilter = logFilter ^ DebugLogFilter.Error;
-
-			if( ( logFilter & DebugLogFilter.Error ) == DebugLogFilter.Error )
-				filterErrorButton.color = filterButtonsSelectedColor;
-			else
-				filterErrorButton.color = filterButtonsNormalColor;
-
-			FilterLogs();
-		}
-
-		// Debug window is being resized,
-		// Set the sizeDelta property of the window accordingly while
-		// preventing window dimensions from going below the minimum dimensions
-		public void Resize( BaseEventData dat )
-		{
-			PointerEventData eventData = (PointerEventData) dat;
-
-			// Grab the resize button from top; 36f is the height of the resize button
-			float newHeight = ( eventData.position.y - logWindowTR.position.y ) / -canvasTR.localScale.y + 36f;
-			if( newHeight < minimumHeight )
-				newHeight = minimumHeight;
-
-			Vector2 anchorMin = logWindowTR.anchorMin;
-			anchorMin.y = Mathf.Max( 0f, 1f - newHeight / canvasTR.sizeDelta.y );
-			logWindowTR.anchorMin = anchorMin;
-
-			// Update the recycled list view
-			recycledListView.OnViewportDimensionsChanged();
-		}
-
-		// Determine the filtered list of debug entries to show on screen
-		private void FilterLogs()
-		{
-			if( logFilter == DebugLogFilter.None )
-			{
-				// Show no entry
-				indicesOfListEntriesToShow.Clear();
-			}
-			else if( logFilter == DebugLogFilter.All )
-			{
-				if( isCollapseOn )
-				{
-					// All the unique debug entries will be listed just once.
-					// So, list of debug entries to show is the same as the
-					// order these unique debug entries are added to collapsedLogEntries
-					indicesOfListEntriesToShow.Clear();
-					for( int i = 0; i < collapsedLogEntries.Count; i++ )
-						indicesOfListEntriesToShow.Add( i );
-				}
-				else
-				{
-					indicesOfListEntriesToShow.Clear();
-					for( int i = 0; i < uncollapsedLogEntriesIndices.Count; i++ )
-						indicesOfListEntriesToShow.Add( uncollapsedLogEntriesIndices[i] );
-				}
-			}
-			else
-			{
-				// Show only the debug entries that match the current filter
-				bool isInfoEnabled = ( logFilter & DebugLogFilter.Info ) == DebugLogFilter.Info;
-				bool isWarningEnabled = ( logFilter & DebugLogFilter.Warning ) == DebugLogFilter.Warning;
-				bool isErrorEnabled = ( logFilter & DebugLogFilter.Error ) == DebugLogFilter.Error;
-
-				if( isCollapseOn )
-				{
-					indicesOfListEntriesToShow.Clear();
-					for( int i = 0; i < collapsedLogEntries.Count; i++ )
-					{
-						DebugLogEntry logEntry = collapsedLogEntries[i];
-						if( logEntry.logTypeSpriteRepresentation == infoLog && isInfoEnabled )
-							indicesOfListEntriesToShow.Add( i );
-						else if( logEntry.logTypeSpriteRepresentation == warningLog && isWarningEnabled )
-							indicesOfListEntriesToShow.Add( i );
-						else if( logEntry.logTypeSpriteRepresentation == errorLog && isErrorEnabled )
-							indicesOfListEntriesToShow.Add( i );
-					}
-				}
-				else
-				{
-					indicesOfListEntriesToShow.Clear();
-					for( int i = 0; i < uncollapsedLogEntriesIndices.Count; i++ )
-					{
-						DebugLogEntry logEntry = collapsedLogEntries[uncollapsedLogEntriesIndices[i]];
-						if( logEntry.logTypeSpriteRepresentation == infoLog && isInfoEnabled )
-							indicesOfListEntriesToShow.Add( uncollapsedLogEntriesIndices[i] );
-						else if( logEntry.logTypeSpriteRepresentation == warningLog && isWarningEnabled )
-							indicesOfListEntriesToShow.Add( uncollapsedLogEntriesIndices[i] );
-						else if( logEntry.logTypeSpriteRepresentation == errorLog && isErrorEnabled )
-							indicesOfListEntriesToShow.Add( uncollapsedLogEntriesIndices[i] );
-					}
-				}
-			}
-
-			// Update the recycled list view
-			recycledListView.DeselectSelectedLogItem();
-			recycledListView.OnLogEntriesUpdated( true );
-
-			ValidateScrollPosition();
-		}
-
-		public string GetAllLogs()
-		{
-			int count = uncollapsedLogEntriesIndices.Count;
-			int length = 0;
-			int newLineLength = System.Environment.NewLine.Length;
-			for( int i = 0; i < count; i++ )
-			{
-				DebugLogEntry entry = collapsedLogEntries[uncollapsedLogEntriesIndices[i]];
-				length += entry.logString.Length + entry.stackTrace.Length + newLineLength * 3;
-			}
-
-			length += 100; // Just in case...
-
-			System.Text.StringBuilder sb = new System.Text.StringBuilder( length );
-			for( int i = 0; i < count; i++ )
-			{
-				DebugLogEntry entry = collapsedLogEntries[uncollapsedLogEntriesIndices[i]];
-				sb.AppendLine( entry.logString ).AppendLine( entry.stackTrace ).AppendLine();
-			}
-
-			return sb.ToString();
-		}
-
-		private void SaveLogsToFile()
-		{
-			string path = Path.Combine( Application.persistentDataPath, System.DateTime.Now.ToString( "dd-MM-yyyy--HH-mm-ss" ) + ".txt" );
-			File.WriteAllText( path, instance.GetAllLogs() );
-
-			Debug.Log( "Logs saved to: " + path );
-		}
-
-		// Pool an unused log item
-		public void PoolLogItem( DebugLogItem logItem )
-		{
-			logItem.gameObject.SetActive( false );
-			pooledLogItems.Add( logItem );
-		}
-
-		// Fetch a log item from the pool
-		public DebugLogItem PopLogItem()
-		{
-			DebugLogItem newLogItem;
-
-			// If pool is not empty, fetch a log item from the pool,
-			// create a new log item otherwise
-			if( pooledLogItems.Count > 0 )
-			{
-				newLogItem = pooledLogItems[pooledLogItems.Count - 1];
-				pooledLogItems.RemoveAt( pooledLogItems.Count - 1 );
-				newLogItem.gameObject.SetActive( true );
-			}
-			else
-			{
-				newLogItem = (DebugLogItem) Instantiate( logItemPrefab, logItemsContainer, false );
-				newLogItem.Initialize( recycledListView );
-			}
-
-			return newLogItem;
-		}
-	}
-}

+ 0 - 12
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/DebugLogManager.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 6a4f16ed905adcd4ab0d7c8c11f0d72c
-timeCreated: 1522092746
-licenseType: Store
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: -9869
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 228
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/DebugLogPopup.cs

@@ -1,228 +0,0 @@
-using UnityEngine;
-using UnityEngine.UI;
-using UnityEngine.EventSystems;
-using System.Collections;
-
-// Manager class for the debug popup
-namespace IngameDebugConsole
-{
-	public class DebugLogPopup : MonoBehaviour, IPointerClickHandler, IBeginDragHandler, IDragHandler, IEndDragHandler
-	{
-		private RectTransform popupTransform;
-
-		// Dimensions of the popup divided by 2
-		private Vector2 halfSize;
-
-		// Background image that will change color to indicate an alert
-		private Image backgroundImage;
-
-		// Canvas group to modify visibility of the popup
-		private CanvasGroup canvasGroup;
-
-#pragma warning disable 0649
-		[SerializeField]
-		private DebugLogManager debugManager;
-
-		[SerializeField]
-		private Text newInfoCountText;
-		[SerializeField]
-		private Text newWarningCountText;
-		[SerializeField]
-		private Text newErrorCountText;
-
-		[SerializeField]
-		private Color alertColorInfo;
-		[SerializeField]
-		private Color alertColorWarning;
-		[SerializeField]
-		private Color alertColorError;
-#pragma warning restore 0649
-
-		// Number of new debug entries since the log window has been closed
-		private int newInfoCount = 0, newWarningCount = 0, newErrorCount = 0;
-
-		private Color normalColor;
-
-		private bool isPopupBeingDragged = false;
-
-		// Coroutines for simple code-based animations
-		private IEnumerator moveToPosCoroutine = null;
-
-		void Awake()
-		{
-			popupTransform = (RectTransform) transform;
-			backgroundImage = GetComponent<Image>();
-			canvasGroup = GetComponent<CanvasGroup>();
-
-			normalColor = backgroundImage.color;
-		}
-
-		void Start()
-		{
-			halfSize = popupTransform.sizeDelta * 0.5f * popupTransform.root.localScale.x;
-		}
-
-		public void OnViewportDimensionsChanged()
-		{
-			if( !gameObject.activeSelf )
-				return;
-
-			halfSize = popupTransform.sizeDelta * 0.5f * popupTransform.root.localScale.x;
-			OnEndDrag( null );
-		}
-
-		public void NewInfoLogArrived()
-		{
-			newInfoCount++;
-			newInfoCountText.text = newInfoCount.ToString();
-
-			if( newWarningCount == 0 && newErrorCount == 0 )
-				backgroundImage.color = alertColorInfo;
-		}
-
-		public void NewWarningLogArrived()
-		{
-			newWarningCount++;
-			newWarningCountText.text = newWarningCount.ToString();
-
-			if( newErrorCount == 0 )
-				backgroundImage.color = alertColorWarning;
-		}
-
-		public void NewErrorLogArrived()
-		{
-			newErrorCount++;
-			newErrorCountText.text = newErrorCount.ToString();
-
-			backgroundImage.color = alertColorError;
-		}
-
-		private void Reset()
-		{
-			newInfoCount = 0;
-			newWarningCount = 0;
-			newErrorCount = 0;
-
-			newInfoCountText.text = "0";
-			newWarningCountText.text = "0";
-			newErrorCountText.text = "0";
-
-			backgroundImage.color = normalColor;
-		}
-
-		// A simple smooth movement animation
-		private IEnumerator MoveToPosAnimation( Vector3 targetPos )
-		{
-			float modifier = 0f;
-			Vector3 initialPos = popupTransform.position;
-
-			while( modifier < 1f )
-			{
-				modifier += 4f * Time.unscaledDeltaTime;
-				popupTransform.position = Vector3.Lerp( initialPos, targetPos, modifier );
-
-				yield return null;
-			}
-		}
-
-		// Popup is clicked
-		public void OnPointerClick( PointerEventData data )
-		{
-			// Hide the popup and show the log window
-			if( !isPopupBeingDragged )
-				debugManager.ShowLogWindow();
-		}
-
-		// Hides the log window and shows the popup
-		public void Show()
-		{
-			canvasGroup.interactable = true;
-			canvasGroup.blocksRaycasts = true;
-			canvasGroup.alpha = 1f;
-
-			// Reset the counters
-			Reset();
-
-			// Update position in case resolution changed while hidden
-			OnViewportDimensionsChanged();
-		}
-
-		// Hide the popup
-		public void Hide()
-		{
-			canvasGroup.interactable = false;
-			canvasGroup.blocksRaycasts = false;
-			canvasGroup.alpha = 0f;
-
-			isPopupBeingDragged = false;
-		}
-
-		public void OnBeginDrag( PointerEventData data )
-		{
-			isPopupBeingDragged = true;
-
-			// If a smooth movement animation is in progress, cancel it
-			if( moveToPosCoroutine != null )
-			{
-				StopCoroutine( moveToPosCoroutine );
-				moveToPosCoroutine = null;
-			}
-		}
-
-		// Reposition the popup
-		public void OnDrag( PointerEventData data )
-		{
-			popupTransform.position = data.position;
-		}
-
-		// Smoothly translate the popup to the nearest edge
-		public void OnEndDrag( PointerEventData data )
-		{
-			return;
-			int screenWidth = Screen.width;
-			int screenHeight = Screen.height;
-
-			Vector3 pos = popupTransform.position;
-
-			// Find distances to all four edges
-			float distToLeft = pos.x;
-			float distToRight = Mathf.Abs( pos.x - screenWidth );
-
-			float distToBottom = Mathf.Abs( pos.y );
-			float distToTop = Mathf.Abs( pos.y - screenHeight );
-
-			float horDistance = Mathf.Min( distToLeft, distToRight );
-			float vertDistance = Mathf.Min( distToBottom, distToTop );
-
-			// Find the nearest edge's coordinates
-			if( horDistance < vertDistance )
-			{
-				if( distToLeft < distToRight )
-					pos = new Vector3( halfSize.x, pos.y, 0f );
-				else
-					pos = new Vector3( screenWidth - halfSize.x, pos.y, 0f );
-
-				pos.y = Mathf.Clamp( pos.y, halfSize.y, screenHeight - halfSize.y );
-			}
-			else
-			{
-				if( distToBottom < distToTop )
-					pos = new Vector3( pos.x, halfSize.y, 0f );
-				else
-					pos = new Vector3( pos.x, screenHeight - halfSize.y, 0f );
-
-				pos.x = Mathf.Clamp( pos.x, halfSize.x, screenWidth - halfSize.x );
-			}
-
-			// If another smooth movement animation is in progress, cancel it
-			if( moveToPosCoroutine != null )
-				StopCoroutine( moveToPosCoroutine );
-
-			// Smoothly translate the popup to the specified position
-			moveToPosCoroutine = MoveToPosAnimation( pos );
-			StartCoroutine( moveToPosCoroutine );
-
-			isPopupBeingDragged = false;
-		}
-	}
-}

+ 0 - 12
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/DebugLogPopup.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 05cc4b1999716644c9308528e38e7081
-timeCreated: 1466533184
-licenseType: Store
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 328
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/DebugLogRecycledListView.cs

@@ -1,328 +0,0 @@
-using UnityEngine;
-using System.Collections.Generic;
-
-// Handles the log items in an optimized way such that existing log items are
-// recycled within the list instead of creating a new log item at each chance
-namespace IngameDebugConsole
-{
-	public class DebugLogRecycledListView : MonoBehaviour
-	{
-#pragma warning disable 0649
-		// Cached components
-		[SerializeField]
-		private RectTransform transformComponent;
-		[SerializeField]
-		private RectTransform viewportTransform;
-
-		[SerializeField]
-		private DebugLogManager debugManager;
-
-		[SerializeField]
-		private Color logItemNormalColor1;
-		[SerializeField]
-		private Color logItemNormalColor2;
-		[SerializeField]
-		private Color logItemSelectedColor;
-#pragma warning restore 0649
-
-		private DebugLogManager manager;
-
-		private float logItemHeight, _1OverLogItemHeight;
-		private float viewportHeight;
-
-		// Unique debug entries
-		private List<DebugLogEntry> collapsedLogEntries = null;
-
-		// Indices of debug entries to show in collapsedLogEntries
-		private DebugLogIndexList indicesOfEntriesToShow = null;
-
-		private int indexOfSelectedLogEntry = int.MaxValue;
-		private float positionOfSelectedLogEntry = float.MaxValue;
-		private float heightOfSelectedLogEntry;
-		private float deltaHeightOfSelectedLogEntry;
-
-		// Log items used to visualize the debug entries at specified indices
-		private Dictionary<int, DebugLogItem> logItemsAtIndices = new Dictionary<int, DebugLogItem>();
-
-		private bool isCollapseOn = false;
-
-		// Current indices of debug entries shown on screen
-		private int currentTopIndex = -1, currentBottomIndex = -1;
-
-		public float ItemHeight { get { return logItemHeight; } }
-		public float SelectedItemHeight { get { return heightOfSelectedLogEntry; } }
-
-		void Awake()
-		{
-			viewportHeight = viewportTransform.rect.height;
-		}
-
-		public void Initialize( DebugLogManager manager, List<DebugLogEntry> collapsedLogEntries,
-			DebugLogIndexList indicesOfEntriesToShow, float logItemHeight )
-		{
-			this.manager = manager;
-			this.collapsedLogEntries = collapsedLogEntries;
-			this.indicesOfEntriesToShow = indicesOfEntriesToShow;
-			this.logItemHeight = logItemHeight;
-			_1OverLogItemHeight = 1f / logItemHeight;
-		}
-
-		public void SetCollapseMode( bool collapse )
-		{
-			isCollapseOn = collapse;
-		}
-
-		// A log item is clicked, highlight it
-		public void OnLogItemClicked( DebugLogItem item )
-		{
-			if( indexOfSelectedLogEntry != item.Index )
-			{
-				DeselectSelectedLogItem();
-
-				indexOfSelectedLogEntry = item.Index;
-				positionOfSelectedLogEntry = item.Index * logItemHeight;
-				heightOfSelectedLogEntry = item.CalculateExpandedHeight( item.ToString() );
-				deltaHeightOfSelectedLogEntry = heightOfSelectedLogEntry - logItemHeight;
-
-				manager.SetSnapToBottom( false );
-			}
-			else
-				DeselectSelectedLogItem();
-
-			if( indexOfSelectedLogEntry >= currentTopIndex && indexOfSelectedLogEntry <= currentBottomIndex )
-				ColorLogItem( logItemsAtIndices[indexOfSelectedLogEntry], indexOfSelectedLogEntry );
-
-			CalculateContentHeight();
-
-			HardResetItems();
-			UpdateItemsInTheList( true );
-
-			manager.ValidateScrollPosition();
-		}
-
-		// Deselect the currently selected log item
-		public void DeselectSelectedLogItem()
-		{
-			int indexOfPreviouslySelectedLogEntry = indexOfSelectedLogEntry;
-			indexOfSelectedLogEntry = int.MaxValue;
-
-			positionOfSelectedLogEntry = float.MaxValue;
-			heightOfSelectedLogEntry = deltaHeightOfSelectedLogEntry = 0f;
-
-			if( indexOfPreviouslySelectedLogEntry >= currentTopIndex && indexOfPreviouslySelectedLogEntry <= currentBottomIndex )
-				ColorLogItem( logItemsAtIndices[indexOfPreviouslySelectedLogEntry], indexOfPreviouslySelectedLogEntry );
-		}
-
-		// Number of debug entries may be changed, update the list
-		public void OnLogEntriesUpdated( bool updateAllVisibleItemContents )
-		{
-			CalculateContentHeight();
-			viewportHeight = viewportTransform.rect.height;
-
-			if( updateAllVisibleItemContents )
-				HardResetItems();
-
-			UpdateItemsInTheList( updateAllVisibleItemContents );
-		}
-
-		// A single collapsed log entry at specified index is updated, refresh its item if visible
-		public void OnCollapsedLogEntryAtIndexUpdated( int index )
-		{
-			DebugLogItem logItem;
-			if( logItemsAtIndices.TryGetValue( index, out logItem ) )
-				logItem.ShowCount();
-		}
-
-		// Log window is resized, update the list
-		public void OnViewportDimensionsChanged()
-		{
-			viewportHeight = viewportTransform.rect.height;
-			UpdateItemsInTheList( false );
-		}
-
-		private void HardResetItems()
-		{
-			if( currentTopIndex != -1 )
-			{
-				DestroyLogItemsBetweenIndices( currentTopIndex, currentBottomIndex );
-				currentTopIndex = -1;
-			}
-		}
-
-		private void CalculateContentHeight()
-		{
-			float newHeight = Mathf.Max( 1f, indicesOfEntriesToShow.Count * logItemHeight + deltaHeightOfSelectedLogEntry );
-			transformComponent.sizeDelta = new Vector2( 0f, newHeight );
-		}
-
-		// Calculate the indices of log entries to show
-		// and handle log items accordingly
-		public void UpdateItemsInTheList( bool updateAllVisibleItemContents )
-		{
-			// If there is at least one log entry to show
-			if( indicesOfEntriesToShow.Count > 0 )
-			{
-				float contentPosTop = transformComponent.anchoredPosition.y - 1f;
-				float contentPosBottom = contentPosTop + viewportHeight + 2f;
-
-				if( positionOfSelectedLogEntry <= contentPosBottom )
-				{
-					if( positionOfSelectedLogEntry <= contentPosTop )
-					{
-						contentPosTop -= deltaHeightOfSelectedLogEntry;
-						contentPosBottom -= deltaHeightOfSelectedLogEntry;
-
-						if( contentPosTop < positionOfSelectedLogEntry - 1f )
-							contentPosTop = positionOfSelectedLogEntry - 1f;
-
-						if( contentPosBottom < contentPosTop + 2f )
-							contentPosBottom = contentPosTop + 2f;
-					}
-					else
-					{
-						contentPosBottom -= deltaHeightOfSelectedLogEntry;
-						if( contentPosBottom < positionOfSelectedLogEntry + 1f )
-							contentPosBottom = positionOfSelectedLogEntry + 1f;
-					}
-				}
-
-				int newTopIndex = (int) ( contentPosTop * _1OverLogItemHeight );
-				int newBottomIndex = (int) ( contentPosBottom * _1OverLogItemHeight );
-
-				if( newTopIndex < 0 )
-					newTopIndex = 0;
-
-				if( newBottomIndex > indicesOfEntriesToShow.Count - 1 )
-					newBottomIndex = indicesOfEntriesToShow.Count - 1;
-
-				if( currentTopIndex == -1 )
-				{
-					// There are no log items visible on screen,
-					// just create the new log items
-					updateAllVisibleItemContents = true;
-
-					currentTopIndex = newTopIndex;
-					currentBottomIndex = newBottomIndex;
-
-					CreateLogItemsBetweenIndices( newTopIndex, newBottomIndex );
-				}
-				else
-				{
-					// There are some log items visible on screen
-
-					if( newBottomIndex < currentTopIndex || newTopIndex > currentBottomIndex )
-					{
-						// If user scrolled a lot such that, none of the log items are now within
-						// the bounds of the scroll view, pool all the previous log items and create
-						// new log items for the new list of visible debug entries
-						updateAllVisibleItemContents = true;
-
-						DestroyLogItemsBetweenIndices( currentTopIndex, currentBottomIndex );
-						CreateLogItemsBetweenIndices( newTopIndex, newBottomIndex );
-					}
-					else
-					{
-						// User did not scroll a lot such that, there are still some log items within
-						// the bounds of the scroll view. Don't destroy them but update their content,
-						// if necessary
-						if( newTopIndex > currentTopIndex )
-							DestroyLogItemsBetweenIndices( currentTopIndex, newTopIndex - 1 );
-
-						if( newBottomIndex < currentBottomIndex )
-							DestroyLogItemsBetweenIndices( newBottomIndex + 1, currentBottomIndex );
-
-						if( newTopIndex < currentTopIndex )
-						{
-							CreateLogItemsBetweenIndices( newTopIndex, currentTopIndex - 1 );
-
-							// If it is not necessary to update all the log items,
-							// then just update the newly created log items. Otherwise,
-							// wait for the major update
-							if( !updateAllVisibleItemContents )
-								UpdateLogItemContentsBetweenIndices( newTopIndex, currentTopIndex - 1 );
-						}
-
-						if( newBottomIndex > currentBottomIndex )
-						{
-							CreateLogItemsBetweenIndices( currentBottomIndex + 1, newBottomIndex );
-
-							// If it is not necessary to update all the log items,
-							// then just update the newly created log items. Otherwise,
-							// wait for the major update
-							if( !updateAllVisibleItemContents )
-								UpdateLogItemContentsBetweenIndices( currentBottomIndex + 1, newBottomIndex );
-						}
-					}
-
-					currentTopIndex = newTopIndex;
-					currentBottomIndex = newBottomIndex;
-				}
-
-				if( updateAllVisibleItemContents )
-				{
-					// Update all the log items
-					UpdateLogItemContentsBetweenIndices( currentTopIndex, currentBottomIndex );
-				}
-			}
-			else
-				HardResetItems();
-		}
-
-		private void CreateLogItemsBetweenIndices( int topIndex, int bottomIndex )
-		{
-			for( int i = topIndex; i <= bottomIndex; i++ )
-				CreateLogItemAtIndex( i );
-		}
-
-		// Create (or unpool) a log item
-		private void CreateLogItemAtIndex( int index )
-		{
-			DebugLogItem logItem = debugManager.PopLogItem();
-
-			// Reposition the log item
-			Vector2 anchoredPosition = new Vector2( 1f, -index * logItemHeight );
-			if( index > indexOfSelectedLogEntry )
-				anchoredPosition.y -= deltaHeightOfSelectedLogEntry;
-
-			logItem.Transform.anchoredPosition = anchoredPosition;
-
-			// Color the log item
-			ColorLogItem( logItem, index );
-
-			// To access this log item easily in the future, add it to the dictionary
-			logItemsAtIndices[index] = logItem;
-		}
-
-		private void DestroyLogItemsBetweenIndices( int topIndex, int bottomIndex )
-		{
-			for( int i = topIndex; i <= bottomIndex; i++ )
-				debugManager.PoolLogItem( logItemsAtIndices[i] );
-		}
-
-		private void UpdateLogItemContentsBetweenIndices( int topIndex, int bottomIndex )
-		{
-			DebugLogItem logItem;
-			for( int i = topIndex; i <= bottomIndex; i++ )
-			{
-				logItem = logItemsAtIndices[i];
-				logItem.SetContent( collapsedLogEntries[indicesOfEntriesToShow[i]], i, i == indexOfSelectedLogEntry );
-
-				if( isCollapseOn )
-					logItem.ShowCount();
-				else
-					logItem.HideCount();
-			}
-		}
-
-		// Color a log item using its index
-		private void ColorLogItem( DebugLogItem logItem, int index )
-		{
-			if( index == indexOfSelectedLogEntry )
-				logItem.Image.color = logItemSelectedColor;
-			else if( index % 2 == 0 )
-				logItem.Image.color = logItemNormalColor1;
-			else
-				logItem.Image.color = logItemNormalColor2;
-		}
-	}
-}

+ 0 - 12
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/DebugLogRecycledListView.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: ce231987d32488f43b6fb798f7df43f6
-timeCreated: 1466373025
-licenseType: Store
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 60
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/DebugsOnScrollListener.cs

@@ -1,60 +0,0 @@
-using UnityEngine;
-using UnityEngine.UI;
-using UnityEngine.EventSystems;
-
-// Listens to scroll events on the scroll rect that debug items are stored
-// and decides whether snap to bottom should be true or not
-// 
-// Procedure: if, after a user input (drag or scroll), scrollbar is at the bottom, then 
-// snap to bottom shall be true, otherwise it shall be false
-namespace IngameDebugConsole
-{
-	public class DebugsOnScrollListener : MonoBehaviour, IScrollHandler, IBeginDragHandler, IEndDragHandler
-	{
-		public ScrollRect debugsScrollRect;
-		public DebugLogManager debugLogManager;
-
-		public void OnScroll( PointerEventData data )
-		{
-			if( IsScrollbarAtBottom() )
-				debugLogManager.SetSnapToBottom( true );
-			else
-				debugLogManager.SetSnapToBottom( false );
-		}
-
-		public void OnBeginDrag( PointerEventData data )
-		{
-			debugLogManager.SetSnapToBottom( false );
-		}
-
-		public void OnEndDrag( PointerEventData data )
-		{
-			if( IsScrollbarAtBottom() )
-				debugLogManager.SetSnapToBottom( true );
-			else
-				debugLogManager.SetSnapToBottom( false );
-		}
-
-		public void OnScrollbarDragStart( BaseEventData data )
-		{
-			debugLogManager.SetSnapToBottom( false );
-		}
-
-		public void OnScrollbarDragEnd( BaseEventData data )
-		{
-			if( IsScrollbarAtBottom() )
-				debugLogManager.SetSnapToBottom( true );
-			else
-				debugLogManager.SetSnapToBottom( false );
-		}
-
-		private bool IsScrollbarAtBottom()
-		{
-			float scrollbarYPos = debugsScrollRect.verticalNormalizedPosition;
-			if( scrollbarYPos <= 1E-6f )
-				return true;
-
-			return false;
-		}
-	}
-}

+ 0 - 12
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Scripts/DebugsOnScrollListener.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: cb564dcb180e586429c57456166a76b5
-timeCreated: 1466004663
-licenseType: Store
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 9
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites.meta

@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: cb5d7b23a9e684a41a6a5d4f300eb1e6
-folderAsset: yes
-timeCreated: 1465925237
-licenseType: Store
-DefaultImporter:
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

BIN
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/IconClear.psd


BIN
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/IconCollapse.psd


+ 0 - 91
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/IconCollapse.psd.meta

@@ -1,91 +0,0 @@
-fileFormatVersion: 2
-guid: d1546f8db185caf4dafcfa58efa3ba2c
-TextureImporter:
-  internalIDToNameTable: []
-  externalObjects: {}
-  serializedVersion: 10
-  mipmaps:
-    mipMapMode: 0
-    enableMipMap: 0
-    sRGBTexture: 1
-    linearTexture: 0
-    fadeOut: 0
-    borderMipMap: 0
-    mipMapsPreserveCoverage: 0
-    alphaTestReferenceValue: 0.5
-    mipMapFadeDistanceStart: 1
-    mipMapFadeDistanceEnd: 3
-  bumpmap:
-    convertToNormalMap: 0
-    externalNormalMap: 0
-    heightScale: 0.25
-    normalMapFilter: 0
-  isReadable: 0
-  streamingMipmaps: 0
-  streamingMipmapsPriority: 0
-  grayScaleToAlpha: 0
-  generateCubemap: 6
-  cubemapConvolution: 0
-  seamlessCubemap: 0
-  textureFormat: 5
-  maxTextureSize: 32
-  textureSettings:
-    serializedVersion: 2
-    filterMode: 1
-    aniso: 16
-    mipBias: -100
-    wrapU: 1
-    wrapV: 1
-    wrapW: 1
-  nPOTScale: 0
-  lightmap: 0
-  compressionQuality: 50
-  spriteMode: 1
-  spriteExtrude: 1
-  spriteMeshType: 1
-  alignment: 0
-  spritePivot: {x: 0.5, y: 0.5}
-  spritePixelsToUnits: 100
-  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
-  spriteGenerateFallbackPhysicsShape: 1
-  alphaUsage: 1
-  alphaIsTransparency: 1
-  spriteTessellationDetail: -1
-  textureType: 8
-  textureShape: 1
-  singleChannelComponent: 0
-  maxTextureSizeSet: 0
-  compressionQualitySet: 0
-  textureFormatSet: 0
-  platformSettings:
-  - serializedVersion: 3
-    buildTarget: DefaultTexturePlatform
-    maxTextureSize: 32
-    resizeAlgorithm: 0
-    textureFormat: -1
-    textureCompression: 0
-    compressionQuality: 50
-    crunchedCompression: 0
-    allowsAlphaSplitting: 0
-    overridden: 0
-    androidETC2FallbackOverride: 0
-    forceMaximumCompressionQuality_BC6H_BC7: 0
-  spriteSheet:
-    serializedVersion: 2
-    sprites: []
-    outline: []
-    physicsShape: []
-    bones: []
-    spriteID: 5e97eb03825dee720800000000000000
-    internalID: 0
-    vertices: []
-    indices: 
-    edges: []
-    weights: []
-    secondaryTextures: []
-  spritePackingTag: DebugLogUI
-  pSDRemoveMatte: 1
-  pSDShowRemoveMatteOption: 1
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

BIN
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/IconError.psd


+ 0 - 91
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/IconError.psd.meta

@@ -1,91 +0,0 @@
-fileFormatVersion: 2
-guid: 66305a19e3614694f868c75a982e6b68
-TextureImporter:
-  internalIDToNameTable: []
-  externalObjects: {}
-  serializedVersion: 10
-  mipmaps:
-    mipMapMode: 0
-    enableMipMap: 0
-    sRGBTexture: 1
-    linearTexture: 0
-    fadeOut: 0
-    borderMipMap: 0
-    mipMapsPreserveCoverage: 0
-    alphaTestReferenceValue: 0.5
-    mipMapFadeDistanceStart: 1
-    mipMapFadeDistanceEnd: 3
-  bumpmap:
-    convertToNormalMap: 0
-    externalNormalMap: 0
-    heightScale: 0.25
-    normalMapFilter: 0
-  isReadable: 0
-  streamingMipmaps: 0
-  streamingMipmapsPriority: 0
-  grayScaleToAlpha: 0
-  generateCubemap: 6
-  cubemapConvolution: 0
-  seamlessCubemap: 0
-  textureFormat: 5
-  maxTextureSize: 32
-  textureSettings:
-    serializedVersion: 2
-    filterMode: 1
-    aniso: 16
-    mipBias: -100
-    wrapU: 1
-    wrapV: 1
-    wrapW: 1
-  nPOTScale: 0
-  lightmap: 0
-  compressionQuality: 50
-  spriteMode: 1
-  spriteExtrude: 1
-  spriteMeshType: 1
-  alignment: 0
-  spritePivot: {x: 0.5, y: 0.5}
-  spritePixelsToUnits: 100
-  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
-  spriteGenerateFallbackPhysicsShape: 1
-  alphaUsage: 1
-  alphaIsTransparency: 1
-  spriteTessellationDetail: -1
-  textureType: 8
-  textureShape: 1
-  singleChannelComponent: 0
-  maxTextureSizeSet: 0
-  compressionQualitySet: 0
-  textureFormatSet: 0
-  platformSettings:
-  - serializedVersion: 3
-    buildTarget: DefaultTexturePlatform
-    maxTextureSize: 32
-    resizeAlgorithm: 0
-    textureFormat: -1
-    textureCompression: 0
-    compressionQuality: 50
-    crunchedCompression: 0
-    allowsAlphaSplitting: 0
-    overridden: 0
-    androidETC2FallbackOverride: 0
-    forceMaximumCompressionQuality_BC6H_BC7: 0
-  spriteSheet:
-    serializedVersion: 2
-    sprites: []
-    outline: []
-    physicsShape: []
-    bones: []
-    spriteID: 5e97eb03825dee720800000000000000
-    internalID: 0
-    vertices: []
-    indices: 
-    edges: []
-    weights: []
-    secondaryTextures: []
-  spritePackingTag: DebugLogUI
-  pSDRemoveMatte: 1
-  pSDShowRemoveMatteOption: 1
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

BIN
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/IconHide.psd


BIN
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/IconInfo.psd


+ 0 - 91
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/IconInfo.psd.meta

@@ -1,91 +0,0 @@
-fileFormatVersion: 2
-guid: 5a97d5afa6254804f81b7ba956296996
-TextureImporter:
-  internalIDToNameTable: []
-  externalObjects: {}
-  serializedVersion: 10
-  mipmaps:
-    mipMapMode: 0
-    enableMipMap: 0
-    sRGBTexture: 1
-    linearTexture: 0
-    fadeOut: 0
-    borderMipMap: 0
-    mipMapsPreserveCoverage: 0
-    alphaTestReferenceValue: 0.5
-    mipMapFadeDistanceStart: 1
-    mipMapFadeDistanceEnd: 3
-  bumpmap:
-    convertToNormalMap: 0
-    externalNormalMap: 0
-    heightScale: 0.25
-    normalMapFilter: 0
-  isReadable: 0
-  streamingMipmaps: 0
-  streamingMipmapsPriority: 0
-  grayScaleToAlpha: 0
-  generateCubemap: 6
-  cubemapConvolution: 0
-  seamlessCubemap: 0
-  textureFormat: 5
-  maxTextureSize: 32
-  textureSettings:
-    serializedVersion: 2
-    filterMode: 1
-    aniso: 16
-    mipBias: -100
-    wrapU: 1
-    wrapV: 1
-    wrapW: 1
-  nPOTScale: 0
-  lightmap: 0
-  compressionQuality: 50
-  spriteMode: 1
-  spriteExtrude: 1
-  spriteMeshType: 1
-  alignment: 0
-  spritePivot: {x: 0.5, y: 0.5}
-  spritePixelsToUnits: 100
-  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
-  spriteGenerateFallbackPhysicsShape: 1
-  alphaUsage: 1
-  alphaIsTransparency: 1
-  spriteTessellationDetail: -1
-  textureType: 8
-  textureShape: 1
-  singleChannelComponent: 0
-  maxTextureSizeSet: 0
-  compressionQualitySet: 0
-  textureFormatSet: 0
-  platformSettings:
-  - serializedVersion: 3
-    buildTarget: DefaultTexturePlatform
-    maxTextureSize: 32
-    resizeAlgorithm: 0
-    textureFormat: -1
-    textureCompression: 0
-    compressionQuality: 50
-    crunchedCompression: 0
-    allowsAlphaSplitting: 0
-    overridden: 0
-    androidETC2FallbackOverride: 0
-    forceMaximumCompressionQuality_BC6H_BC7: 0
-  spriteSheet:
-    serializedVersion: 2
-    sprites: []
-    outline: []
-    physicsShape: []
-    bones: []
-    spriteID: 5e97eb03825dee720800000000000000
-    internalID: 0
-    vertices: []
-    indices: 
-    edges: []
-    weights: []
-    secondaryTextures: []
-  spritePackingTag: DebugLogUI
-  pSDRemoveMatte: 1
-  pSDShowRemoveMatteOption: 1
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

BIN
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/IconResize.psd


+ 0 - 91
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/IconResize.psd.meta

@@ -1,91 +0,0 @@
-fileFormatVersion: 2
-guid: a9fd8f6b461461f4a92eafc60921ee78
-TextureImporter:
-  internalIDToNameTable: []
-  externalObjects: {}
-  serializedVersion: 10
-  mipmaps:
-    mipMapMode: 0
-    enableMipMap: 0
-    sRGBTexture: 1
-    linearTexture: 0
-    fadeOut: 0
-    borderMipMap: 0
-    mipMapsPreserveCoverage: 0
-    alphaTestReferenceValue: 0.5
-    mipMapFadeDistanceStart: 1
-    mipMapFadeDistanceEnd: 3
-  bumpmap:
-    convertToNormalMap: 0
-    externalNormalMap: 0
-    heightScale: 0.25
-    normalMapFilter: 0
-  isReadable: 0
-  streamingMipmaps: 0
-  streamingMipmapsPriority: 0
-  grayScaleToAlpha: 0
-  generateCubemap: 6
-  cubemapConvolution: 0
-  seamlessCubemap: 0
-  textureFormat: 5
-  maxTextureSize: 32
-  textureSettings:
-    serializedVersion: 2
-    filterMode: 1
-    aniso: 16
-    mipBias: -100
-    wrapU: 1
-    wrapV: 1
-    wrapW: 1
-  nPOTScale: 0
-  lightmap: 0
-  compressionQuality: 50
-  spriteMode: 1
-  spriteExtrude: 1
-  spriteMeshType: 1
-  alignment: 0
-  spritePivot: {x: 0.5, y: 0.5}
-  spritePixelsToUnits: 100
-  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
-  spriteGenerateFallbackPhysicsShape: 1
-  alphaUsage: 1
-  alphaIsTransparency: 1
-  spriteTessellationDetail: -1
-  textureType: 8
-  textureShape: 1
-  singleChannelComponent: 0
-  maxTextureSizeSet: 0
-  compressionQualitySet: 0
-  textureFormatSet: 0
-  platformSettings:
-  - serializedVersion: 3
-    buildTarget: DefaultTexturePlatform
-    maxTextureSize: 32
-    resizeAlgorithm: 0
-    textureFormat: -1
-    textureCompression: 0
-    compressionQuality: 50
-    crunchedCompression: 0
-    allowsAlphaSplitting: 0
-    overridden: 0
-    androidETC2FallbackOverride: 0
-    forceMaximumCompressionQuality_BC6H_BC7: 0
-  spriteSheet:
-    serializedVersion: 2
-    sprites: []
-    outline: []
-    physicsShape: []
-    bones: []
-    spriteID: 5e97eb03825dee720800000000000000
-    internalID: 0
-    vertices: []
-    indices: 
-    edges: []
-    weights: []
-    secondaryTextures: []
-  spritePackingTag: DebugLogUI
-  pSDRemoveMatte: 1
-  pSDShowRemoveMatteOption: 1
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

BIN
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/IconSnapToBottom.psd


+ 0 - 91
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/IconSnapToBottom.psd.meta

@@ -1,91 +0,0 @@
-fileFormatVersion: 2
-guid: 066c0b04be98cd348abb79add91d42bf
-TextureImporter:
-  internalIDToNameTable: []
-  externalObjects: {}
-  serializedVersion: 10
-  mipmaps:
-    mipMapMode: 0
-    enableMipMap: 0
-    sRGBTexture: 1
-    linearTexture: 0
-    fadeOut: 0
-    borderMipMap: 0
-    mipMapsPreserveCoverage: 0
-    alphaTestReferenceValue: 0.5
-    mipMapFadeDistanceStart: 1
-    mipMapFadeDistanceEnd: 3
-  bumpmap:
-    convertToNormalMap: 0
-    externalNormalMap: 0
-    heightScale: 0.25
-    normalMapFilter: 0
-  isReadable: 0
-  streamingMipmaps: 0
-  streamingMipmapsPriority: 0
-  grayScaleToAlpha: 0
-  generateCubemap: 6
-  cubemapConvolution: 0
-  seamlessCubemap: 0
-  textureFormat: 5
-  maxTextureSize: 32
-  textureSettings:
-    serializedVersion: 2
-    filterMode: 1
-    aniso: 16
-    mipBias: -100
-    wrapU: 1
-    wrapV: 1
-    wrapW: 1
-  nPOTScale: 0
-  lightmap: 0
-  compressionQuality: 50
-  spriteMode: 1
-  spriteExtrude: 1
-  spriteMeshType: 1
-  alignment: 0
-  spritePivot: {x: 0.5, y: 0.5}
-  spritePixelsToUnits: 100
-  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
-  spriteGenerateFallbackPhysicsShape: 1
-  alphaUsage: 1
-  alphaIsTransparency: 1
-  spriteTessellationDetail: -1
-  textureType: 8
-  textureShape: 1
-  singleChannelComponent: 0
-  maxTextureSizeSet: 0
-  compressionQualitySet: 0
-  textureFormatSet: 0
-  platformSettings:
-  - serializedVersion: 3
-    buildTarget: DefaultTexturePlatform
-    maxTextureSize: 32
-    resizeAlgorithm: 0
-    textureFormat: -1
-    textureCompression: 0
-    compressionQuality: 50
-    crunchedCompression: 0
-    allowsAlphaSplitting: 0
-    overridden: 0
-    androidETC2FallbackOverride: 0
-    forceMaximumCompressionQuality_BC6H_BC7: 0
-  spriteSheet:
-    serializedVersion: 2
-    sprites: []
-    outline: []
-    physicsShape: []
-    bones: []
-    spriteID: 5e97eb03825dee720800000000000000
-    internalID: 0
-    vertices: []
-    indices: 
-    edges: []
-    weights: []
-    secondaryTextures: []
-  spritePackingTag: DebugLogUI
-  pSDRemoveMatte: 1
-  pSDShowRemoveMatteOption: 1
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

BIN
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/IconSnapToBottomBg.psd


+ 0 - 91
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/IconSnapToBottomBg.psd.meta

@@ -1,91 +0,0 @@
-fileFormatVersion: 2
-guid: b902f763d0e47364dae25207b7e47800
-TextureImporter:
-  internalIDToNameTable: []
-  externalObjects: {}
-  serializedVersion: 10
-  mipmaps:
-    mipMapMode: 0
-    enableMipMap: 0
-    sRGBTexture: 1
-    linearTexture: 0
-    fadeOut: 0
-    borderMipMap: 0
-    mipMapsPreserveCoverage: 0
-    alphaTestReferenceValue: 0.5
-    mipMapFadeDistanceStart: 1
-    mipMapFadeDistanceEnd: 3
-  bumpmap:
-    convertToNormalMap: 0
-    externalNormalMap: 0
-    heightScale: 0.25
-    normalMapFilter: 0
-  isReadable: 0
-  streamingMipmaps: 0
-  streamingMipmapsPriority: 0
-  grayScaleToAlpha: 0
-  generateCubemap: 6
-  cubemapConvolution: 0
-  seamlessCubemap: 0
-  textureFormat: 5
-  maxTextureSize: 32
-  textureSettings:
-    serializedVersion: 2
-    filterMode: 1
-    aniso: -1
-    mipBias: -100
-    wrapU: 1
-    wrapV: 1
-    wrapW: 1
-  nPOTScale: 0
-  lightmap: 0
-  compressionQuality: 50
-  spriteMode: 1
-  spriteExtrude: 1
-  spriteMeshType: 1
-  alignment: 0
-  spritePivot: {x: 0.5, y: 0.5}
-  spritePixelsToUnits: 100
-  spriteBorder: {x: 13, y: 13, z: 13, w: 13}
-  spriteGenerateFallbackPhysicsShape: 1
-  alphaUsage: 1
-  alphaIsTransparency: 1
-  spriteTessellationDetail: -1
-  textureType: 8
-  textureShape: 1
-  singleChannelComponent: 0
-  maxTextureSizeSet: 0
-  compressionQualitySet: 0
-  textureFormatSet: 0
-  platformSettings:
-  - serializedVersion: 3
-    buildTarget: DefaultTexturePlatform
-    maxTextureSize: 32
-    resizeAlgorithm: 0
-    textureFormat: -1
-    textureCompression: 0
-    compressionQuality: 50
-    crunchedCompression: 0
-    allowsAlphaSplitting: 0
-    overridden: 0
-    androidETC2FallbackOverride: 0
-    forceMaximumCompressionQuality_BC6H_BC7: 0
-  spriteSheet:
-    serializedVersion: 2
-    sprites: []
-    outline: []
-    physicsShape: []
-    bones: []
-    spriteID: 5e97eb03825dee720800000000000000
-    internalID: 0
-    vertices: []
-    indices: 
-    edges: []
-    weights: []
-    secondaryTextures: []
-  spritePackingTag: DebugLogUI
-  pSDRemoveMatte: 1
-  pSDShowRemoveMatteOption: 1
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

BIN
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/IconWarning.psd


+ 0 - 91
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/IconWarning.psd.meta

@@ -1,91 +0,0 @@
-fileFormatVersion: 2
-guid: 05c7216c78d4dd34ebe2bac9c1e274d7
-TextureImporter:
-  internalIDToNameTable: []
-  externalObjects: {}
-  serializedVersion: 10
-  mipmaps:
-    mipMapMode: 0
-    enableMipMap: 0
-    sRGBTexture: 1
-    linearTexture: 0
-    fadeOut: 0
-    borderMipMap: 0
-    mipMapsPreserveCoverage: 0
-    alphaTestReferenceValue: 0.5
-    mipMapFadeDistanceStart: 1
-    mipMapFadeDistanceEnd: 3
-  bumpmap:
-    convertToNormalMap: 0
-    externalNormalMap: 0
-    heightScale: 0.25
-    normalMapFilter: 0
-  isReadable: 0
-  streamingMipmaps: 0
-  streamingMipmapsPriority: 0
-  grayScaleToAlpha: 0
-  generateCubemap: 6
-  cubemapConvolution: 0
-  seamlessCubemap: 0
-  textureFormat: 5
-  maxTextureSize: 32
-  textureSettings:
-    serializedVersion: 2
-    filterMode: 1
-    aniso: 16
-    mipBias: -100
-    wrapU: 1
-    wrapV: 1
-    wrapW: 1
-  nPOTScale: 0
-  lightmap: 0
-  compressionQuality: 50
-  spriteMode: 1
-  spriteExtrude: 1
-  spriteMeshType: 1
-  alignment: 0
-  spritePivot: {x: 0.5, y: 0.5}
-  spritePixelsToUnits: 100
-  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
-  spriteGenerateFallbackPhysicsShape: 1
-  alphaUsage: 1
-  alphaIsTransparency: 1
-  spriteTessellationDetail: -1
-  textureType: 8
-  textureShape: 1
-  singleChannelComponent: 0
-  maxTextureSizeSet: 0
-  compressionQualitySet: 0
-  textureFormatSet: 0
-  platformSettings:
-  - serializedVersion: 3
-    buildTarget: DefaultTexturePlatform
-    maxTextureSize: 32
-    resizeAlgorithm: 0
-    textureFormat: -1
-    textureCompression: 0
-    compressionQuality: 50
-    crunchedCompression: 0
-    allowsAlphaSplitting: 0
-    overridden: 0
-    androidETC2FallbackOverride: 0
-    forceMaximumCompressionQuality_BC6H_BC7: 0
-  spriteSheet:
-    serializedVersion: 2
-    sprites: []
-    outline: []
-    physicsShape: []
-    bones: []
-    spriteID: 5e97eb03825dee720800000000000000
-    internalID: 0
-    vertices: []
-    indices: 
-    edges: []
-    weights: []
-    secondaryTextures: []
-  spritePackingTag: DebugLogUI
-  pSDRemoveMatte: 1
-  pSDShowRemoveMatteOption: 1
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

BIN
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/SlicedBackground.psd


BIN
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/SlicedBackground2.psd


+ 0 - 91
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/SlicedBackground2.psd.meta

@@ -1,91 +0,0 @@
-fileFormatVersion: 2
-guid: 98e8e1cf8dc7dbf469617c2e40c8a944
-TextureImporter:
-  internalIDToNameTable: []
-  externalObjects: {}
-  serializedVersion: 10
-  mipmaps:
-    mipMapMode: 0
-    enableMipMap: 0
-    sRGBTexture: 1
-    linearTexture: 0
-    fadeOut: 0
-    borderMipMap: 0
-    mipMapsPreserveCoverage: 0
-    alphaTestReferenceValue: 0.5
-    mipMapFadeDistanceStart: 1
-    mipMapFadeDistanceEnd: 3
-  bumpmap:
-    convertToNormalMap: 0
-    externalNormalMap: 0
-    heightScale: 0.25
-    normalMapFilter: 0
-  isReadable: 0
-  streamingMipmaps: 0
-  streamingMipmapsPriority: 0
-  grayScaleToAlpha: 0
-  generateCubemap: 6
-  cubemapConvolution: 0
-  seamlessCubemap: 0
-  textureFormat: 5
-  maxTextureSize: 32
-  textureSettings:
-    serializedVersion: 2
-    filterMode: 1
-    aniso: -1
-    mipBias: -100
-    wrapU: 1
-    wrapV: 1
-    wrapW: 1
-  nPOTScale: 0
-  lightmap: 0
-  compressionQuality: 50
-  spriteMode: 1
-  spriteExtrude: 1
-  spriteMeshType: 1
-  alignment: 0
-  spritePivot: {x: 0.5, y: 0.5}
-  spritePixelsToUnits: 100
-  spriteBorder: {x: 12, y: 12, z: 12, w: 12}
-  spriteGenerateFallbackPhysicsShape: 1
-  alphaUsage: 1
-  alphaIsTransparency: 1
-  spriteTessellationDetail: -1
-  textureType: 8
-  textureShape: 1
-  singleChannelComponent: 0
-  maxTextureSizeSet: 0
-  compressionQualitySet: 0
-  textureFormatSet: 0
-  platformSettings:
-  - serializedVersion: 3
-    buildTarget: DefaultTexturePlatform
-    maxTextureSize: 32
-    resizeAlgorithm: 0
-    textureFormat: -1
-    textureCompression: 0
-    compressionQuality: 50
-    crunchedCompression: 0
-    allowsAlphaSplitting: 0
-    overridden: 0
-    androidETC2FallbackOverride: 0
-    forceMaximumCompressionQuality_BC6H_BC7: 0
-  spriteSheet:
-    serializedVersion: 2
-    sprites: []
-    outline: []
-    physicsShape: []
-    bones: []
-    spriteID: 5e97eb03825dee720800000000000000
-    internalID: 0
-    vertices: []
-    indices: 
-    edges: []
-    weights: []
-    secondaryTextures: []
-  spritePackingTag: DebugLogUI
-  pSDRemoveMatte: 1
-  pSDShowRemoveMatteOption: 1
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

BIN
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/SlicedBackground3.psd


+ 0 - 91
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/SlicedBackground3.psd.meta

@@ -1,91 +0,0 @@
-fileFormatVersion: 2
-guid: b3f0d976f6d6802479d6465d11b3aa68
-TextureImporter:
-  internalIDToNameTable: []
-  externalObjects: {}
-  serializedVersion: 10
-  mipmaps:
-    mipMapMode: 0
-    enableMipMap: 0
-    sRGBTexture: 1
-    linearTexture: 0
-    fadeOut: 0
-    borderMipMap: 0
-    mipMapsPreserveCoverage: 0
-    alphaTestReferenceValue: 0.5
-    mipMapFadeDistanceStart: 1
-    mipMapFadeDistanceEnd: 3
-  bumpmap:
-    convertToNormalMap: 0
-    externalNormalMap: 0
-    heightScale: 0.25
-    normalMapFilter: 0
-  isReadable: 0
-  streamingMipmaps: 0
-  streamingMipmapsPriority: 0
-  grayScaleToAlpha: 0
-  generateCubemap: 6
-  cubemapConvolution: 0
-  seamlessCubemap: 0
-  textureFormat: 5
-  maxTextureSize: 32
-  textureSettings:
-    serializedVersion: 2
-    filterMode: 1
-    aniso: -1
-    mipBias: -100
-    wrapU: 1
-    wrapV: 1
-    wrapW: 1
-  nPOTScale: 0
-  lightmap: 0
-  compressionQuality: 50
-  spriteMode: 1
-  spriteExtrude: 1
-  spriteMeshType: 1
-  alignment: 0
-  spritePivot: {x: 0.5, y: 0.5}
-  spritePixelsToUnits: 100
-  spriteBorder: {x: 13, y: 13, z: 13, w: 13}
-  spriteGenerateFallbackPhysicsShape: 1
-  alphaUsage: 1
-  alphaIsTransparency: 1
-  spriteTessellationDetail: -1
-  textureType: 8
-  textureShape: 1
-  singleChannelComponent: 0
-  maxTextureSizeSet: 0
-  compressionQualitySet: 0
-  textureFormatSet: 0
-  platformSettings:
-  - serializedVersion: 3
-    buildTarget: DefaultTexturePlatform
-    maxTextureSize: 32
-    resizeAlgorithm: 0
-    textureFormat: -1
-    textureCompression: 0
-    compressionQuality: 50
-    crunchedCompression: 0
-    allowsAlphaSplitting: 0
-    overridden: 0
-    androidETC2FallbackOverride: 0
-    forceMaximumCompressionQuality_BC6H_BC7: 0
-  spriteSheet:
-    serializedVersion: 2
-    sprites: []
-    outline: []
-    physicsShape: []
-    bones: []
-    spriteID: 5e97eb03825dee720800000000000000
-    internalID: 0
-    vertices: []
-    indices: 
-    edges: []
-    weights: []
-    secondaryTextures: []
-  spritePackingTag: DebugLogUI
-  pSDRemoveMatte: 1
-  pSDShowRemoveMatteOption: 1
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 9
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/Unused.meta

@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: f6caae32d463529478f2186f47c2e3fe
-folderAsset: yes
-timeCreated: 1466010601
-licenseType: Store
-DefaultImporter:
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

BIN
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/Unused/IconErrorHighRes.psd


BIN
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/Unused/IconInfoHighRes.psd


BIN
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Sprites/Unused/IconWarningHighRes.psd


+ 169 - 101
Samples~/ShadowCreator/Resources/Prefabs/ShadowSystem.prefab

@@ -18,7 +18,7 @@ GameObject:
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
-  m_IsActive: 1
+  m_IsActive: 0
 --- !u!4 &3230918514520133322
 Transform:
   m_ObjectHideFlags: 0
@@ -29,6 +29,7 @@ Transform:
   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_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 7301597434508464938}
   m_RootOrder: 3
@@ -98,6 +99,7 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   m_TrackingType: 0
   m_UpdateType: 0
+  m_IgnoreTrackingState: 0
   m_PositionInput:
     m_UseReference: 0
     m_Action:
@@ -138,6 +140,18 @@ MonoBehaviour:
         m_Flags: 0
       m_Flags: 0
     m_Reference: {fileID: 0}
+  m_TrackingStateInput:
+    m_UseReference: 0
+    m_Action:
+      m_Name: 
+      m_Type: 0
+      m_ExpectedControlType: 
+      m_Id: 5f11de59-26c6-4667-83f4-0d7570b866ff
+      m_Processors: 
+      m_Interactions: 
+      m_SingletonActionBindings: []
+      m_Flags: 0
+    m_Reference: {fileID: 0}
   m_PositionAction:
     m_Name: 
     m_Type: 0
@@ -156,7 +170,6 @@ MonoBehaviour:
     m_Interactions: 
     m_SingletonActionBindings: []
     m_Flags: 0
-  m_HasMigratedActions: 1
 --- !u!1 &7296445313094666710
 GameObject:
   m_ObjectHideFlags: 0
@@ -167,7 +180,7 @@ GameObject:
   m_Component:
   - component: {fileID: 7301597434508464938}
   - component: {fileID: 7296445313094666697}
-  - component: {fileID: 1739451442}
+  - component: {fileID: 2030627641}
   m_Layer: 0
   m_Name: ShadowSystem
   m_TagString: Untagged
@@ -185,11 +198,13 @@ Transform:
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 1, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children:
   - {fileID: 9177743640013346631}
   - {fileID: 3801916658613026777}
   - {fileID: 6600063375118952511}
   - {fileID: 3230918514520133322}
+  - {fileID: 456639847795227736}
   m_Father: {fileID: 0}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -207,7 +222,7 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   isBackKeyQuit: 1
   isLogShow: 0
---- !u!114 &1739451442
+--- !u!114 &2030627641
 MonoBehaviour:
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
@@ -216,10 +231,77 @@ MonoBehaviour:
   m_GameObject: {fileID: 7296445313094666710}
   m_Enabled: 1
   m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: bba5da9dac63dbc4e814f01a424b0e49, type: 3}
+  m_Script: {fileID: 11500000, guid: 3399be2e2d1f3384ba139ce00a0d01dd, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
   speed: 0.4
+--- !u!1001 &268286119
+PrefabInstance:
+  m_ObjectHideFlags: 0
+  serializedVersion: 2
+  m_Modification:
+    m_TransformParent: {fileID: 7301597434508464938}
+    m_Modifications:
+    - target: {fileID: 456639847589922047, guid: c08405fbe85658c4b8ed7b2ae7e496c3, type: 3}
+      propertyPath: m_RootOrder
+      value: 4
+      objectReference: {fileID: 0}
+    - target: {fileID: 456639847589922047, guid: c08405fbe85658c4b8ed7b2ae7e496c3, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 456639847589922047, guid: c08405fbe85658c4b8ed7b2ae7e496c3, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 456639847589922047, guid: c08405fbe85658c4b8ed7b2ae7e496c3, type: 3}
+      propertyPath: m_LocalPosition.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 456639847589922047, guid: c08405fbe85658c4b8ed7b2ae7e496c3, type: 3}
+      propertyPath: m_LocalRotation.w
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 456639847589922047, guid: c08405fbe85658c4b8ed7b2ae7e496c3, type: 3}
+      propertyPath: m_LocalRotation.x
+      value: -0
+      objectReference: {fileID: 0}
+    - target: {fileID: 456639847589922047, guid: c08405fbe85658c4b8ed7b2ae7e496c3, type: 3}
+      propertyPath: m_LocalRotation.y
+      value: -0
+      objectReference: {fileID: 0}
+    - target: {fileID: 456639847589922047, guid: c08405fbe85658c4b8ed7b2ae7e496c3, type: 3}
+      propertyPath: m_LocalRotation.z
+      value: -0
+      objectReference: {fileID: 0}
+    - target: {fileID: 456639847589922047, guid: c08405fbe85658c4b8ed7b2ae7e496c3, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 456639847589922047, guid: c08405fbe85658c4b8ed7b2ae7e496c3, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 456639847589922047, guid: c08405fbe85658c4b8ed7b2ae7e496c3, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8166778813318336035, guid: c08405fbe85658c4b8ed7b2ae7e496c3, type: 3}
+      propertyPath: m_Name
+      value: GxrToolkit
+      objectReference: {fileID: 0}
+    m_RemovedComponents: []
+  m_SourcePrefab: {fileID: 100100000, guid: c08405fbe85658c4b8ed7b2ae7e496c3, type: 3}
+--- !u!1 &277139651631741563 stripped
+GameObject:
+  m_CorrespondingSourceObject: {fileID: 277139651608888028, guid: c08405fbe85658c4b8ed7b2ae7e496c3, type: 3}
+  m_PrefabInstance: {fileID: 268286119}
+  m_PrefabAsset: {fileID: 0}
+--- !u!4 &456639847795227736 stripped
+Transform:
+  m_CorrespondingSourceObject: {fileID: 456639847589922047, guid: c08405fbe85658c4b8ed7b2ae7e496c3, type: 3}
+  m_PrefabInstance: {fileID: 268286119}
+  m_PrefabAsset: {fileID: 0}
 --- !u!1001 &3801916658612925637
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -313,58 +395,49 @@ PrefabInstance:
       objectReference: {fileID: 3784170382902231171}
     m_RemovedComponents: []
   m_SourcePrefab: {fileID: 100100000, guid: bd325c22da8fc39409d0549d8f9a749a, type: 3}
---- !u!4 &3801916658613026777 stripped
-Transform:
-  m_CorrespondingSourceObject: {fileID: 494364, guid: bd325c22da8fc39409d0549d8f9a749a,
-    type: 3}
+--- !u!20 &3784170368722662281 stripped
+Camera:
+  m_CorrespondingSourceObject: {fileID: 20000013883443020, guid: bd325c22da8fc39409d0549d8f9a749a, type: 3}
   m_PrefabInstance: {fileID: 3801916658612925637}
   m_PrefabAsset: {fileID: 0}
---- !u!4 &3801916658613029193 stripped
-Transform:
-  m_CorrespondingSourceObject: {fileID: 425356, guid: bd325c22da8fc39409d0549d8f9a749a,
-    type: 3}
+--- !u!20 &3784170380570354965 stripped
+Camera:
+  m_CorrespondingSourceObject: {fileID: 20000012778869200, guid: bd325c22da8fc39409d0549d8f9a749a, type: 3}
   m_PrefabInstance: {fileID: 3801916658612925637}
   m_PrefabAsset: {fileID: 0}
---- !u!20 &3801916658614541503 stripped
+--- !u!20 &3784170382639731949 stripped
 Camera:
-  m_CorrespondingSourceObject: {fileID: 2058362, guid: bd325c22da8fc39409d0549d8f9a749a,
-    type: 3}
+  m_CorrespondingSourceObject: {fileID: 20000010687537192, guid: bd325c22da8fc39409d0549d8f9a749a, type: 3}
   m_PrefabInstance: {fileID: 3801916658612925637}
   m_PrefabAsset: {fileID: 0}
---- !u!20 &3784170380570354965 stripped
+--- !u!20 &3784170382902231171 stripped
 Camera:
-  m_CorrespondingSourceObject: {fileID: 20000012778869200, guid: bd325c22da8fc39409d0549d8f9a749a,
-    type: 3}
+  m_CorrespondingSourceObject: {fileID: 20000010413438022, guid: bd325c22da8fc39409d0549d8f9a749a, type: 3}
   m_PrefabInstance: {fileID: 3801916658612925637}
   m_PrefabAsset: {fileID: 0}
---- !u!20 &3801916658614536619 stripped
-Camera:
-  m_CorrespondingSourceObject: {fileID: 2063726, guid: bd325c22da8fc39409d0549d8f9a749a,
-    type: 3}
+--- !u!4 &3801916658613026777 stripped
+Transform:
+  m_CorrespondingSourceObject: {fileID: 494364, guid: bd325c22da8fc39409d0549d8f9a749a, type: 3}
   m_PrefabInstance: {fileID: 3801916658612925637}
   m_PrefabAsset: {fileID: 0}
---- !u!20 &3784170382639731949 stripped
-Camera:
-  m_CorrespondingSourceObject: {fileID: 20000010687537192, guid: bd325c22da8fc39409d0549d8f9a749a,
-    type: 3}
+--- !u!4 &3801916658613029193 stripped
+Transform:
+  m_CorrespondingSourceObject: {fileID: 425356, guid: bd325c22da8fc39409d0549d8f9a749a, type: 3}
   m_PrefabInstance: {fileID: 3801916658612925637}
   m_PrefabAsset: {fileID: 0}
---- !u!20 &3784170368722662281 stripped
+--- !u!20 &3801916658614536619 stripped
 Camera:
-  m_CorrespondingSourceObject: {fileID: 20000013883443020, guid: bd325c22da8fc39409d0549d8f9a749a,
-    type: 3}
+  m_CorrespondingSourceObject: {fileID: 2063726, guid: bd325c22da8fc39409d0549d8f9a749a, type: 3}
   m_PrefabInstance: {fileID: 3801916658612925637}
   m_PrefabAsset: {fileID: 0}
---- !u!20 &3784170382902231171 stripped
+--- !u!20 &3801916658614541503 stripped
 Camera:
-  m_CorrespondingSourceObject: {fileID: 20000010413438022, guid: bd325c22da8fc39409d0549d8f9a749a,
-    type: 3}
+  m_CorrespondingSourceObject: {fileID: 2058362, guid: bd325c22da8fc39409d0549d8f9a749a, type: 3}
   m_PrefabInstance: {fileID: 3801916658612925637}
   m_PrefabAsset: {fileID: 0}
 --- !u!114 &3801916659437171352 stripped
 MonoBehaviour:
-  m_CorrespondingSourceObject: {fileID: 1361512029, guid: bd325c22da8fc39409d0549d8f9a749a,
-    type: 3}
+  m_CorrespondingSourceObject: {fileID: 1361512029, guid: bd325c22da8fc39409d0549d8f9a749a, type: 3}
   m_PrefabInstance: {fileID: 3801916658612925637}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 0}
@@ -375,8 +448,7 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
 --- !u!4 &3804744484997115567 stripped
 Transform:
-  m_CorrespondingSourceObject: {fileID: 4000014160517738, guid: bd325c22da8fc39409d0549d8f9a749a,
-    type: 3}
+  m_CorrespondingSourceObject: {fileID: 4000014160517738, guid: bd325c22da8fc39409d0549d8f9a749a, type: 3}
   m_PrefabInstance: {fileID: 3801916658612925637}
   m_PrefabAsset: {fileID: 0}
 --- !u!1001 &8112617911465340184
@@ -386,68 +458,79 @@ PrefabInstance:
   m_Modification:
     m_TransformParent: {fileID: 7301597434508464938}
     m_Modifications:
-    - target: {fileID: 2479493481492936114, guid: f6f0cec37db949f47ab02b2550ea1477,
-        type: 3}
+    - target: {fileID: 61730981, guid: f6f0cec37db949f47ab02b2550ea1477, type: 3}
+      propertyPath: head
+      value: 
+      objectReference: {fileID: 277139651631741563}
+    - target: {fileID: 61730981, guid: f6f0cec37db949f47ab02b2550ea1477, type: 3}
+      propertyPath: listinput.Array.size
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 61730981, guid: f6f0cec37db949f47ab02b2550ea1477, type: 3}
+      propertyPath: listtrack.Array.size
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 319909618, guid: f6f0cec37db949f47ab02b2550ea1477, type: 3}
+      propertyPath: head
+      value: 
+      objectReference: {fileID: 277139651631741563}
+    - target: {fileID: 319909618, guid: f6f0cec37db949f47ab02b2550ea1477, type: 3}
+      propertyPath: listinput.Array.size
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 319909618, guid: f6f0cec37db949f47ab02b2550ea1477, type: 3}
+      propertyPath: listtrack.Array.size
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2479493481492936114, guid: f6f0cec37db949f47ab02b2550ea1477, type: 3}
       propertyPath: XRCamera
       value: 
       objectReference: {fileID: 1414503936990701671}
-    - target: {fileID: 3102397031694140709, guid: f6f0cec37db949f47ab02b2550ea1477,
-        type: 3}
+    - target: {fileID: 3102397031694140709, guid: f6f0cec37db949f47ab02b2550ea1477, type: 3}
       propertyPath: m_Name
       value: ControllerInputFromAction
       objectReference: {fileID: 0}
-    - target: {fileID: 3102397031694140711, guid: f6f0cec37db949f47ab02b2550ea1477,
-        type: 3}
+    - target: {fileID: 3102397031694140711, guid: f6f0cec37db949f47ab02b2550ea1477, type: 3}
       propertyPath: m_RootOrder
       value: 2
       objectReference: {fileID: 0}
-    - target: {fileID: 3102397031694140711, guid: f6f0cec37db949f47ab02b2550ea1477,
-        type: 3}
+    - target: {fileID: 3102397031694140711, guid: f6f0cec37db949f47ab02b2550ea1477, type: 3}
       propertyPath: m_LocalPosition.x
       value: 0.0285
       objectReference: {fileID: 0}
-    - target: {fileID: 3102397031694140711, guid: f6f0cec37db949f47ab02b2550ea1477,
-        type: 3}
+    - target: {fileID: 3102397031694140711, guid: f6f0cec37db949f47ab02b2550ea1477, type: 3}
       propertyPath: m_LocalPosition.y
       value: -0.007261719
       objectReference: {fileID: 0}
-    - target: {fileID: 3102397031694140711, guid: f6f0cec37db949f47ab02b2550ea1477,
-        type: 3}
+    - target: {fileID: 3102397031694140711, guid: f6f0cec37db949f47ab02b2550ea1477, type: 3}
       propertyPath: m_LocalPosition.z
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 3102397031694140711, guid: f6f0cec37db949f47ab02b2550ea1477,
-        type: 3}
+    - target: {fileID: 3102397031694140711, guid: f6f0cec37db949f47ab02b2550ea1477, type: 3}
       propertyPath: m_LocalRotation.w
       value: 1
       objectReference: {fileID: 0}
-    - target: {fileID: 3102397031694140711, guid: f6f0cec37db949f47ab02b2550ea1477,
-        type: 3}
+    - target: {fileID: 3102397031694140711, guid: f6f0cec37db949f47ab02b2550ea1477, type: 3}
       propertyPath: m_LocalRotation.x
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 3102397031694140711, guid: f6f0cec37db949f47ab02b2550ea1477,
-        type: 3}
+    - target: {fileID: 3102397031694140711, guid: f6f0cec37db949f47ab02b2550ea1477, type: 3}
       propertyPath: m_LocalRotation.y
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 3102397031694140711, guid: f6f0cec37db949f47ab02b2550ea1477,
-        type: 3}
+    - target: {fileID: 3102397031694140711, guid: f6f0cec37db949f47ab02b2550ea1477, type: 3}
       propertyPath: m_LocalRotation.z
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 3102397031694140711, guid: f6f0cec37db949f47ab02b2550ea1477,
-        type: 3}
+    - target: {fileID: 3102397031694140711, guid: f6f0cec37db949f47ab02b2550ea1477, type: 3}
       propertyPath: m_LocalEulerAnglesHint.x
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 3102397031694140711, guid: f6f0cec37db949f47ab02b2550ea1477,
-        type: 3}
+    - target: {fileID: 3102397031694140711, guid: f6f0cec37db949f47ab02b2550ea1477, type: 3}
       propertyPath: m_LocalEulerAnglesHint.y
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 3102397031694140711, guid: f6f0cec37db949f47ab02b2550ea1477,
-        type: 3}
+    - target: {fileID: 3102397031694140711, guid: f6f0cec37db949f47ab02b2550ea1477, type: 3}
       propertyPath: m_LocalEulerAnglesHint.z
       value: 0
       objectReference: {fileID: 0}
@@ -455,8 +538,7 @@ PrefabInstance:
   m_SourcePrefab: {fileID: 100100000, guid: f6f0cec37db949f47ab02b2550ea1477, type: 3}
 --- !u!4 &6600063375118952511 stripped
 Transform:
-  m_CorrespondingSourceObject: {fileID: 3102397031694140711, guid: f6f0cec37db949f47ab02b2550ea1477,
-    type: 3}
+  m_CorrespondingSourceObject: {fileID: 3102397031694140711, guid: f6f0cec37db949f47ab02b2550ea1477, type: 3}
   m_PrefabInstance: {fileID: 8112617911465340184}
   m_PrefabAsset: {fileID: 0}
 --- !u!1001 &9174711459668195897
@@ -514,88 +596,75 @@ PrefabInstance:
       propertyPath: m_LocalEulerAnglesHint.z
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 509666402926521100, guid: 8a55a63d5ba22ba4b9f4c524040d3a23,
-        type: 3}
+    - target: {fileID: 509666402926521100, guid: 8a55a63d5ba22ba4b9f4c524040d3a23, type: 3}
       propertyPath: m_Enabled
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 509666404141437477, guid: 8a55a63d5ba22ba4b9f4c524040d3a23,
-        type: 3}
+    - target: {fileID: 509666404141437477, guid: 8a55a63d5ba22ba4b9f4c524040d3a23, type: 3}
       propertyPath: m_Enabled
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 509666404232553596, guid: 8a55a63d5ba22ba4b9f4c524040d3a23,
-        type: 3}
+    - target: {fileID: 509666404232553596, guid: 8a55a63d5ba22ba4b9f4c524040d3a23, type: 3}
       propertyPath: m_Enabled
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 509666404333939006, guid: 8a55a63d5ba22ba4b9f4c524040d3a23,
-        type: 3}
+    - target: {fileID: 509666404333939006, guid: 8a55a63d5ba22ba4b9f4c524040d3a23, type: 3}
       propertyPath: m_Enabled
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 1184367492395586045, guid: 8a55a63d5ba22ba4b9f4c524040d3a23,
-        type: 3}
+    - target: {fileID: 1184367492395586045, guid: 8a55a63d5ba22ba4b9f4c524040d3a23, type: 3}
       propertyPath: m_Enabled
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 1184367492881895875, guid: 8a55a63d5ba22ba4b9f4c524040d3a23,
-        type: 3}
+    - target: {fileID: 1184367492881895875, guid: 8a55a63d5ba22ba4b9f4c524040d3a23, type: 3}
       propertyPath: OpenHead
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 1184367493046807598, guid: 8a55a63d5ba22ba4b9f4c524040d3a23,
-        type: 3}
+    - target: {fileID: 1184367493046807598, guid: 8a55a63d5ba22ba4b9f4c524040d3a23, type: 3}
       propertyPath: m_IsActive
       value: 1
       objectReference: {fileID: 0}
-    - target: {fileID: 1184367493194467186, guid: 8a55a63d5ba22ba4b9f4c524040d3a23,
-        type: 3}
+    - target: {fileID: 1184367493194467186, guid: 8a55a63d5ba22ba4b9f4c524040d3a23, type: 3}
       propertyPath: m_Enabled
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 1184367493263520665, guid: 8a55a63d5ba22ba4b9f4c524040d3a23,
-        type: 3}
+    - target: {fileID: 1184367493263520665, guid: 8a55a63d5ba22ba4b9f4c524040d3a23, type: 3}
       propertyPath: m_Enabled
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 1184367493385131891, guid: 8a55a63d5ba22ba4b9f4c524040d3a23,
-        type: 3}
+    - target: {fileID: 1184367493385131891, guid: 8a55a63d5ba22ba4b9f4c524040d3a23, type: 3}
       propertyPath: m_Enabled
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 1184367493570743244, guid: 8a55a63d5ba22ba4b9f4c524040d3a23,
-        type: 3}
+    - target: {fileID: 1184367493570743244, guid: 8a55a63d5ba22ba4b9f4c524040d3a23, type: 3}
       propertyPath: m_Enabled
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 1184367493831822405, guid: 8a55a63d5ba22ba4b9f4c524040d3a23,
-        type: 3}
+    - target: {fileID: 1184367493831822405, guid: 8a55a63d5ba22ba4b9f4c524040d3a23, type: 3}
       propertyPath: m_Enabled
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 1184367494012702962, guid: 8a55a63d5ba22ba4b9f4c524040d3a23,
-        type: 3}
+    - target: {fileID: 1184367494012702962, guid: 8a55a63d5ba22ba4b9f4c524040d3a23, type: 3}
       propertyPath: m_Enabled
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 8301030123369633330, guid: 8a55a63d5ba22ba4b9f4c524040d3a23,
-        type: 3}
+    - target: {fileID: 5206240714249327170, guid: 8a55a63d5ba22ba4b9f4c524040d3a23, type: 3}
+      propertyPath: iSEditorEnableHandShank
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 8301030123369633330, guid: 8a55a63d5ba22ba4b9f4c524040d3a23, type: 3}
       propertyPath: m_IsActive
       value: 1
       objectReference: {fileID: 0}
-    - target: {fileID: 8315031874513652850, guid: 8a55a63d5ba22ba4b9f4c524040d3a23,
-        type: 3}
+    - target: {fileID: 8315031874513652850, guid: 8a55a63d5ba22ba4b9f4c524040d3a23, type: 3}
       propertyPath: m_Enabled
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 8315203261187040688, guid: 8a55a63d5ba22ba4b9f4c524040d3a23,
-        type: 3}
+    - target: {fileID: 8315203261187040688, guid: 8a55a63d5ba22ba4b9f4c524040d3a23, type: 3}
       propertyPath: m_Enabled
       value: 0
       objectReference: {fileID: 0}
-    - target: {fileID: 8315270799511153818, guid: 8a55a63d5ba22ba4b9f4c524040d3a23,
-        type: 3}
+    - target: {fileID: 8315270799511153818, guid: 8a55a63d5ba22ba4b9f4c524040d3a23, type: 3}
       propertyPath: m_Enabled
       value: 0
       objectReference: {fileID: 0}
@@ -603,7 +672,6 @@ PrefabInstance:
   m_SourcePrefab: {fileID: 100100000, guid: 8a55a63d5ba22ba4b9f4c524040d3a23, type: 3}
 --- !u!4 &9177743640013346631 stripped
 Transform:
-  m_CorrespondingSourceObject: {fileID: 4215804616961406, guid: 8a55a63d5ba22ba4b9f4c524040d3a23,
-    type: 3}
+  m_CorrespondingSourceObject: {fileID: 4215804616961406, guid: 8a55a63d5ba22ba4b9f4c524040d3a23, type: 3}
   m_PrefabInstance: {fileID: 9174711459668195897}
   m_PrefabAsset: {fileID: 0}

+ 93 - 6
Samples~/ShadowCreator/SvrToXR/ControllerInputFromAction.cs

@@ -1,3 +1,4 @@
+using GxrSdk;
 using SC.InputSystem;
 using SC.InputSystem.InputDeviceHandShank;
 using System.Collections;
@@ -8,7 +9,7 @@ using UnityEngine.InputSystem;
 using UnityEngine.XR;
 using WCQ.CommonV1_20200325;
 
-public class ControllerInputFromAction : MonoBehaviour
+public class ControllerInputFromAction : MonoBehaviour, IGxrControllerPoseHandler, IGxrButtonHandler
 {
     public ControllerIndex index = ControllerIndex.Left;
     public List<InputActionReference> listinput;
@@ -53,6 +54,26 @@ public class ControllerInputFromAction : MonoBehaviour
         Invoke("DelayInvoke", 1);
     }
 
+    void OnEnable()
+    {
+        // 注册控制器姿态监听器
+        GxrSystemAccessor.InputSystem?.RegisterHandler<IGxrControllerPoseHandler>(this);
+        // 注册按键事件监听器
+        GxrSystemAccessor.InputSystem?.RegisterHandler<IGxrButtonHandler>(this);
+        // 注册触摸事件监听器
+        GxrSystemAccessor.InputSystem?.RegisterHandler<IGxrTouchHandler>(this);
+    }
+
+    void OnDisable()
+    {
+        // 注销控制器姿态监听器
+        GxrSystemAccessor.InputSystem?.UnregisterHandler<IGxrControllerPoseHandler>(this);
+        // 注销按键事件监听器
+        GxrSystemAccessor.InputSystem?.UnregisterHandler<IGxrButtonHandler>(this);
+        // 注销触摸事件监听器
+        GxrSystemAccessor.InputSystem?.UnregisterHandler<IGxrTouchHandler>(this);
+    }
+
     void DelayInvoke() {
         Debug.Log("InputSystem Initialize ===" + index + " ");
 
@@ -66,7 +87,32 @@ public class ControllerInputFromAction : MonoBehaviour
         {
             Debug.Log(string.Format("Device name '{0}' has characteristics '{1}'", device.name, device.characteristics.ToString()));
         }
+        if(index== ControllerIndex.Right)
+        {
+            Debug.Log("Left onDeviceConnected===>" + index);
+            InputDataHandShank.HSData.HS1Connect = true;
+            GetController(ControllerIndex.Left)?.gameObject.SetActive(true);
 
+            GetController(index).inputDataHandShank.blueToothName = "K07";
+            GetController(index).inputDataHandShank.handShankType = HandShankType.K07;
+            GetController(index).inputDataHandShank.isVaild = true;
+
+
+            GetController(index).inputDataGetHandShank.inputDataGetHandShank3DOF.updateRotationCallBack += updateRotationCallBack;
+        }else
+        {
+            Debug.Log("Left onDeviceConnected===>" + index);
+            InputDataHandShank.HSData.HS0Connect = false;
+            GetController(ControllerIndex.Left)?.gameObject.SetActive(false);
+
+            GetController(index).inputDataHandShank.blueToothName = "K07";
+            GetController(index).inputDataHandShank.handShankType = HandShankType.K07;
+            GetController(index).inputDataHandShank.isVaild = false;
+
+
+        }
+      
+        /*
         if (HandedControllers.Count == 1)
         {
             onDeviceConnected(HandedControllers[0]);
@@ -76,10 +122,10 @@ public class ControllerInputFromAction : MonoBehaviour
         {
             onDeviceConnected(new UnityEngine.XR.InputDevice());
         }
+        */
 
-
-        InputDevices.deviceConnected += onDeviceConnected;
-        InputDevices.deviceDisconnected += onDeviceDisConnected;
+     //   InputDevices.deviceConnected += onDeviceConnected;
+    //    InputDevices.deviceDisconnected += onDeviceDisConnected;
 
     }
     private void onDeviceDisConnected(UnityEngine.XR.InputDevice obj) {
@@ -231,11 +277,11 @@ public class ControllerInputFromAction : MonoBehaviour
     //            break;
     //    }
     //}
-
+    public GameObject head;
     void updateRotationCallBack() {
         Debug.Log(index+" updateRotationCallBack===>");
         GetController(index).inputDataHandShank.rotation = controllerRotation;//Quaternion.AngleAxis(20, transform.forward)* 
-        GetController(index).inputDataHandShank.position = new Vector3( controllerPosition.x, controllerPosition.y+1, controllerPosition.z);
+        GetController(index).inputDataHandShank.position = new Vector3(head.transform.position.x, head.transform.position.y-0.5f, head.transform.position.z);
     }
 
 
@@ -443,8 +489,49 @@ public class ControllerInputFromAction : MonoBehaviour
         return null;
     }
 
+    public void OnControllerPoseUpdated(GxrControllerPoseEventData eventData)
+    {
+        controllerRotation = eventData.CurrentRotation;
 
+    }
 
+    public void OnButtonDown(GxrButtonEventData eventData)
+    {
+        if(index==ControllerIndex.Right)
+        GetController(index)?.inputDataBase.InputDataAddKey(InputKeyCode.Enter, InputKeyState.DOWN);
+    }
+
+    public void OnButtonUp(GxrButtonEventData eventData)
+    {
+        if (index == ControllerIndex.Right)
+            GetController(index)?.inputDataBase.InputDataAddKey(InputKeyCode.Enter, InputKeyState.UP);
+    }
+
+    public void OnButtonClick(GxrButtonEventData eventData)
+    {
+    }
+
+    public void OnButtonLongClick(GxrButtonEventData eventData)
+    {
+    }
+
+    public void OnButtonDoubleClick(GxrButtonEventData eventData)
+    {
+    }
+
+    public void OnTouchBegin(GxrTouchEventData eventData)
+    {
+    }
+
+    public void OnTouchEnd(GxrTouchEventData eventData)
+    {
+    }
 
+    public void OnTouchSwipe(GxrTouchEventData eventData)
+    {
+    }
 
+    public void OnTouchPositionUpdated(GxrTouchEventData eventData)
+    {
+    }
 }

+ 8 - 0
Samples~/ShadowCreator/YuanNi.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 61b539e9f4fc777438e7e2117c7e376c
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 15ca4264dc62f074ab6c0e62f48142df
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 58 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_H20_3DoF.asset

@@ -0,0 +1,58 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  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: f99fc95053f74263bd8090b65dd19a09, type: 3}
+  m_Name: MyGxrConfiguration_H20_3DoF
+  m_EditorClassIdentifier: 
+  isCustomized: 1
+  androidDevice: 0
+  glassesDofType: 2
+  controllerType: 2
+  motionControllerPrefab: {fileID: 1271783022308777280, guid: 8d2115353de372e48a8a5f065316cbbc, type: 3}
+  motionControllerLocalPosition: {x: 0.1, y: -0.4, z: 0.05}
+  controllerDisplayMode: 0
+  autoDisappearTime: 10
+  useMouseAsController: 0
+  displayMotionController: 0
+  defaultPointerPrefab: {fileID: 605023273110938410, guid: 97901ae382670cb4bbecb23abdb23fc1, type: 3}
+  maxRaycastDistance: 10
+  pointerLockTargetWhenDrag: 0
+  displayPointer: 0
+  defaultCursorPrefab: {fileID: 5357455127825033462, guid: 58f783dd16bf00945af4f71658bb81a7, type: 3}
+  displayCursor: 0
+  gazePrefab: {fileID: 6852165567272737459, guid: c9f444ec6fdf8b045830c14c8c696b6f, type: 3}
+  gazePointerPrefab: {fileID: 605023273110938410, guid: 5bfde20d5171d0545b958b224279480e, type: 3}
+  gazeCursorPrefab: {fileID: 5357455127825033462, guid: 1681a5f5da9841f47bbf0b23307b72eb, type: 3}
+  handPrefab: {fileID: 6852165567272737459, guid: 323c9760a8e91c84eb672b1f5be41040, type: 3}
+  gestureLevel: 0
+  headDisplayPrefab: {fileID: 8919455505974798271, guid: 215639bca1f6d8c43b13a95e7803fd0c, type: 3}
+  glassesMode: 1
+  targetFrameRate: 60
+  enableNativeRender: 1
+  enableBorderMask: 0
+  enableTrackingSystem: 0
+  enableImageTracking: 0
+  enableObjectTracking: 0
+  enableCameraSystem: 0
+  enableRgbCamera: 0
+  enableRgbCameraPreview: 0
+  enableFishEyeCamera: 0
+  enableFishEyeCameraPreview: 0
+  enableDeviceSystem: 1
+  enableLowBatteryWarning: 1
+  logLevel: 1
+  enableDebugConsole: 0
+  showProfiler: 0
+  enableQuitDialog: 1
+  quitDialogPrefab: {fileID: 5374057812741469164, guid: 7ec7fcf43d7fffb4196cae9a67737399, type: 3}
+  useMrtk: 0
+  enableXrSdk: 0
+  useInputDeviceInEditor: 0

+ 8 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_H20_3DoF.asset.meta

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

+ 67 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_H20_3DoF_Gaze.asset

@@ -0,0 +1,67 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  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: f99fc95053f74263bd8090b65dd19a09, type: 3}
+  m_Name: MyGxrConfiguration_H20_3DoF_Gaze
+  m_EditorClassIdentifier: 
+  isCustomized: 1
+  androidDevice: 0
+  glassesDofType: 1
+  controllerType: 5
+  motionControllerPrefab: {fileID: 1271783022308777280, guid: 8d2115353de372e48a8a5f065316cbbc,
+    type: 3}
+  motionControllerLocalPosition: {x: 0.1, y: -0.4, z: 0.05}
+  controllerDisplayMode: 0
+  autoDisappearTime: 10
+  useMouseAsController: 0
+  displayMotionController: 1
+  defaultPointerPrefab: {fileID: 605023273110938410, guid: 97901ae382670cb4bbecb23abdb23fc1,
+    type: 3}
+  maxRaycastDistance: 10
+  pointerLockTargetWhenDrag: 1
+  displayPointer: 1
+  defaultCursorPrefab: {fileID: 5357455127825033462, guid: 58f783dd16bf00945af4f71658bb81a7,
+    type: 3}
+  displayCursor: 1
+  gazePrefab: {fileID: 6852165567272737459, guid: c9f444ec6fdf8b045830c14c8c696b6f,
+    type: 3}
+  gazePointerPrefab: {fileID: 605023273110938410, guid: 5bfde20d5171d0545b958b224279480e,
+    type: 3}
+  gazeCursorPrefab: {fileID: 5357455127825033462, guid: 1681a5f5da9841f47bbf0b23307b72eb,
+    type: 3}
+  handPrefab: {fileID: 6852165567272737459, guid: 323c9760a8e91c84eb672b1f5be41040,
+    type: 3}
+  gestureLevel: 0
+  headDisplayPrefab: {fileID: 8919455505974798271, guid: 215639bca1f6d8c43b13a95e7803fd0c,
+    type: 3}
+  glassesMode: 1
+  targetFrameRate: 60
+  enableNativeRender: 1
+  enableBorderMask: 0
+  enableTrackingSystem: 0
+  enableImageTracking: 0
+  enableObjectTracking: 0
+  enableCameraSystem: 0
+  enableRgbCamera: 0
+  enableRgbCameraPreview: 0
+  enableFishEyeCamera: 0
+  enableFishEyeCameraPreview: 0
+  enableDeviceSystem: 1
+  enableLowBatteryWarning: 1
+  logLevel: 1
+  enableDebugConsole: 0
+  showProfiler: 0
+  enableQuitDialog: 1
+  quitDialogPrefab: {fileID: 5374057812741469164, guid: 7ec7fcf43d7fffb4196cae9a67737399,
+    type: 3}
+  useMrtk: 0
+  enableXrSdk: 0
+  useInputDeviceInEditor: 0

+ 8 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_H20_3DoF_Gaze.asset.meta

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

+ 67 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_H20_3DoF_ImageTracking.asset

@@ -0,0 +1,67 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  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: f99fc95053f74263bd8090b65dd19a09, type: 3}
+  m_Name: MyGxrConfiguration_H20_3DoF_ImageTracking
+  m_EditorClassIdentifier: 
+  isCustomized: 1
+  androidDevice: 0
+  glassesDofType: 1
+  controllerType: 2
+  motionControllerPrefab: {fileID: 1271783022308777280, guid: 8d2115353de372e48a8a5f065316cbbc,
+    type: 3}
+  motionControllerLocalPosition: {x: 0.1, y: -0.4, z: 0.05}
+  controllerDisplayMode: 0
+  autoDisappearTime: 10
+  useMouseAsController: 0
+  displayMotionController: 1
+  defaultPointerPrefab: {fileID: 605023273110938410, guid: 97901ae382670cb4bbecb23abdb23fc1,
+    type: 3}
+  maxRaycastDistance: 10
+  pointerLockTargetWhenDrag: 1
+  displayPointer: 1
+  defaultCursorPrefab: {fileID: 5357455127825033462, guid: 58f783dd16bf00945af4f71658bb81a7,
+    type: 3}
+  displayCursor: 1
+  gazePrefab: {fileID: 6852165567272737459, guid: c9f444ec6fdf8b045830c14c8c696b6f,
+    type: 3}
+  gazePointerPrefab: {fileID: 605023273110938410, guid: 5bfde20d5171d0545b958b224279480e,
+    type: 3}
+  gazeCursorPrefab: {fileID: 5357455127825033462, guid: 1681a5f5da9841f47bbf0b23307b72eb,
+    type: 3}
+  handPrefab: {fileID: 6852165567272737459, guid: 323c9760a8e91c84eb672b1f5be41040,
+    type: 3}
+  gestureLevel: 0
+  headDisplayPrefab: {fileID: 8919455505974798271, guid: 215639bca1f6d8c43b13a95e7803fd0c,
+    type: 3}
+  glassesMode: 1
+  targetFrameRate: 60
+  enableNativeRender: 1
+  enableBorderMask: 0
+  enableTrackingSystem: 1
+  enableImageTracking: 1
+  enableObjectTracking: 0
+  enableCameraSystem: 1
+  enableRgbCamera: 1
+  enableRgbCameraPreview: 1
+  enableFishEyeCamera: 0
+  enableFishEyeCameraPreview: 0
+  enableDeviceSystem: 1
+  enableLowBatteryWarning: 1
+  logLevel: 1
+  enableDebugConsole: 0
+  showProfiler: 0
+  enableQuitDialog: 1
+  quitDialogPrefab: {fileID: 5374057812741469164, guid: 7ec7fcf43d7fffb4196cae9a67737399,
+    type: 3}
+  useMrtk: 0
+  enableXrSdk: 0
+  useInputDeviceInEditor: 0

+ 8 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_H20_3DoF_ImageTracking.asset.meta

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

+ 67 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_H20_3DoF_L3Gesture.asset

@@ -0,0 +1,67 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  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: f99fc95053f74263bd8090b65dd19a09, type: 3}
+  m_Name: MyGxrConfiguration_H20_3DoF_L3Gesture
+  m_EditorClassIdentifier: 
+  isCustomized: 1
+  androidDevice: 0
+  glassesDofType: 1
+  controllerType: 2
+  motionControllerPrefab: {fileID: 1271783022308777280, guid: 8d2115353de372e48a8a5f065316cbbc,
+    type: 3}
+  motionControllerLocalPosition: {x: 0.1, y: -0.4, z: 0.05}
+  controllerDisplayMode: 0
+  autoDisappearTime: 10
+  useMouseAsController: 0
+  displayMotionController: 1
+  defaultPointerPrefab: {fileID: 605023273110938410, guid: 97901ae382670cb4bbecb23abdb23fc1,
+    type: 3}
+  maxRaycastDistance: 10
+  pointerLockTargetWhenDrag: 1
+  displayPointer: 1
+  defaultCursorPrefab: {fileID: 5357455127825033462, guid: 58f783dd16bf00945af4f71658bb81a7,
+    type: 3}
+  displayCursor: 1
+  gazePrefab: {fileID: 6852165567272737459, guid: c9f444ec6fdf8b045830c14c8c696b6f,
+    type: 3}
+  gazePointerPrefab: {fileID: 605023273110938410, guid: 5bfde20d5171d0545b958b224279480e,
+    type: 3}
+  gazeCursorPrefab: {fileID: 5357455127825033462, guid: 1681a5f5da9841f47bbf0b23307b72eb,
+    type: 3}
+  handPrefab: {fileID: 6852165567272737459, guid: 323c9760a8e91c84eb672b1f5be41040,
+    type: 3}
+  gestureLevel: 2
+  headDisplayPrefab: {fileID: 8919455505974798271, guid: 215639bca1f6d8c43b13a95e7803fd0c,
+    type: 3}
+  glassesMode: 1
+  targetFrameRate: 60
+  enableNativeRender: 1
+  enableBorderMask: 0
+  enableTrackingSystem: 0
+  enableImageTracking: 0
+  enableObjectTracking: 0
+  enableCameraSystem: 0
+  enableRgbCamera: 0
+  enableRgbCameraPreview: 0
+  enableFishEyeCamera: 0
+  enableFishEyeCameraPreview: 0
+  enableDeviceSystem: 1
+  enableLowBatteryWarning: 1
+  logLevel: 1
+  enableDebugConsole: 0
+  showProfiler: 0
+  enableQuitDialog: 1
+  quitDialogPrefab: {fileID: 5374057812741469164, guid: 7ec7fcf43d7fffb4196cae9a67737399,
+    type: 3}
+  useMrtk: 0
+  enableXrSdk: 0
+  useInputDeviceInEditor: 0

+ 8 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_H20_3DoF_L3Gesture.asset.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 23450582a5ec29344a9b810f4f4411ff
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 67 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_H20_3DoF_ObjectTracking.asset

@@ -0,0 +1,67 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  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: f99fc95053f74263bd8090b65dd19a09, type: 3}
+  m_Name: MyGxrConfiguration_H20_3DoF_ObjectTracking
+  m_EditorClassIdentifier: 
+  isCustomized: 1
+  androidDevice: 0
+  glassesDofType: 1
+  controllerType: 2
+  motionControllerPrefab: {fileID: 1271783022308777280, guid: 8d2115353de372e48a8a5f065316cbbc,
+    type: 3}
+  motionControllerLocalPosition: {x: 0.1, y: -0.4, z: 0.05}
+  controllerDisplayMode: 0
+  autoDisappearTime: 10
+  useMouseAsController: 0
+  displayMotionController: 1
+  defaultPointerPrefab: {fileID: 605023273110938410, guid: 97901ae382670cb4bbecb23abdb23fc1,
+    type: 3}
+  maxRaycastDistance: 10
+  pointerLockTargetWhenDrag: 1
+  displayPointer: 1
+  defaultCursorPrefab: {fileID: 5357455127825033462, guid: 58f783dd16bf00945af4f71658bb81a7,
+    type: 3}
+  displayCursor: 1
+  gazePrefab: {fileID: 6852165567272737459, guid: c9f444ec6fdf8b045830c14c8c696b6f,
+    type: 3}
+  gazePointerPrefab: {fileID: 605023273110938410, guid: 5bfde20d5171d0545b958b224279480e,
+    type: 3}
+  gazeCursorPrefab: {fileID: 5357455127825033462, guid: 1681a5f5da9841f47bbf0b23307b72eb,
+    type: 3}
+  handPrefab: {fileID: 6852165567272737459, guid: 323c9760a8e91c84eb672b1f5be41040,
+    type: 3}
+  gestureLevel: 0
+  headDisplayPrefab: {fileID: 8919455505974798271, guid: 215639bca1f6d8c43b13a95e7803fd0c,
+    type: 3}
+  glassesMode: 1
+  targetFrameRate: 60
+  enableNativeRender: 1
+  enableBorderMask: 0
+  enableTrackingSystem: 1
+  enableImageTracking: 0
+  enableObjectTracking: 1
+  enableCameraSystem: 0
+  enableRgbCamera: 0
+  enableRgbCameraPreview: 0
+  enableFishEyeCamera: 0
+  enableFishEyeCameraPreview: 0
+  enableDeviceSystem: 1
+  enableLowBatteryWarning: 1
+  logLevel: 1
+  enableDebugConsole: 0
+  showProfiler: 0
+  enableQuitDialog: 1
+  quitDialogPrefab: {fileID: 5374057812741469164, guid: 7ec7fcf43d7fffb4196cae9a67737399,
+    type: 3}
+  useMrtk: 0
+  enableXrSdk: 0
+  useInputDeviceInEditor: 0

+ 8 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_H20_3DoF_ObjectTracking.asset.meta

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

+ 67 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_H20_3DoF_XRSDK.asset

@@ -0,0 +1,67 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  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: f99fc95053f74263bd8090b65dd19a09, type: 3}
+  m_Name: MyGxrConfiguration_H20_3DoF_XRSDK
+  m_EditorClassIdentifier: 
+  isCustomized: 1
+  androidDevice: 0
+  glassesDofType: 1
+  controllerType: 2
+  motionControllerPrefab: {fileID: 1271783022308777280, guid: 8d2115353de372e48a8a5f065316cbbc,
+    type: 3}
+  motionControllerLocalPosition: {x: 0.1, y: -0.4, z: 0.05}
+  controllerDisplayMode: 0
+  autoDisappearTime: 10
+  useMouseAsController: 0
+  displayMotionController: 1
+  defaultPointerPrefab: {fileID: 605023273110938410, guid: 97901ae382670cb4bbecb23abdb23fc1,
+    type: 3}
+  maxRaycastDistance: 10
+  pointerLockTargetWhenDrag: 1
+  displayPointer: 1
+  defaultCursorPrefab: {fileID: 5357455127825033462, guid: 58f783dd16bf00945af4f71658bb81a7,
+    type: 3}
+  displayCursor: 1
+  gazePrefab: {fileID: 6852165567272737459, guid: c9f444ec6fdf8b045830c14c8c696b6f,
+    type: 3}
+  gazePointerPrefab: {fileID: 605023273110938410, guid: 5bfde20d5171d0545b958b224279480e,
+    type: 3}
+  gazeCursorPrefab: {fileID: 5357455127825033462, guid: 1681a5f5da9841f47bbf0b23307b72eb,
+    type: 3}
+  handPrefab: {fileID: 6852165567272737459, guid: 323c9760a8e91c84eb672b1f5be41040,
+    type: 3}
+  gestureLevel: 0
+  headDisplayPrefab: {fileID: 8919455505974798271, guid: 215639bca1f6d8c43b13a95e7803fd0c,
+    type: 3}
+  glassesMode: 1
+  targetFrameRate: 60
+  enableNativeRender: 1
+  enableBorderMask: 0
+  enableTrackingSystem: 0
+  enableImageTracking: 0
+  enableObjectTracking: 0
+  enableCameraSystem: 0
+  enableRgbCamera: 0
+  enableRgbCameraPreview: 0
+  enableFishEyeCamera: 0
+  enableFishEyeCameraPreview: 0
+  enableDeviceSystem: 1
+  enableLowBatteryWarning: 1
+  logLevel: 1
+  enableDebugConsole: 0
+  showProfiler: 0
+  enableQuitDialog: 1
+  quitDialogPrefab: {fileID: 5374057812741469164, guid: 7ec7fcf43d7fffb4196cae9a67737399,
+    type: 3}
+  useMrtk: 0
+  enableXrSdk: 1
+  useInputDeviceInEditor: 0

+ 8 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_H20_3DoF_XRSDK.asset.meta

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

+ 67 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_H20_6DoF.asset

@@ -0,0 +1,67 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  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: f99fc95053f74263bd8090b65dd19a09, type: 3}
+  m_Name: MyGxrConfiguration_H20_6DoF
+  m_EditorClassIdentifier: 
+  isCustomized: 1
+  androidDevice: 0
+  glassesDofType: 2
+  controllerType: 2
+  motionControllerPrefab: {fileID: 1271783022308777280, guid: 8d2115353de372e48a8a5f065316cbbc,
+    type: 3}
+  motionControllerLocalPosition: {x: 0.1, y: -0.4, z: 0.05}
+  controllerDisplayMode: 0
+  autoDisappearTime: 10
+  useMouseAsController: 0
+  displayMotionController: 1
+  defaultPointerPrefab: {fileID: 605023273110938410, guid: 97901ae382670cb4bbecb23abdb23fc1,
+    type: 3}
+  maxRaycastDistance: 10
+  pointerLockTargetWhenDrag: 1
+  displayPointer: 1
+  defaultCursorPrefab: {fileID: 5357455127825033462, guid: 58f783dd16bf00945af4f71658bb81a7,
+    type: 3}
+  displayCursor: 1
+  gazePrefab: {fileID: 6852165567272737459, guid: c9f444ec6fdf8b045830c14c8c696b6f,
+    type: 3}
+  gazePointerPrefab: {fileID: 605023273110938410, guid: 5bfde20d5171d0545b958b224279480e,
+    type: 3}
+  gazeCursorPrefab: {fileID: 5357455127825033462, guid: 1681a5f5da9841f47bbf0b23307b72eb,
+    type: 3}
+  handPrefab: {fileID: 6852165567272737459, guid: 323c9760a8e91c84eb672b1f5be41040,
+    type: 3}
+  gestureLevel: 0
+  headDisplayPrefab: {fileID: 8919455505974798271, guid: 215639bca1f6d8c43b13a95e7803fd0c,
+    type: 3}
+  glassesMode: 1
+  targetFrameRate: 60
+  enableNativeRender: 1
+  enableBorderMask: 0
+  enableTrackingSystem: 0
+  enableImageTracking: 0
+  enableObjectTracking: 0
+  enableCameraSystem: 0
+  enableRgbCamera: 0
+  enableRgbCameraPreview: 0
+  enableFishEyeCamera: 0
+  enableFishEyeCameraPreview: 0
+  enableDeviceSystem: 1
+  enableLowBatteryWarning: 1
+  logLevel: 1
+  enableDebugConsole: 0
+  showProfiler: 0
+  enableQuitDialog: 1
+  quitDialogPrefab: {fileID: 5374057812741469164, guid: 7ec7fcf43d7fffb4196cae9a67737399,
+    type: 3}
+  useMrtk: 0
+  enableXrSdk: 0
+  useInputDeviceInEditor: 0

+ 8 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_H20_6DoF.asset.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 553b329448a73974395057cec6615dd9
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 67 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_H20_6DoF_Camera.asset

@@ -0,0 +1,67 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  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: f99fc95053f74263bd8090b65dd19a09, type: 3}
+  m_Name: MyGxrConfiguration_H20_6DoF_Camera
+  m_EditorClassIdentifier: 
+  isCustomized: 1
+  androidDevice: 0
+  glassesDofType: 2
+  controllerType: 2
+  motionControllerPrefab: {fileID: 1271783022308777280, guid: 8d2115353de372e48a8a5f065316cbbc,
+    type: 3}
+  motionControllerLocalPosition: {x: 0.1, y: -0.4, z: 0.05}
+  controllerDisplayMode: 0
+  autoDisappearTime: 10
+  useMouseAsController: 0
+  displayMotionController: 1
+  defaultPointerPrefab: {fileID: 605023273110938410, guid: 97901ae382670cb4bbecb23abdb23fc1,
+    type: 3}
+  maxRaycastDistance: 10
+  pointerLockTargetWhenDrag: 1
+  displayPointer: 1
+  defaultCursorPrefab: {fileID: 5357455127825033462, guid: 58f783dd16bf00945af4f71658bb81a7,
+    type: 3}
+  displayCursor: 1
+  gazePrefab: {fileID: 6852165567272737459, guid: c9f444ec6fdf8b045830c14c8c696b6f,
+    type: 3}
+  gazePointerPrefab: {fileID: 605023273110938410, guid: 5bfde20d5171d0545b958b224279480e,
+    type: 3}
+  gazeCursorPrefab: {fileID: 5357455127825033462, guid: 1681a5f5da9841f47bbf0b23307b72eb,
+    type: 3}
+  handPrefab: {fileID: 6852165567272737459, guid: 323c9760a8e91c84eb672b1f5be41040,
+    type: 3}
+  gestureLevel: 0
+  headDisplayPrefab: {fileID: 8919455505974798271, guid: 215639bca1f6d8c43b13a95e7803fd0c,
+    type: 3}
+  glassesMode: 1
+  targetFrameRate: 60
+  enableNativeRender: 1
+  enableBorderMask: 0
+  enableTrackingSystem: 0
+  enableImageTracking: 0
+  enableObjectTracking: 0
+  enableCameraSystem: 1
+  enableRgbCamera: 0
+  enableRgbCameraPreview: 0
+  enableFishEyeCamera: 0
+  enableFishEyeCameraPreview: 0
+  enableDeviceSystem: 1
+  enableLowBatteryWarning: 1
+  logLevel: 1
+  enableDebugConsole: 0
+  showProfiler: 0
+  enableQuitDialog: 1
+  quitDialogPrefab: {fileID: 5374057812741469164, guid: 7ec7fcf43d7fffb4196cae9a67737399,
+    type: 3}
+  useMrtk: 0
+  enableXrSdk: 0
+  useInputDeviceInEditor: 0

+ 8 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_H20_6DoF_Camera.asset.meta

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

+ 67 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_Phone_3DoF.asset

@@ -0,0 +1,67 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  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: f99fc95053f74263bd8090b65dd19a09, type: 3}
+  m_Name: MyGxrConfiguration_Phone_3DoF
+  m_EditorClassIdentifier: 
+  isCustomized: 1
+  androidDevice: 1
+  glassesDofType: 1
+  controllerType: 3
+  motionControllerPrefab: {fileID: 1271783022308777280, guid: 8d2115353de372e48a8a5f065316cbbc,
+    type: 3}
+  motionControllerLocalPosition: {x: 0.1, y: -0.4, z: 0.05}
+  controllerDisplayMode: 0
+  autoDisappearTime: 10
+  useMouseAsController: 0
+  displayMotionController: 1
+  defaultPointerPrefab: {fileID: 605023273110938410, guid: 97901ae382670cb4bbecb23abdb23fc1,
+    type: 3}
+  maxRaycastDistance: 10
+  pointerLockTargetWhenDrag: 1
+  displayPointer: 1
+  defaultCursorPrefab: {fileID: 5357455127825033462, guid: 58f783dd16bf00945af4f71658bb81a7,
+    type: 3}
+  displayCursor: 1
+  gazePrefab: {fileID: 6852165567272737459, guid: c9f444ec6fdf8b045830c14c8c696b6f,
+    type: 3}
+  gazePointerPrefab: {fileID: 605023273110938410, guid: 5bfde20d5171d0545b958b224279480e,
+    type: 3}
+  gazeCursorPrefab: {fileID: 5357455127825033462, guid: 1681a5f5da9841f47bbf0b23307b72eb,
+    type: 3}
+  handPrefab: {fileID: 6852165567272737459, guid: 323c9760a8e91c84eb672b1f5be41040,
+    type: 3}
+  gestureLevel: 0
+  headDisplayPrefab: {fileID: 8919455505974798271, guid: 215639bca1f6d8c43b13a95e7803fd0c,
+    type: 3}
+  glassesMode: 1
+  targetFrameRate: 60
+  enableNativeRender: 1
+  enableBorderMask: 0
+  enableTrackingSystem: 0
+  enableImageTracking: 0
+  enableObjectTracking: 0
+  enableCameraSystem: 0
+  enableRgbCamera: 0
+  enableRgbCameraPreview: 0
+  enableFishEyeCamera: 0
+  enableFishEyeCameraPreview: 0
+  enableDeviceSystem: 1
+  enableLowBatteryWarning: 1
+  logLevel: 1
+  enableDebugConsole: 0
+  showProfiler: 0
+  enableQuitDialog: 1
+  quitDialogPrefab: {fileID: 5374057812741469164, guid: 7ec7fcf43d7fffb4196cae9a67737399,
+    type: 3}
+  useMrtk: 0
+  enableXrSdk: 0
+  useInputDeviceInEditor: 0

+ 8 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_Phone_3DoF.asset.meta

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

+ 67 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_Phone_6DoF.asset

@@ -0,0 +1,67 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  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: f99fc95053f74263bd8090b65dd19a09, type: 3}
+  m_Name: MyGxrConfiguration_Phone_6DoF
+  m_EditorClassIdentifier: 
+  isCustomized: 1
+  androidDevice: 1
+  glassesDofType: 2
+  controllerType: 3
+  motionControllerPrefab: {fileID: 1271783022308777280, guid: 8d2115353de372e48a8a5f065316cbbc,
+    type: 3}
+  motionControllerLocalPosition: {x: 0.1, y: -0.4, z: 0.05}
+  controllerDisplayMode: 0
+  autoDisappearTime: 10
+  useMouseAsController: 0
+  displayMotionController: 1
+  defaultPointerPrefab: {fileID: 605023273110938410, guid: 97901ae382670cb4bbecb23abdb23fc1,
+    type: 3}
+  maxRaycastDistance: 10
+  pointerLockTargetWhenDrag: 1
+  displayPointer: 1
+  defaultCursorPrefab: {fileID: 5357455127825033462, guid: 58f783dd16bf00945af4f71658bb81a7,
+    type: 3}
+  displayCursor: 1
+  gazePrefab: {fileID: 6852165567272737459, guid: c9f444ec6fdf8b045830c14c8c696b6f,
+    type: 3}
+  gazePointerPrefab: {fileID: 605023273110938410, guid: 5bfde20d5171d0545b958b224279480e,
+    type: 3}
+  gazeCursorPrefab: {fileID: 5357455127825033462, guid: 1681a5f5da9841f47bbf0b23307b72eb,
+    type: 3}
+  handPrefab: {fileID: 6852165567272737459, guid: 323c9760a8e91c84eb672b1f5be41040,
+    type: 3}
+  gestureLevel: 0
+  headDisplayPrefab: {fileID: 8919455505974798271, guid: 215639bca1f6d8c43b13a95e7803fd0c,
+    type: 3}
+  glassesMode: 1
+  targetFrameRate: 60
+  enableNativeRender: 1
+  enableBorderMask: 0
+  enableTrackingSystem: 0
+  enableImageTracking: 0
+  enableObjectTracking: 0
+  enableCameraSystem: 0
+  enableRgbCamera: 0
+  enableRgbCameraPreview: 0
+  enableFishEyeCamera: 0
+  enableFishEyeCameraPreview: 0
+  enableDeviceSystem: 1
+  enableLowBatteryWarning: 1
+  logLevel: 1
+  enableDebugConsole: 0
+  showProfiler: 0
+  enableQuitDialog: 1
+  quitDialogPrefab: {fileID: 5374057812741469164, guid: 7ec7fcf43d7fffb4196cae9a67737399,
+    type: 3}
+  useMrtk: 0
+  enableXrSdk: 0
+  useInputDeviceInEditor: 0

+ 8 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk-Configurations/MyGxrConfiguration_Phone_6DoF.asset.meta

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

+ 8 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8e068dd129a4e254bab71f063967451d
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk/Examples.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 31d620ef8af94394499a5b4be663c269
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e3156314b549721418f9f26688fb84ac
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Materials.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 05b066dd5711dc34395fffc56f9f55a7
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 77 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Materials/ColorCubeMaterial.mat

@@ -0,0 +1,77 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+  serializedVersion: 6
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: ColorCubeMaterial
+  m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+  m_ShaderKeywords: 
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailAlbedoMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailMask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailNormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        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:
+    - _BumpScale: 1
+    - _Cutoff: 0.5
+    - _DetailNormalMapScale: 1
+    - _DstBlend: 0
+    - _GlossMapScale: 1
+    - _Glossiness: 0.5
+    - _GlossyReflections: 1
+    - _Metallic: 0
+    - _Mode: 0
+    - _OcclusionStrength: 1
+    - _Parallax: 0.02
+    - _SmoothnessTextureChannel: 0
+    - _SpecularHighlights: 1
+    - _SrcBlend: 1
+    - _UVSec: 0
+    - _ZWrite: 1
+    m_Colors:
+    - _Color: {r: 1, g: 0.7647059, b: 0.23529412, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}

+ 8 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Materials/ColorCubeMaterial.mat.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 00d16315f2ad931489905f55a270c31d
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 77 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Materials/CubeUnlitMateria.mat

@@ -0,0 +1,77 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+  serializedVersion: 6
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: CubeUnlitMateria
+  m_Shader: {fileID: 4800000, guid: 668fac0e482163b499057e669724d7b0, type: 3}
+  m_ShaderKeywords: 
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailAlbedoMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailMask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailNormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        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:
+    - _BumpScale: 1
+    - _Cutoff: 0.5
+    - _DetailNormalMapScale: 1
+    - _DstBlend: 0
+    - _GlossMapScale: 1
+    - _Glossiness: 0.5
+    - _GlossyReflections: 1
+    - _Metallic: 0
+    - _Mode: 0
+    - _OcclusionStrength: 1
+    - _Parallax: 0.02
+    - _SmoothnessTextureChannel: 0
+    - _SpecularHighlights: 1
+    - _SrcBlend: 1
+    - _UVSec: 0
+    - _ZWrite: 1
+    m_Colors:
+    - _Color: {r: 0.3037113, g: 0.8584906, b: 0.37957856, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}

+ 8 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Materials/CubeUnlitMateria.mat.meta

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

+ 74 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Materials/ImageMaterial.mat

@@ -0,0 +1,74 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+  serializedVersion: 6
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: ImageMaterial
+  m_Shader: {fileID: 10752, guid: 0000000000000000f000000000000000, type: 0}
+  m_ShaderKeywords: 
+  m_LightmapFlags: 5
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: 2000
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailAlbedoMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailMask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailNormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: 46fa36f62f932584eb30205138ed9d4f, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        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:
+    - _BumpScale: 1
+    - _Cutoff: 0.5
+    - _DetailNormalMapScale: 1
+    - _DstBlend: 0
+    - _Glossiness: 0.5
+    - _Metallic: 0
+    - _Mode: 0
+    - _OcclusionStrength: 1
+    - _Parallax: 0.02
+    - _SrcBlend: 1
+    - _UVSec: 0
+    - _ZWrite: 1
+    m_Colors:
+    - _Color: {r: 1, g: 1, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+  m_BuildTextureStacks: []

+ 8 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Materials/ImageMaterial.mat.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 853ddd9845808494c93b1381836c555c
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 76 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Materials/Mummy_Eye_mat.mat

@@ -0,0 +1,76 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+  serializedVersion: 6
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_Name: Mummy_Eye_mat
+  m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+  m_ShaderKeywords: _EMISSION
+  m_LightmapFlags: 1
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailAlbedoMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailMask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailNormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        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:
+    - _BumpScale: 1
+    - _Cutoff: 0.5
+    - _DetailNormalMapScale: 1
+    - _DstBlend: 0
+    - _GlossMapScale: 1
+    - _Glossiness: 0
+    - _GlossyReflections: 1
+    - _Metallic: 0
+    - _Mode: 0
+    - _OcclusionStrength: 1
+    - _Parallax: 0.02
+    - _SmoothnessTextureChannel: 0
+    - _SpecularHighlights: 1
+    - _SrcBlend: 1
+    - _UVSec: 0
+    - _ZWrite: 1
+    m_Colors:
+    - _Color: {r: 0.8679245, g: 0.51527965, b: 0.0040939935, a: 1}
+    - _EmissionColor: {r: 0.4528302, g: 0.3341553, b: 0.19437523, a: 1}

+ 8 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Materials/Mummy_Eye_mat.mat.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 45290e8a34ee13c428a3e1ff33bf0f8a
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 83 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Materials/Mummy_mat.mat

@@ -0,0 +1,83 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+  serializedVersion: 6
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: Mummy_mat
+  m_Shader: {fileID: 45, guid: 0000000000000000f000000000000000, type: 0}
+  m_ShaderKeywords: _METALLICGLOSSMAP _NORMALMAP _SPECGLOSSMAP
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 2800000, guid: fa35ca709b14351499a38f0f5310ad4c, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailAlbedoMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailMask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailNormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: 9891e728059938c4fbe02ef59579eaa5, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        m_Texture: {fileID: 2800000, guid: 7200799c4a9779c49ac1143d2a922822, type: 3}
+        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}
+    - _SpecGlossMap:
+        m_Texture: {fileID: 2800000, guid: 96e9dc90316dbfa47b8b61fc7b433173, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Floats:
+    - _BumpScale: 1
+    - _Cutoff: 0.5
+    - _DetailNormalMapScale: 1
+    - _DstBlend: 0
+    - _GlossMapScale: 1
+    - _Glossiness: 0.5
+    - _GlossyReflections: 1
+    - _Metallic: 0
+    - _Mode: 0
+    - _OcclusionStrength: 1
+    - _Parallax: 0.02
+    - _SmoothnessTextureChannel: 0
+    - _SpecularHighlights: 1
+    - _SrcBlend: 1
+    - _UVSec: 0
+    - _ZWrite: 1
+    m_Colors:
+    - _Color: {r: 0.8207547, g: 0.8207547, b: 0.8207547, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+    - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
+  m_BuildTextureStacks: []

+ 8 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Materials/Mummy_mat.mat.meta

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

+ 77 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Materials/PlaneColorMaterial.mat

@@ -0,0 +1,77 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+  serializedVersion: 6
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: PlaneColorMaterial
+  m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+  m_ShaderKeywords: 
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailAlbedoMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailMask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailNormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 50, y: 50}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: 053be5e65f5e85844b579dcf66c4a025, type: 3}
+        m_Scale: {x: 50, y: 50}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        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:
+    - _BumpScale: 1
+    - _Cutoff: 0.5
+    - _DetailNormalMapScale: 1
+    - _DstBlend: 0
+    - _GlossMapScale: 1
+    - _Glossiness: 0.5
+    - _GlossyReflections: 1
+    - _Metallic: 0
+    - _Mode: 0
+    - _OcclusionStrength: 1
+    - _Parallax: 0.02
+    - _SmoothnessTextureChannel: 0
+    - _SpecularHighlights: 1
+    - _SrcBlend: 1
+    - _UVSec: 0
+    - _ZWrite: 1
+    m_Colors:
+    - _Color: {r: 0.030526895, g: 0.8320199, b: 0.9245283, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}

+ 8 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Materials/PlaneColorMaterial.mat.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 5649fdfd966e9a44ca43fcae18b2fcbd
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 77 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Materials/PolygonMaterial.mat

@@ -0,0 +1,77 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+  serializedVersion: 6
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: PolygonMaterial
+  m_Shader: {fileID: 10701, guid: 0000000000000000f000000000000000, type: 0}
+  m_ShaderKeywords: 
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailAlbedoMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailMask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailNormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: 8812064df8660bb4bab844c792ffc713, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        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:
+    - _BumpScale: 1
+    - _Cutoff: 0.5
+    - _DetailNormalMapScale: 1
+    - _DstBlend: 0
+    - _GlossMapScale: 1
+    - _Glossiness: 0.5
+    - _GlossyReflections: 1
+    - _Metallic: 0
+    - _Mode: 0
+    - _OcclusionStrength: 1
+    - _Parallax: 0.02
+    - _SmoothnessTextureChannel: 0
+    - _SpecularHighlights: 1
+    - _SrcBlend: 1
+    - _UVSec: 0
+    - _ZWrite: 1
+    m_Colors:
+    - _Color: {r: 1, g: 1, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}

+ 3 - 3
Samples~/ShadowCreator/Plugins/IngameDebugConsole/Prefabs/DebugLogItem.prefab.meta → Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Materials/PolygonMaterial.mat.meta

@@ -1,8 +1,8 @@
 fileFormatVersion: 2
-guid: 391be5df5ef62f345bb76a1051c04da7
-timeCreated: 1465919887
-licenseType: Store
+guid: 23a1318646caa8d4d88132af4627e04d
 NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 0
   userData: 
   assetBundleName: 
   assetBundleVariant: 

+ 73 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Materials/PoseVisualizer.mat

@@ -0,0 +1,73 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+  serializedVersion: 6
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: PoseVisualizer
+  m_Shader: {fileID: 10752, guid: 0000000000000000f000000000000000, type: 0}
+  m_ShaderKeywords: 
+  m_LightmapFlags: 5
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: 2000
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailAlbedoMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailMask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailNormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: 2173b1cd7d371d043a30dca0a2bf4f73, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        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:
+    - _BumpScale: 1
+    - _Cutoff: 0.5
+    - _DetailNormalMapScale: 1
+    - _DstBlend: 0
+    - _Glossiness: 0.5
+    - _Metallic: 0
+    - _Mode: 0
+    - _OcclusionStrength: 1
+    - _Parallax: 0.02
+    - _SrcBlend: 1
+    - _UVSec: 0
+    - _ZWrite: 1
+    m_Colors:
+    - _Color: {r: 1, g: 1, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}

+ 8 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Materials/PoseVisualizer.mat.meta

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

+ 8 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Models.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 5e5f39f3e17b0b14192fba6890a42c40
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 69 - 0
Samples~/ShadowCreator/YuanNi/GxrSdk/Examples/Common/Models/Mummy_Anim.controller

@@ -0,0 +1,69 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!91 &9100000
+AnimatorController:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_Name: Mummy_Anim
+  serializedVersion: 5
+  m_AnimatorParameters: []
+  m_AnimatorLayers:
+  - serializedVersion: 5
+    m_Name: Base Layer
+    m_StateMachine: {fileID: 1107645857324494160}
+    m_Mask: {fileID: 0}
+    m_Motions: []
+    m_Behaviours: []
+    m_BlendingMode: 0
+    m_SyncedLayerIndex: -1
+    m_DefaultWeight: 0
+    m_IKPass: 0
+    m_SyncedLayerAffectsTiming: 0
+    m_Controller: {fileID: 9100000}
+--- !u!1102 &1102262709166904898
+AnimatorState:
+  serializedVersion: 5
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_Name: Move
+  m_Speed: 1
+  m_CycleOffset: 0
+  m_Transitions: []
+  m_StateMachineBehaviours: []
+  m_Position: {x: 50, y: 50, z: 0}
+  m_IKOnFeet: 0
+  m_WriteDefaultValues: 1
+  m_Mirror: 0
+  m_SpeedParameterActive: 0
+  m_MirrorParameterActive: 0
+  m_CycleOffsetParameterActive: 0
+  m_TimeParameterActive: 0
+  m_Motion: {fileID: 7400000, guid: 3353e4f866c39d043a315b41717c9bb7, type: 3}
+  m_Tag: 
+  m_SpeedParameter: 
+  m_MirrorParameter: 
+  m_CycleOffsetParameter: 
+  m_TimeParameter: 
+--- !u!1107 &1107645857324494160
+AnimatorStateMachine:
+  serializedVersion: 5
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 0}
+  m_Name: Base Layer
+  m_ChildStates:
+  - serializedVersion: 1
+    m_State: {fileID: 1102262709166904898}
+    m_Position: {x: 360, y: 120, z: 0}
+  m_ChildStateMachines: []
+  m_AnyStateTransitions: []
+  m_EntryTransitions: []
+  m_StateMachineTransitions: {}
+  m_StateMachineBehaviours: []
+  m_AnyStatePosition: {x: 50, y: 20, z: 0}
+  m_EntryPosition: {x: 50, y: 120, z: 0}
+  m_ExitPosition: {x: 600, y: 120, z: 0}
+  m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
+  m_DefaultState: {fileID: 1102262709166904898}

Some files were not shown because too many files changed in this diff