Bläddra i källkod

红外线射击应用和测试

lvjincheng 4 år sedan
förälder
incheckning
06bf3e437f

+ 10 - 295
Assets/BowArrow/Scenes/Home.unity

@@ -275,100 +275,6 @@ CanvasRenderer:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 71487305}
   m_CullTransparentMesh: 1
---- !u!1 &151032532
-GameObject:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  serializedVersion: 6
-  m_Component:
-  - component: {fileID: 151032533}
-  - component: {fileID: 151032536}
-  - component: {fileID: 151032535}
-  - component: {fileID: 151032534}
-  m_Layer: 5
-  m_Name: T3
-  m_TagString: Untagged
-  m_Icon: {fileID: 0}
-  m_NavMeshLayer: 0
-  m_StaticEditorFlags: 0
-  m_IsActive: 1
---- !u!224 &151032533
-RectTransform:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 151032532}
-  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: 2012199177}
-  m_RootOrder: 4
-  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
-  m_AnchorMin: {x: 0, y: 1}
-  m_AnchorMax: {x: 0, y: 1}
-  m_AnchoredPosition: {x: 80, y: -260}
-  m_SizeDelta: {x: 160, y: 50}
-  m_Pivot: {x: 0, y: 0.5}
---- !u!114 &151032534
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 151032532}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  m_HorizontalFit: 2
-  m_VerticalFit: 0
---- !u!114 &151032535
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 151032532}
-  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: 1, b: 1, 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: 40
-    m_FontStyle: 0
-    m_BestFit: 0
-    m_MinSize: 3
-    m_MaxSize: 40
-    m_Alignment: 3
-    m_AlignByGeometry: 0
-    m_RichText: 1
-    m_HorizontalOverflow: 0
-    m_VerticalOverflow: 0
-    m_LineSpacing: 1
-  m_Text: "\u906E\u6321\u65F6\u95F4"
---- !u!222 &151032536
-CanvasRenderer:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 151032532}
-  m_CullTransparentMesh: 1
 --- !u!1 &219397735
 GameObject:
   m_ObjectHideFlags: 0
@@ -786,9 +692,9 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 0, y: 1}
-  m_AnchoredPosition: {x: 80, y: -80}
-  m_SizeDelta: {x: 160, y: 50}
-  m_Pivot: {x: 0, y: 0.5}
+  m_AnchoredPosition: {x: 60, y: -50}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0, y: 1}
 --- !u!114 &551154240
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -802,7 +708,7 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   m_HorizontalFit: 2
-  m_VerticalFit: 0
+  m_VerticalFit: 2
 --- !u!114 &551154241
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -817,7 +723,7 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   m_Material: {fileID: 0}
   m_Color: {r: 1, g: 1, b: 1, a: 1}
-  m_RaycastTarget: 1
+  m_RaycastTarget: 0
   m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
   m_Maskable: 1
   m_OnCullStateChanged:
@@ -836,7 +742,7 @@ MonoBehaviour:
     m_HorizontalOverflow: 0
     m_VerticalOverflow: 0
     m_LineSpacing: 1
-  m_Text: "\u539F\u59CB\u4E5D\u8F74"
+  m_Text: DebugForDevice
 --- !u!222 &551154242
 CanvasRenderer:
   m_ObjectHideFlags: 0
@@ -999,100 +905,6 @@ CanvasRenderer:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 664475002}
   m_CullTransparentMesh: 0
---- !u!1 &739433369
-GameObject:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  serializedVersion: 6
-  m_Component:
-  - component: {fileID: 739433370}
-  - component: {fileID: 739433373}
-  - component: {fileID: 739433372}
-  - component: {fileID: 739433371}
-  m_Layer: 5
-  m_Name: T1
-  m_TagString: Untagged
-  m_Icon: {fileID: 0}
-  m_NavMeshLayer: 0
-  m_StaticEditorFlags: 0
-  m_IsActive: 1
---- !u!224 &739433370
-RectTransform:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 739433369}
-  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: 2012199177}
-  m_RootOrder: 2
-  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
-  m_AnchorMin: {x: 0, y: 1}
-  m_AnchorMax: {x: 0, y: 1}
-  m_AnchoredPosition: {x: 80, y: -140}
-  m_SizeDelta: {x: 160, y: 50}
-  m_Pivot: {x: 0, y: 0.5}
---- !u!114 &739433371
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 739433369}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  m_HorizontalFit: 2
-  m_VerticalFit: 0
---- !u!114 &739433372
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 739433369}
-  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: 1, b: 1, 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: 40
-    m_FontStyle: 0
-    m_BestFit: 0
-    m_MinSize: 3
-    m_MaxSize: 40
-    m_Alignment: 3
-    m_AlignByGeometry: 0
-    m_RichText: 1
-    m_HorizontalOverflow: 0
-    m_VerticalOverflow: 0
-    m_LineSpacing: 1
-  m_Text: "\u539F\u59CB\u7535\u91CF"
---- !u!222 &739433373
-CanvasRenderer:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 739433369}
-  m_CullTransparentMesh: 1
 --- !u!1 &813629522
 GameObject:
   m_ObjectHideFlags: 0
@@ -1689,100 +1501,6 @@ RectTransform:
   m_AnchoredPosition: {x: -136, y: -46}
   m_SizeDelta: {x: 0, y: 0}
   m_Pivot: {x: 1, y: 1}
---- !u!1 &1215898868
-GameObject:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  serializedVersion: 6
-  m_Component:
-  - component: {fileID: 1215898869}
-  - component: {fileID: 1215898872}
-  - component: {fileID: 1215898871}
-  - component: {fileID: 1215898870}
-  m_Layer: 5
-  m_Name: T2
-  m_TagString: Untagged
-  m_Icon: {fileID: 0}
-  m_NavMeshLayer: 0
-  m_StaticEditorFlags: 0
-  m_IsActive: 1
---- !u!224 &1215898869
-RectTransform:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 1215898868}
-  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: 2012199177}
-  m_RootOrder: 3
-  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
-  m_AnchorMin: {x: 0, y: 1}
-  m_AnchorMax: {x: 0, y: 1}
-  m_AnchoredPosition: {x: 80, y: -200}
-  m_SizeDelta: {x: 160, y: 50}
-  m_Pivot: {x: 0, y: 0.5}
---- !u!114 &1215898870
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 1215898868}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  m_HorizontalFit: 2
-  m_VerticalFit: 0
---- !u!114 &1215898871
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 1215898868}
-  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: 1, b: 1, 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: 40
-    m_FontStyle: 0
-    m_BestFit: 0
-    m_MinSize: 3
-    m_MaxSize: 40
-    m_Alignment: 3
-    m_AlignByGeometry: 0
-    m_RichText: 1
-    m_HorizontalOverflow: 0
-    m_VerticalOverflow: 0
-    m_LineSpacing: 1
-  m_Text: "\u539F\u59CB\u906E\u6321"
---- !u!222 &1215898872
-CanvasRenderer:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 1215898868}
-  m_CullTransparentMesh: 1
 --- !u!1 &1254713244
 GameObject:
   m_ObjectHideFlags: 0
@@ -3077,7 +2795,7 @@ GameObject:
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
-  m_IsActive: 0
+  m_IsActive: 1
 --- !u!114 &2012199174
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -3152,9 +2870,6 @@ RectTransform:
   m_Children:
   - {fileID: 2069336234}
   - {fileID: 551154239}
-  - {fileID: 739433370}
-  - {fileID: 1215898869}
-  - {fileID: 151032533}
   m_Father: {fileID: 0}
   m_RootOrder: 7
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -3209,8 +2924,8 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 1}
-  m_AnchoredPosition: {x: 0, y: 375}
-  m_SizeDelta: {x: 0, y: -750}
+  m_AnchoredPosition: {x: 0, y: 225}
+  m_SizeDelta: {x: 0, y: -450}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &2069336235
 MonoBehaviour:
@@ -3226,7 +2941,7 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   m_Material: {fileID: 0}
   m_Color: {r: 0, g: 0, b: 0, a: 0.60784316}
-  m_RaycastTarget: 1
+  m_RaycastTarget: 0
   m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
   m_Maskable: 1
   m_OnCullStateChanged:

+ 2 - 11
Assets/BowArrow/Scripts/Bluetooth/AimHandler.cs

@@ -218,17 +218,8 @@ public class AimHandler : MonoBehaviour
             }
             if (bytes.Length >= 3 && bytes[2] == 5)
             {
-                float time1 = ((bytes[5] << 8) + bytes[6]) * 0.1f;
-                float time2 = ((bytes[7] << 8) + bytes[8]) * 0.1f; 
-                float speed = 0.05f / (time1 / 1000 + time2 / 1000);
-                string logTxt = $"时长1:{time1}毫秒,时长2:{time2}毫秒,平均速度:{speed}m/s";
-                Debug.Log(logTxt);
-                try {
-                    ShootCheck.ins.webSocket.Send(logTxt);
-                } catch (Exception) {}
-
-                ShootCheck.ins.shootSpeed = 60;
-                if (ArmBow.ins) ArmBow.ins.ADS_fire();
+                string info = ShootCheck.ins.ShootByInfrared(bytes);
+                if (DebugForDevice.ins) DebugForDevice.ins.LogInfrared(bytes, info);
             }
             return;
         }

+ 1 - 12
Assets/BowArrow/Scripts/Bluetooth/BluetoothAim.cs

@@ -122,12 +122,7 @@ public class BluetoothAim : MonoBehaviour
                         }
                     }
                 }
-                if (DebugForDevice.ins) {
-                    CallDelay(1, OpenInfrared);
-                    CallDelay(2, OpenReceiveData);
-                } else {
-                    CallDelay(1, OpenReceiveData);
-                }
+                CallDelay(1, OpenReceiveData);
             };
             bluetoothHelper.OnConnectionFailed += (BluetoothHelper helper) =>
             {
@@ -139,7 +134,6 @@ public class BluetoothAim : MonoBehaviour
                 hasData = true;
                 byte[] bytes = value;
                 // Log(String.Join(",", bytes));
-                if (DebugForDevice.ins) DebugForDevice.ins.OnDataReceived(bytes);
                 BluetoothClient.UploadData(0, bytes);
                 if (AimHandler.ins)
                 {
@@ -176,11 +170,6 @@ public class BluetoothAim : MonoBehaviour
         }
     }
 
-    void OpenInfrared() {
-        WriteData("1");
-        Log("开启红外数据采集\n" + deviceName);
-    }
-
     void OpenReceiveData()
     {
         WriteData("3");

+ 15 - 1
Assets/BowArrow/Scripts/Bluetooth/ShootCheck.cs

@@ -21,7 +21,7 @@ public class ShootCheck : MonoBehaviour
     public static ShootCheck ins; 
     [SerializeField] InputField ipInputField = default;
     public WebSocket webSocket;
-    void Start()
+    void Awake()
     {
         ins = this;
     } 
@@ -323,6 +323,20 @@ public class ShootCheck : MonoBehaviour
         return false;
     }
 
+    public string ShootByInfrared(byte[] bytes) {
+        float time1 = ((bytes[5] << 8) + bytes[6]) * 0.1f;
+        float time2 = ((bytes[7] << 8) + bytes[8]) * 0.1f; 
+        float speed = 0.05f / (time1 / 1000 + time2 / 1000);
+        shootSpeed = Mathf.Sqrt(speed * speed * arrowWeight / LoginMgr.myUserInfo.actualArrowWeight);  
+        string logTxt = $"时长1:{time1}毫秒,时长2:{time2}毫秒,弓轨速度:{speed}m/s,箭的速度:{shootSpeed}m/s";
+        Debug.Log(logTxt);
+        try {
+            ShootCheck.ins.webSocket.Send(logTxt);
+        } catch (Exception) {}
+        if (ArmBow.ins) ArmBow.ins.ADS_fire();
+        return logTxt;
+    }
+
     void Dolock() 
     {
         locked = true;

+ 24 - 25
Assets/BowArrow/Scripts/Debug/DebugForDevice.cs

@@ -10,34 +10,33 @@ public class DebugForDevice : MonoBehaviour
 
     void Awake()
     {
-        ins = this;
-    }
-
-    public void OnDataReceived(byte[] bytes) {
-        if (bytes.Length != 27)
-        {
-            if (bytes.Length == 2) 
-            {
-                Log("T1", "原始电量", string.Join(",", bytes));
-                DeviceBatteryView.ins.RenderBattery(1, bytes[0]);
-                return;
-            }
-            if (bytes.Length >= 3 && bytes[2] == 5)
-            {
-                long time = bytes[8] + (bytes[7] << 8) + (bytes[6] << 16) + (bytes[5] << 24); 
-                Log("T2", "原始遮挡", string.Join(",", bytes));
-                Log("T3", "遮挡时间", time.ToString());
-                try {
-                    ShootCheck.ins.webSocket.Send(time.ToString());
-                } catch (Exception) {}
-            }
-            return;
+        if (ins) {
+            Destroy(this.gameObject);
         } else {
-            Log("T", "原始九轴", string.Join(",", bytes));
+            ins = this;
+            DontDestroyOnLoad(this.gameObject);
         }
     }
 
-    void Log(string nodeName, string title, string text) {
-        this.transform.Find(nodeName).GetComponentInChildren<Text>().text = title + ": " + text;
+    int tid = 0;
+    string[] logs = new string[3];
+
+    public void LogInfrared(byte[] bytes, string info) {
+        tid++;
+        string bytesLog = string.Join(", ", bytes);
+        string text = $"第{tid}波信息\n原始数据:{bytesLog}\n{info}\n\n";
+        if (tid <= logs.Length) {
+            logs[tid - 1] = text;
+        } else {
+            for (int i = 0; i < logs.Length - 1; i++) {
+                logs[i] = logs[i + 1];
+            }
+            logs[logs.Length - 1] = text;
+        }
+        string logInfo = "";
+        for (int i = 0; i < tid && i < logs.Length; i++) {
+            logInfo += logs[i];
+        }
+        this.transform.Find("T").GetComponentInChildren<Text>().text = logInfo;
     }
 }