Jelajahi Sumber

1.添加耗时打印和fps

slambb 2 tahun lalu
induk
melakukan
7eb8b3ca11

+ 245 - 3
Assets/Resources/WebCameraView.prefab

@@ -1024,6 +1024,86 @@ MonoBehaviour:
           m_StringArgument: 
           m_StringArgument: 
           m_BoolArgument: 0
           m_BoolArgument: 0
         m_CallState: 2
         m_CallState: 2
+--- !u!1 &2596742066726387373
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 8882090853846202404}
+  - component: {fileID: 1225028087257896789}
+  - component: {fileID: 7778410682920148111}
+  m_Layer: 5
+  m_Name: FPS
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &8882090853846202404
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2596742066726387373}
+  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: 2097694104402401788}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 1, y: 0}
+  m_AnchorMax: {x: 1, y: 0}
+  m_AnchoredPosition: {x: -22, y: 50}
+  m_SizeDelta: {x: 137.46, y: 30}
+  m_Pivot: {x: 1, y: 0}
+--- !u!222 &1225028087257896789
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2596742066726387373}
+  m_CullTransparentMesh: 1
+--- !u!114 &7778410682920148111
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2596742066726387373}
+  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: 1, g: 0, b: 0, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 20
+    m_FontStyle: 1
+    m_BestFit: 0
+    m_MinSize: 2
+    m_MaxSize: 40
+    m_Alignment: 3
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 1
+    m_VerticalOverflow: 1
+    m_LineSpacing: 1
+  m_Text: FPS:0
 --- !u!1 &3146352217622945588
 --- !u!1 &3146352217622945588
 GameObject:
 GameObject:
   m_ObjectHideFlags: 0
   m_ObjectHideFlags: 0
@@ -2073,6 +2153,86 @@ MonoBehaviour:
   m_FillOrigin: 0
   m_FillOrigin: 0
   m_UseSpriteMesh: 0
   m_UseSpriteMesh: 0
   m_PixelsPerUnitMultiplier: 1
   m_PixelsPerUnitMultiplier: 1
+--- !u!1 &7788670748198086487
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 5972295210128513349}
+  - component: {fileID: 495836859165730667}
+  - component: {fileID: 5581438245667391577}
+  m_Layer: 5
+  m_Name: Text (Legacy)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &5972295210128513349
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7788670748198086487}
+  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: 2097694104402401788}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 1}
+  m_AnchorMax: {x: 0, y: 1}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 160, y: 30}
+  m_Pivot: {x: 0, y: 1}
+--- !u!222 &495836859165730667
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7788670748198086487}
+  m_CullTransparentMesh: 1
+--- !u!114 &5581438245667391577
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7788670748198086487}
+  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, g: 1, b: 0.34117648, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 20
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 2
+    m_MaxSize: 40
+    m_Alignment: 0
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 1
+    m_VerticalOverflow: 1
+    m_LineSpacing: 1
+  m_Text: 
 --- !u!1 &7801504146757933551
 --- !u!1 &7801504146757933551
 GameObject:
 GameObject:
   m_ObjectHideFlags: 0
   m_ObjectHideFlags: 0
@@ -2153,6 +2313,84 @@ MonoBehaviour:
     m_VerticalOverflow: 1
     m_VerticalOverflow: 1
     m_LineSpacing: 1
     m_LineSpacing: 1
   m_Text: 1
   m_Text: 1
+--- !u!1 &7820085685692137174
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 2097694104402401788}
+  - component: {fileID: 6682148289086335608}
+  - component: {fileID: 6490072280515491101}
+  m_Layer: 5
+  m_Name: LogViewBottom
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &2097694104402401788
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7820085685692137174}
+  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:
+  - {fileID: 5972295210128513349}
+  - {fileID: 8882090853846202404}
+  m_Father: {fileID: 8173640439703108558}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 1, y: 1}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: -522}
+  m_SizeDelta: {x: 330, y: 198.34998}
+  m_Pivot: {x: 1, y: 0}
+--- !u!222 &6682148289086335608
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7820085685692137174}
+  m_CullTransparentMesh: 1
+--- !u!114 &6490072280515491101
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7820085685692137174}
+  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, g: 0.46666667, b: 0.63529414, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 0}
+  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 &8173640439478241520
 --- !u!1 &8173640439478241520
 GameObject:
 GameObject:
   m_ObjectHideFlags: 0
   m_ObjectHideFlags: 0
@@ -3024,6 +3262,7 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_ConstrainProportionsScale: 0
   m_Children:
   m_Children:
   - {fileID: 8173640439770999113}
   - {fileID: 8173640439770999113}
+  - {fileID: 2097694104402401788}
   m_Father: {fileID: 8173640441273753839}
   m_Father: {fileID: 8173640441273753839}
   m_RootOrder: 6
   m_RootOrder: 6
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -3255,10 +3494,10 @@ RectTransform:
   m_Father: {fileID: 8173640439703108558}
   m_Father: {fileID: 8173640439703108558}
   m_RootOrder: 0
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
-  m_AnchorMin: {x: 1, y: 0}
+  m_AnchorMin: {x: 1, y: 1}
   m_AnchorMax: {x: 1, y: 1}
   m_AnchorMax: {x: 1, y: 1}
-  m_AnchoredPosition: {x: 0, y: 0}
-  m_SizeDelta: {x: 330, y: 0}
+  m_AnchoredPosition: {x: 0, y: -322}
+  m_SizeDelta: {x: 330, y: 322}
   m_Pivot: {x: 1, y: 0}
   m_Pivot: {x: 1, y: 0}
 --- !u!222 &8173640439770999114
 --- !u!222 &8173640439770999114
 CanvasRenderer:
 CanvasRenderer:
@@ -8075,6 +8314,9 @@ MonoBehaviour:
   mUIManagerSingle: {fileID: 8173640441489028674}
   mUIManagerSingle: {fileID: 8173640441489028674}
   SinglePointToggle: {fileID: 8831319691267896926}
   SinglePointToggle: {fileID: 8831319691267896926}
   SinglePointToggleColor: {fileID: 8962272649683743661}
   SinglePointToggleColor: {fileID: 8962272649683743661}
+  m_UITime: {fileID: 5581438245667391577}
+  updateInterval: 0.5
+  m_FPS: {fileID: 7778410682920148111}
 --- !u!1 &8173640441342043062
 --- !u!1 &8173640441342043062
 GameObject:
 GameObject:
   m_ObjectHideFlags: 0
   m_ObjectHideFlags: 0

+ 118 - 1
Assets/WebCamera/Script/ZIM/ScreenLocate.cs

@@ -98,6 +98,24 @@ public class ScreenLocate : MonoBehaviour
     bool bIdentifyRed = true;//默认设备红色
     bool bIdentifyRed = true;//默认设备红色
     public Toggle SinglePointToggleColor;
     public Toggle SinglePointToggleColor;
 
 
+    #region 性能检测相关
+    public Text m_UITime;
+    const float m_UIUpdateInterval = 0.1f;
+    float m_UIUpdateTimer = 0.0f;
+    List<float> m_History = new List<float>(100);
+    int m_ValidHistoryFrames = 0;
+    float m_AverageTime = float.NaN;
+    float m_MedianTime = float.NaN;
+    float m_MinTime = float.NaN;
+    float m_MaxTime = float.NaN;
+
+    public float updateInterval = 0.5F;
+    private double lastInterval;
+    private int frames = 0;
+    private float fps;
+    public Text m_FPS;
+    #endregion
+
 
 
     InfraredLocate infraredLocate;
     InfraredLocate infraredLocate;
     RectTransform canvas;
     RectTransform canvas;
@@ -198,6 +216,14 @@ public class ScreenLocate : MonoBehaviour
             SinglePointToggleColor.isOn = bIdentifyRed;
             SinglePointToggleColor.isOn = bIdentifyRed;
         }
         }
 
 
+        #region 性能检测相关
+        for (var i = 0; i < m_History.Capacity; ++i)
+        {
+            m_History.Add(0.0f);
+        }
+        lastInterval = Time.realtimeSinceStartup;
+        frames = 0;
+        #endregion
     }
     }
     //ZIMWebCamera场景使用
     //ZIMWebCamera场景使用
     public void WebCamIsReady(Texture texture)
     public void WebCamIsReady(Texture texture)
@@ -253,6 +279,18 @@ public class ScreenLocate : MonoBehaviour
 
 
     void Update()
     void Update()
     {
     {
+        ++frames;
+        float timeNow = Time.realtimeSinceStartup;
+        if (timeNow > lastInterval + updateInterval)
+        {
+            fps = (float)(frames / (timeNow - lastInterval));
+            frames = 0;
+            lastInterval = timeNow;
+        }
+
+        if (m_FPS != null)
+            m_FPS.text = "FPS:" + fps.ToString("f2");
+
         if (mUVCCameraInfo == null) return;
         if (mUVCCameraInfo == null) return;
 
 
         if (screenIdentification == null)
         if (screenIdentification == null)
@@ -294,10 +332,12 @@ public class ScreenLocate : MonoBehaviour
             return;
             return;
         }
         }
 
 
+        var t0 = Time.realtimeSinceStartup;
 
 
         /* New*/
         /* New*/
         if (mUVCCameraInfo != null && mUVCCameraInfo.IsPreviewing && screenIdentification.Screen.Active)     // 成功定位屏幕后才做红外识别
         if (mUVCCameraInfo != null && mUVCCameraInfo.IsPreviewing && screenIdentification.Screen.Active)     // 成功定位屏幕后才做红外识别
         {
         {
+          
             CreateUVCTexture2DIfNeeded();
             CreateUVCTexture2DIfNeeded();
             if (!screenIdentification.Update(mUVCTexture2D))
             if (!screenIdentification.Update(mUVCTexture2D))
             {
             {
@@ -368,8 +408,64 @@ public class ScreenLocate : MonoBehaviour
 
 
             }
             }
         }
         }
-    }
 
 
+        var t1 = Time.realtimeSinceStartup;
+        var dt = t1 - t0;
+        m_History[m_ValidHistoryFrames % m_History.Count] = dt;
+        ++m_ValidHistoryFrames;
+
+        m_UIUpdateTimer += Time.deltaTime;
+
+        if (m_UIUpdateTimer >= m_UIUpdateInterval)
+        {
+            m_UIUpdateTimer = 0.0f;
+
+            if (m_ValidHistoryFrames >= m_History.Count)
+            {
+                m_ValidHistoryFrames = 0;
+
+                m_AverageTime = 0.0f;
+
+                m_MinTime = float.PositiveInfinity;
+                m_MaxTime = float.NegativeInfinity;
+
+                {
+                    for (var i = 0; i < m_History.Count; i++)
+                    {
+                        var time = m_History[i];
+                        m_AverageTime += time;
+
+                        m_MinTime = Mathf.Min(m_MinTime, time);
+                        m_MaxTime = Mathf.Max(m_MaxTime, time);
+                    }
+                    m_AverageTime /= m_History.Count;
+                }
+                {
+                    m_History.Sort();
+
+                    // Odd-length history?
+                    if ((m_History.Count & 1) != 0)
+                    {
+                        m_MedianTime = m_History[m_History.Count / 2];
+                    }
+                    else
+                    {
+                        m_MedianTime = (m_History[m_History.Count / 2] + m_History[m_History.Count / 2 - 1]) / 2.0f;
+                    }
+                }
+
+            }
+            var statistics = $"{m_History.Count} 帧样本:\n average: {m_AverageTime * 1000.0f:F2}ms\n median: {m_MedianTime * 1000.0f:F2}ms\n min: {m_MinTime * 1000.0f:F2}ms\n max: {m_MaxTime * 1000.0f:F2}ms\n";
+
+            //Method: {m_Method} {UnityEngine.SceneManagement.SceneManager.GetActiveScene().name} |
+            if (m_UITime != null)
+                m_UITime.text = $"camera size: {mUVCCameraInfo.CurrentWidth}x{mUVCCameraInfo.CurrentHeight} \n Last Frame: {dt * 1000.0f:F2}ms \n{statistics}";
+        
+        }
+        UpdateInputs();
+
+      
+    }
 
 
 
 
     public void BtnScreenLocate()
     public void BtnScreenLocate()
@@ -538,4 +634,25 @@ public class ScreenLocate : MonoBehaviour
         m_secondTime = default(DateTime);
         m_secondTime = default(DateTime);
     }
     }
     #endregion
     #endregion
+
+
+    #region 性能检测相关
+    void InvalidateTimings()
+    {
+        m_ValidHistoryFrames = 0;
+        m_AverageTime = float.NaN;
+        m_MedianTime = float.NaN;
+        m_MinTime = float.NaN;
+        m_MaxTime = float.NaN;
+    }
+    void UpdateInputs()
+    {
+        
+        //重置
+        if (Input.GetKeyDown(KeyCode.UpArrow))
+        {
+            InvalidateTimings();
+        }
+    }
+    #endregion
 }
 }

+ 165 - 0
Assets/WebCamera/zimWebCamera.unity

@@ -1266,6 +1266,86 @@ CanvasRenderer:
   m_PrefabAsset: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 614532336}
   m_GameObject: {fileID: 614532336}
   m_CullTransparentMesh: 1
   m_CullTransparentMesh: 1
+--- !u!1 &641569779
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 641569780}
+  - component: {fileID: 641569782}
+  - component: {fileID: 641569781}
+  m_Layer: 5
+  m_Name: fps
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &641569780
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 641569779}
+  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: 1867793102}
+  m_RootOrder: 15
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 1}
+  m_AnchorMax: {x: 0, y: 1}
+  m_AnchoredPosition: {x: 100, y: -157}
+  m_SizeDelta: {x: 160, y: 30}
+  m_Pivot: {x: 0, y: 1}
+--- !u!114 &641569781
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 641569779}
+  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: 1, g: 0, b: 0, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 32
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 3
+    m_MaxSize: 40
+    m_Alignment: 0
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 1
+    m_VerticalOverflow: 1
+    m_LineSpacing: 1
+  m_Text: 
+--- !u!222 &641569782
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 641569779}
+  m_CullTransparentMesh: 1
 --- !u!1 &682249272
 --- !u!1 &682249272
 GameObject:
 GameObject:
   m_ObjectHideFlags: 0
   m_ObjectHideFlags: 0
@@ -1412,6 +1492,86 @@ CanvasRenderer:
   m_PrefabAsset: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 819462429}
   m_GameObject: {fileID: 819462429}
   m_CullTransparentMesh: 1
   m_CullTransparentMesh: 1
+--- !u!1 &849339069
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 849339070}
+  - component: {fileID: 849339072}
+  - component: {fileID: 849339071}
+  m_Layer: 5
+  m_Name: Text (Legacy)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &849339070
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 849339069}
+  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: 1867793102}
+  m_RootOrder: 14
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 1}
+  m_AnchorMax: {x: 0, y: 1}
+  m_AnchoredPosition: {x: 100, y: -200}
+  m_SizeDelta: {x: 160, y: 30}
+  m_Pivot: {x: 0, y: 1}
+--- !u!114 &849339071
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 849339069}
+  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: 1, g: 0, b: 0, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 32
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 3
+    m_MaxSize: 40
+    m_Alignment: 0
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 1
+    m_VerticalOverflow: 1
+    m_LineSpacing: 1
+  m_Text: 
+--- !u!222 &849339072
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 849339069}
+  m_CullTransparentMesh: 1
 --- !u!1 &922494662
 --- !u!1 &922494662
 GameObject:
 GameObject:
   m_ObjectHideFlags: 0
   m_ObjectHideFlags: 0
@@ -3404,6 +3564,8 @@ RectTransform:
   - {fileID: 922494663}
   - {fileID: 922494663}
   - {fileID: 1697954114}
   - {fileID: 1697954114}
   - {fileID: 493188450}
   - {fileID: 493188450}
+  - {fileID: 849339070}
+  - {fileID: 641569780}
   m_Father: {fileID: 0}
   m_Father: {fileID: 0}
   m_RootOrder: 1
   m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -3468,6 +3630,9 @@ MonoBehaviour:
   mUIManagerSingle: {fileID: 0}
   mUIManagerSingle: {fileID: 0}
   SinglePointToggle: {fileID: 0}
   SinglePointToggle: {fileID: 0}
   SinglePointToggleColor: {fileID: 0}
   SinglePointToggleColor: {fileID: 0}
+  m_UITime: {fileID: 849339071}
+  updateInterval: 0.5
+  m_FPS: {fileID: 641569781}
 --- !u!1 &1946863618
 --- !u!1 &1946863618
 GameObject:
 GameObject:
   m_ObjectHideFlags: 0
   m_ObjectHideFlags: 0