Quellcode durchsuchen

1.添加Gun模式

slambb vor 1 Jahr
Ursprung
Commit
eb025982bc
57 geänderte Dateien mit 6409 neuen und 515 gelöschten Zeilen
  1. 85 0
      Assets/BowArrow/Models/jian_002/Material_bullet_003.mat
  2. 8 0
      Assets/BowArrow/Models/jian_002/Material_bullet_003.mat.meta
  3. 433 0
      Assets/BowArrow/Resources/Prefabs/Views/Home/DeviceView.prefab
  4. 1 1
      Assets/BowArrow/Resources/Prefabs/Views/Home/SmartArcheryView.prefab
  5. 1378 0
      Assets/BowArrow/Resources/Prefabs/Views/Home/SmartGunView.prefab
  6. 7 0
      Assets/BowArrow/Resources/Prefabs/Views/Home/SmartGunView.prefab.meta
  7. 531 104
      Assets/BowArrow/Resources/Textures/GameIcon/Prefabs/Views/Home/HomeView.prefab
  8. 964 67
      Assets/BowArrow/Scenes/Game.unity
  9. 1 0
      Assets/BowArrow/Scenes/Home.unity
  10. 3 0
      Assets/BowArrow/Scripts/Bluetooth/AimHandler.cs
  11. 0 3
      Assets/BowArrow/Scripts/CommonConfig.cs
  12. 21 4
      Assets/BowArrow/Scripts/Game/ArmBow.cs
  13. 153 76
      Assets/BowArrow/Scripts/Game/Arrow.cs
  14. 7 2
      Assets/BowArrow/Scripts/Game/GameAssistUI.cs
  15. 11 0
      Assets/BowArrow/Scripts/GlobalData.cs
  16. 13 6
      Assets/BowArrow/Scripts/View/Home/DeviceView.cs
  17. 66 24
      Assets/BowArrow/Scripts/View/Home/DeviceView_ItemShow.cs
  18. 15 0
      Assets/BowArrow/Scripts/View/Home/HomeView.cs
  19. 62 13
      Assets/BowArrow/Scripts/View/Home/HomeView_ChallengeOption.cs
  20. 50 4
      Assets/BowArrow/Scripts/View/Home/HomeView_TopBarView.cs
  21. 17 0
      Assets/BowArrow/Scripts/View/Home/ModeSelectView.cs
  22. 5 0
      Assets/BowArrow/Scripts/View/Home/SmartArcheryView.cs
  23. 112 0
      Assets/BowArrow/Scripts/View/Home/SmartGunView.cs
  24. 11 0
      Assets/BowArrow/Scripts/View/Home/SmartGunView.cs.meta
  25. BIN
      Assets/BowArrow/Textures/Device/gun_smart_1.png
  26. 147 0
      Assets/BowArrow/Textures/Device/gun_smart_1.png.meta
  27. BIN
      Assets/BowArrow/Textures/Device/iconSmartGunW.png
  28. 147 0
      Assets/BowArrow/Textures/Device/iconSmartGunW.png.meta
  29. 8 0
      Assets/BowArrow/Textures/Home/GunHit.meta
  30. BIN
      Assets/BowArrow/Textures/Home/GunHit/HIt2.png
  31. 147 0
      Assets/BowArrow/Textures/Home/GunHit/HIt2.png.meta
  32. BIN
      Assets/BowArrow/Textures/Home/GunHit/Hit1.png
  33. 147 0
      Assets/BowArrow/Textures/Home/GunHit/Hit1.png.meta
  34. BIN
      Assets/BowArrow/Textures/Home/TopBar/Top_Gun_E.png
  35. 147 0
      Assets/BowArrow/Textures/Home/TopBar/Top_Gun_E.png.meta
  36. 234 4
      Assets/DuckHunter/Prefabs/Animals/Duck.prefab
  37. 95 1
      Assets/DuckHunter/Scenes/DuckHunter.unity
  38. 4 0
      Assets/DuckHunter/Scripts/Duck.cs
  39. 7 0
      Assets/DuckHunter/Scripts/GameManager.cs
  40. 2 1
      Assets/DuckHunter/Scripts/GameUI.cs
  41. 76 0
      Assets/FruitMaster/Misc/Arrow/Black.mat
  42. 8 0
      Assets/FruitMaster/Misc/Arrow/Black.mat.meta
  43. 330 0
      Assets/FruitMaster/Misc/Arrow/Bullet.prefab
  44. 7 0
      Assets/FruitMaster/Misc/Arrow/Bullet.prefab.meta
  45. 118 0
      Assets/FruitMaster/Misc/Arrow/bulletHolePrefab.prefab
  46. 7 0
      Assets/FruitMaster/Misc/Arrow/bulletHolePrefab.prefab.meta
  47. 3 2
      Assets/FruitMaster/Scenes/FruitMaster.unity
  48. 74 4
      Assets/FruitMaster/Scripts/ArrowBehavior.cs
  49. 10 2
      Assets/FruitMaster/Scripts/GamingManager.cs
  50. 430 0
      Assets/InfraredProject/UVC4UnityAndroidPlugin/Samples/Scenes/UVC2DScene.unity
  51. 17 0
      Assets/InfraredProject/UVC4UnityAndroidPlugin/Scripts/AndroidUtils.cs
  52. 54 0
      Assets/InfraredProject/UVC4UnityAndroidPlugin/UITest.cs
  53. 5 1
      Assets/InfraredProject/WebCamera/Script/ZIM/ZIMUnity/ZIMWebCamera.cs
  54. 60 22
      Assets/InfraredProject/WebCamera/zimWebCamera.unity
  55. 9 5
      Assets/Plugins/Android/AndroidManifest.xml
  56. 76 2
      Assets/SmartBow/Scripts/Views/InfraredViewParts/InfraredScreenPositioningView.cs
  57. 86 167
      Assets/ThirdAssets/Standard Assets/Prototyping/Materials/YellowSmooth.mat

+ 85 - 0
Assets/BowArrow/Models/jian_002/Material_bullet_003.mat

@@ -0,0 +1,85 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+  serializedVersion: 8
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: Material_bullet_003
+  m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
+  m_ValidKeywords: []
+  m_InvalidKeywords:
+  - _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: 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}
+    - _SpecGlossMap:
+        m_Texture: {fileID: 2800000, guid: 7468f9d5210c28f4f96feda88ac8082d, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Ints: []
+    m_Floats:
+    - _BumpScale: 1
+    - _Cutoff: 0.5
+    - _DetailNormalMapScale: 1
+    - _DstBlend: 0
+    - _GlossMapScale: 0
+    - _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, g: 0, b: 0, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+  m_BuildTextureStacks: []

+ 8 - 0
Assets/BowArrow/Models/jian_002/Material_bullet_003.mat.meta

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

+ 433 - 0
Assets/BowArrow/Resources/Prefabs/Views/Home/DeviceView.prefab

@@ -848,6 +848,7 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children:
   - {fileID: 1306205756682678324}
+  - {fileID: 977412088016445003}
   m_Father: {fileID: 8146888902267481947}
   m_RootOrder: 2
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -1150,6 +1151,82 @@ MonoBehaviour:
   m_FillOrigin: 0
   m_UseSpriteMesh: 0
   m_PixelsPerUnitMultiplier: 1
+--- !u!1 &1526740579950329503
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 3880805027332591535}
+  - component: {fileID: 9008196943278533213}
+  - component: {fileID: 1785994591762451679}
+  m_Layer: 5
+  m_Name: arrow
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &3880805027332591535
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1526740579950329503}
+  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: 977412088016445003}
+  m_RootOrder: 2
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 22.28, y: 21.22}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &9008196943278533213
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1526740579950329503}
+  m_CullTransparentMesh: 1
+--- !u!114 &1785994591762451679
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1526740579950329503}
+  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.23137255, g: 0.23137255, b: 0.23137255, 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: 21300000, guid: 4fbbfb07446dfb242a8e092691cec7af, 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 &1530873253361505406
 GameObject:
   m_ObjectHideFlags: 0
@@ -3144,6 +3221,205 @@ MonoBehaviour:
   textKey: Connect_Device_Init
   layoutRebuildObject: {fileID: 0}
   languageFontSizes: []
+--- !u!1 &5026407601660329441
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 977412088016445003}
+  - component: {fileID: 6878015574366439107}
+  - component: {fileID: 3679993911359746072}
+  - component: {fileID: 5005575275530004226}
+  - component: {fileID: 9145482589887957568}
+  - component: {fileID: 1423710466794120685}
+  m_Layer: 5
+  m_Name: smartGunButton1
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &977412088016445003
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5026407601660329441}
+  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: 4800083729039867019}
+  - {fileID: 6610021023027613890}
+  - {fileID: 3880805027332591535}
+  m_Father: {fileID: 7822889146626897872}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 432, y: 124}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &6878015574366439107
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5026407601660329441}
+  m_CullTransparentMesh: 1
+--- !u!114 &3679993911359746072
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5026407601660329441}
+  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_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: 3d8b248a0c5c8064da7d90a778156b98, 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!114 &5005575275530004226
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5026407601660329441}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_WrapAround: 0
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 0
+  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: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 3679993911359746072}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls: []
+--- !u!114 &9145482589887957568
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5026407601660329441}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Padding:
+    m_Left: 10
+    m_Right: 10
+    m_Top: 0
+    m_Bottom: 0
+  m_ChildAlignment: 4
+  m_Spacing: 0
+  m_ChildForceExpandWidth: 1
+  m_ChildForceExpandHeight: 1
+  m_ChildControlWidth: 0
+  m_ChildControlHeight: 0
+  m_ChildScaleWidth: 0
+  m_ChildScaleHeight: 0
+  m_ReverseArrangement: 0
+--- !u!114 &1423710466794120685
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5026407601660329441}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 9041465d981afb74e8861a84f98f2dbd, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  targetRTF: {fileID: 0}
+  targetGraphic: {fileID: 0}
+  selectedColor: {r: 1, g: 1, b: 1, a: 0.6}
+  targetButton: {fileID: 0}
+  cellObj: {fileID: 0}
+  OnStartEvent:
+    m_PersistentCalls:
+      m_Calls:
+      - m_Target: {fileID: 2226893757493408886}
+        m_TargetAssemblyTypeName: DeviceView, Assembly-CSharp
+        m_MethodName: OnChangeSmartArcheryButtonState
+        m_Mode: 3
+        m_Arguments:
+          m_ObjectArgument: {fileID: 0}
+          m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+          m_IntArgument: 1
+          m_FloatArgument: 0
+          m_StringArgument: 
+          m_BoolArgument: 0
+        m_CallState: 2
+  OnEndEvent:
+    m_PersistentCalls:
+      m_Calls:
+      - m_Target: {fileID: 2226893757493408886}
+        m_TargetAssemblyTypeName: DeviceView, Assembly-CSharp
+        m_MethodName: OnChangeSmartArcheryButtonState
+        m_Mode: 3
+        m_Arguments:
+          m_ObjectArgument: {fileID: 0}
+          m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+          m_IntArgument: -1
+          m_FloatArgument: 0
+          m_StringArgument: 
+          m_BoolArgument: 0
+        m_CallState: 2
 --- !u!1 &5147671407072463914
 GameObject:
   m_ObjectHideFlags: 0
@@ -5627,6 +5903,86 @@ MonoBehaviour:
   m_FillOrigin: 0
   m_UseSpriteMesh: 0
   m_PixelsPerUnitMultiplier: 1
+--- !u!1 &8641936612435038213
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 6610021023027613890}
+  - component: {fileID: 6817185445471486949}
+  - component: {fileID: 3057502274704724305}
+  m_Layer: 5
+  m_Name: title
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &6610021023027613890
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8641936612435038213}
+  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: 977412088016445003}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 234, y: 124}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &6817185445471486949
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8641936612435038213}
+  m_CullTransparentMesh: 1
+--- !u!114 &3057502274704724305
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8641936612435038213}
+  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.23137255, g: 0.23137255, b: 0.23137255, 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: 12800000, guid: 6b6cc7ab59ef00947950b61fdca2d042, type: 3}
+    m_FontSize: 32
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 3
+    m_MaxSize: 40
+    m_Alignment: 4
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: Smart Gun
 --- !u!1 &8643905289019124202
 GameObject:
   m_ObjectHideFlags: 0
@@ -6154,6 +6510,7 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   smartArcheryButtons:
   - {fileID: 5918711544913229050}
+  - {fileID: 5005575275530004226}
   smartArcheryBg:
   - {fileID: 21300000, guid: 3d8b248a0c5c8064da7d90a778156b98, type: 3}
   - {fileID: 21300000, guid: 20e44fb2d7f166e41bc6db0c35362c24, type: 3}
@@ -6236,6 +6593,82 @@ MonoBehaviour:
   m_FillOrigin: 0
   m_UseSpriteMesh: 0
   m_PixelsPerUnitMultiplier: 1
+--- !u!1 &8697811525044652195
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4800083729039867019}
+  - component: {fileID: 7443475915959670130}
+  - component: {fileID: 2329238720230627107}
+  m_Layer: 5
+  m_Name: icon
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &4800083729039867019
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8697811525044652195}
+  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: 977412088016445003}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 60, y: 60}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &7443475915959670130
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8697811525044652195}
+  m_CullTransparentMesh: 1
+--- !u!114 &2329238720230627107
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8697811525044652195}
+  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.23137255, g: 0.23137255, b: 0.23137255, 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: 21300000, guid: ab63eb7db1cda2c47a9a5bb831dfabca, 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 &8728501130356627881
 GameObject:
   m_ObjectHideFlags: 0

+ 1 - 1
Assets/BowArrow/Resources/Prefabs/Views/Home/SmartArcheryView.prefab

@@ -1249,7 +1249,7 @@ MonoBehaviour:
         m_Arguments:
           m_ObjectArgument: {fileID: 0}
           m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
-          m_IntArgument: 2
+          m_IntArgument: 3
           m_FloatArgument: 0
           m_StringArgument: 
           m_BoolArgument: 0

+ 1378 - 0
Assets/BowArrow/Resources/Prefabs/Views/Home/SmartGunView.prefab

@@ -0,0 +1,1378 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &829613615845051617
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1306205756682678324}
+  - component: {fileID: 197694052669976451}
+  - component: {fileID: 1240299060731103982}
+  - component: {fileID: 5918711544913229050}
+  - component: {fileID: 6876638643627344091}
+  m_Layer: 5
+  m_Name: smartGunButton1
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1306205756682678324
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 829613615845051617}
+  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: 977491302068592118}
+  - {fileID: 797278027159423116}
+  m_Father: {fileID: 7822889146626897872}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &197694052669976451
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 829613615845051617}
+  m_CullTransparentMesh: 1
+--- !u!114 &1240299060731103982
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 829613615845051617}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 2100000, guid: 7d00fa0ace1d39e488d1340fc86fb1df, type: 2}
+  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_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!114 &5918711544913229050
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 829613615845051617}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_WrapAround: 0
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 0
+  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: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 1240299060731103982}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls: []
+--- !u!114 &6876638643627344091
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 829613615845051617}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 9041465d981afb74e8861a84f98f2dbd, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  targetRTF: {fileID: 0}
+  targetGraphic: {fileID: 0}
+  selectedColor: {r: 1, g: 1, b: 1, a: 0.6}
+  targetButton: {fileID: 0}
+  cellObj: {fileID: 0}
+  OnStartEvent:
+    m_PersistentCalls:
+      m_Calls:
+      - m_Target: {fileID: 3314307292652105149}
+        m_TargetAssemblyTypeName: SmartArcheryView, Assembly-CSharp
+        m_MethodName: OnChangeSmartArcheryButtonState
+        m_Mode: 3
+        m_Arguments:
+          m_ObjectArgument: {fileID: 0}
+          m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+          m_IntArgument: 0
+          m_FloatArgument: 0
+          m_StringArgument: 
+          m_BoolArgument: 0
+        m_CallState: 2
+  OnEndEvent:
+    m_PersistentCalls:
+      m_Calls:
+      - m_Target: {fileID: 3314307292652105149}
+        m_TargetAssemblyTypeName: SmartArcheryView, Assembly-CSharp
+        m_MethodName: OnChangeSmartArcheryButtonState
+        m_Mode: 3
+        m_Arguments:
+          m_ObjectArgument: {fileID: 0}
+          m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+          m_IntArgument: -1
+          m_FloatArgument: 0
+          m_StringArgument: 
+          m_BoolArgument: 0
+        m_CallState: 2
+--- !u!1 &1269557267540402333
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 7822889146626897872}
+  - component: {fileID: 6842539528014876729}
+  - component: {fileID: 7492745933678916962}
+  - component: {fileID: 3889979827857734059}
+  m_Layer: 5
+  m_Name: content
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &7822889146626897872
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1269557267540402333}
+  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: 1306205756682678324}
+  m_Father: {fileID: 8146888902267481947}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: -68}
+  m_SizeDelta: {x: 1544, y: 551}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &6842539528014876729
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1269557267540402333}
+  m_CullTransparentMesh: 1
+--- !u!114 &7492745933678916962
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1269557267540402333}
+  m_Enabled: 0
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0.9716981, 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_Sprite: {fileID: 0}
+  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!114 &3889979827857734059
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1269557267540402333}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 8a8695521f0d02e499659fee002a26c2, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Padding:
+    m_Left: 0
+    m_Right: 0
+    m_Top: 0
+    m_Bottom: 0
+  m_ChildAlignment: 0
+  m_StartCorner: 0
+  m_StartAxis: 0
+  m_CellSize: {x: 760, y: 124}
+  m_Spacing: {x: 24, y: 20}
+  m_Constraint: 0
+  m_ConstraintCount: 2
+--- !u!1 &4620655508745620914
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 2729919018057229681}
+  - component: {fileID: 2751393317025161550}
+  - component: {fileID: 4832261757421324426}
+  m_Layer: 0
+  m_Name: icon
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &2729919018057229681
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4620655508745620914}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1.3090456, y: 1.3090456, z: 0.90279}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 5558585036946217141}
+  m_RootOrder: 1
+  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: 4.2286987, y: 0}
+  m_SizeDelta: {x: 60, y: 60}
+  m_Pivot: {x: 0, y: 0.5}
+--- !u!222 &2751393317025161550
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4620655508745620914}
+  m_CullTransparentMesh: 0
+--- !u!114 &4832261757421324426
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4620655508745620914}
+  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, 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_Sprite: {fileID: 21300000, guid: ab63eb7db1cda2c47a9a5bb831dfabca, 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 &5984714011493610407
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 797278027159423116}
+  - component: {fileID: 68554702067300753}
+  m_Layer: 5
+  m_Name: right
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &797278027159423116
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5984714011493610407}
+  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: 7088244768143830368}
+  - {fileID: 5413958337647859712}
+  m_Father: {fileID: 1306205756682678324}
+  m_RootOrder: 1
+  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: -80, y: 62}
+  m_SizeDelta: {x: 260, y: 124}
+  m_Pivot: {x: 1, y: 1}
+--- !u!114 &68554702067300753
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5984714011493610407}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Padding:
+    m_Left: 0
+    m_Right: 0
+    m_Top: 0
+    m_Bottom: 0
+  m_ChildAlignment: 3
+  m_Spacing: 15
+  m_ChildForceExpandWidth: 0
+  m_ChildForceExpandHeight: 1
+  m_ChildControlWidth: 0
+  m_ChildControlHeight: 0
+  m_ChildScaleWidth: 1
+  m_ChildScaleHeight: 0
+  m_ReverseArrangement: 0
+--- !u!1 &6137852010418835481
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 977491302068592118}
+  - component: {fileID: 2549349486837578228}
+  - component: {fileID: 7180631451962057069}
+  m_Layer: 5
+  m_Name: icon
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &977491302068592118
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6137852010418835481}
+  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: 1306205756682678324}
+  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: 155, y: -59.91701}
+  m_SizeDelta: {x: 310, y: 120}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &2549349486837578228
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6137852010418835481}
+  m_CullTransparentMesh: 1
+--- !u!114 &7180631451962057069
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6137852010418835481}
+  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_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: dd0aef80ad6ee7549b6f829b2acc91b4, 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 &6391210431877790755
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 5413958337647859712}
+  - component: {fileID: 3537666683176016574}
+  - component: {fileID: 4250071499741725957}
+  m_Layer: 5
+  m_Name: arrow
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &5413958337647859712
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6391210431877790755}
+  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: 797278027159423116}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 28, y: 28}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &3537666683176016574
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6391210431877790755}
+  m_CullTransparentMesh: 1
+--- !u!114 &4250071499741725957
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6391210431877790755}
+  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_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: e1731412c7e5c2f43901569ae6db93b8, 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 &7222998956102884019
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 5558585036946217141}
+  m_Layer: 0
+  m_Name: title
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &5558585036946217141
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7222998956102884019}
+  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: 2874605479516318861}
+  - {fileID: 2729919018057229681}
+  m_Father: {fileID: 8677266362471276963}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: -808, y: 460}
+  m_SizeDelta: {x: 600, y: 73.30005}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!1 &7360663831917119848
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 7088244768143830368}
+  - component: {fileID: 7705419521167590662}
+  - component: {fileID: 3084611022527337909}
+  m_Layer: 5
+  m_Name: title
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &7088244768143830368
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7360663831917119848}
+  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: 797278027159423116}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 234, y: 124}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &7705419521167590662
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7360663831917119848}
+  m_CullTransparentMesh: 1
+--- !u!114 &3084611022527337909
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7360663831917119848}
+  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: 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: 12800000, guid: 6b6cc7ab59ef00947950b61fdca2d042, type: 3}
+    m_FontSize: 32
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 3
+    m_MaxSize: 40
+    m_Alignment: 5
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: Gun
+--- !u!1 &8677266361160975224
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 8677266361160975225}
+  - component: {fileID: 8677266361160975228}
+  - component: {fileID: 8677266361160975227}
+  m_Layer: 0
+  m_Name: Btn
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &8677266361160975225
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8677266361160975224}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1.45, y: 1.45, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 8677266361696092476}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: -82.6, y: 0}
+  m_SizeDelta: {x: 25.64, y: 29.7}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &8677266361160975228
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8677266361160975224}
+  m_CullTransparentMesh: 0
+--- !u!114 &8677266361160975227
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8677266361160975224}
+  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: 0
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: 194d4e52ad2cafd41b1c65be597a72de, 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 &8677266361696092475
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 8677266361696092476}
+  - component: {fileID: 5847324503461343397}
+  - component: {fileID: 859834719340558410}
+  - component: {fileID: 931663663287474085}
+  m_Layer: 0
+  m_Name: Back
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &8677266361696092476
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8677266361696092475}
+  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: 8677266362401961738}
+  - {fileID: 8677266361160975225}
+  m_Father: {fileID: 8677266362471276963}
+  m_RootOrder: 2
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 1009, y: 460}
+  m_SizeDelta: {x: 290, y: 50}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &5847324503461343397
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8677266361696092475}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_WrapAround: 0
+    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: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 8677266361160975227}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls:
+      - m_Target: {fileID: 3314307292652105149}
+        m_TargetAssemblyTypeName: SmartGunView, Assembly-CSharp
+        m_MethodName: OnClick_Back
+        m_Mode: 1
+        m_Arguments:
+          m_ObjectArgument: {fileID: 0}
+          m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+          m_IntArgument: 0
+          m_FloatArgument: 0
+          m_StringArgument: 
+          m_BoolArgument: 0
+        m_CallState: 2
+--- !u!222 &859834719340558410
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8677266361696092475}
+  m_CullTransparentMesh: 1
+--- !u!114 &931663663287474085
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8677266361696092475}
+  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: 0}
+  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: 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 &8677266362401961737
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 8677266362401961738}
+  - component: {fileID: 8677266362401961741}
+  - component: {fileID: 8677266362401961740}
+  - component: {fileID: 8479888924388565833}
+  m_Layer: 0
+  m_Name: Text
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &8677266362401961738
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8677266362401961737}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1.32, y: 1.32, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 8677266361696092476}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: -27.4, y: 0}
+  m_SizeDelta: {x: 160, y: 40}
+  m_Pivot: {x: 0, y: 0.5}
+--- !u!222 &8677266362401961741
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8677266362401961737}
+  m_CullTransparentMesh: 0
+--- !u!114 &8677266362401961740
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8677266362401961737}
+  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: 0, b: 0, a: 1}
+  m_RaycastTarget: 0
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_FontData:
+    m_Font: {fileID: 12800000, guid: 6b6cc7ab59ef00947950b61fdca2d042, type: 3}
+    m_FontSize: 35
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 2
+    m_MaxSize: 40
+    m_Alignment: 3
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 1
+    m_LineSpacing: 1
+  m_Text: Back
+--- !u!114 &8479888924388565833
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8677266362401961737}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 0f4efe98aab6c6b41a7ee1f4c49df27b, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  textKey: common_return
+  layoutRebuildObject: {fileID: 0}
+  languageFontSizes: []
+--- !u!1 &8677266362471276989
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 8677266362471276963}
+  - component: {fileID: 8677266362471276962}
+  - component: {fileID: 8677266362471276961}
+  - component: {fileID: 8677266362471276960}
+  - component: {fileID: 3314307292652105149}
+  m_Layer: 5
+  m_Name: SmartGunView
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &8677266362471276963
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8677266362471276989}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 0, y: 0, z: 0}
+  m_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 8677266362914771146}
+  - {fileID: 5558585036946217141}
+  - {fileID: 8677266361696092476}
+  - {fileID: 8146888902267481947}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0, y: 0}
+--- !u!223 &8677266362471276962
+Canvas:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8677266362471276989}
+  m_Enabled: 1
+  serializedVersion: 3
+  m_RenderMode: 0
+  m_Camera: {fileID: 0}
+  m_PlaneDistance: 100
+  m_PixelPerfect: 0
+  m_ReceivesEvents: 1
+  m_OverrideSorting: 0
+  m_OverridePixelPerfect: 0
+  m_SortingBucketNormalizedSize: 0
+  m_AdditionalShaderChannelsFlag: 0
+  m_SortingLayerID: 0
+  m_SortingOrder: 1
+  m_TargetDisplay: 0
+--- !u!114 &8677266362471276961
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8677266362471276989}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_UiScaleMode: 1
+  m_ReferencePixelsPerUnit: 100
+  m_ScaleFactor: 1
+  m_ReferenceResolution: {x: 2532, y: 1170}
+  m_ScreenMatchMode: 0
+  m_MatchWidthOrHeight: 0
+  m_PhysicalUnit: 3
+  m_FallbackScreenDPI: 96
+  m_DefaultSpriteDPI: 96
+  m_DynamicPixelsPerUnit: 1
+  m_PresetInfoIsWorld: 0
+--- !u!114 &8677266362471276960
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8677266362471276989}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_IgnoreReversedGraphics: 1
+  m_BlockingObjects: 0
+  m_BlockingMask:
+    serializedVersion: 2
+    m_Bits: 4294967295
+--- !u!114 &3314307292652105149
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8677266362471276989}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5eef038e7b2c3c5498967bd4f5f9b1f4, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  smartArcheryButtons:
+  - {fileID: 5918711544913229050}
+  arrowImages:
+  - {fileID: 21300000, guid: e1731412c7e5c2f43901569ae6db93b8, type: 3}
+  - {fileID: 21300000, guid: 323aff41d7c659e4aa259a60ef819a9c, type: 3}
+  lineMaterial: {fileID: 2100000, guid: 7d00fa0ace1d39e488d1340fc86fb1df, type: 2}
+--- !u!1 &8677266362914771145
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 8677266362914771146}
+  - component: {fileID: 8677266362914771148}
+  - component: {fileID: 8677266362914771147}
+  - component: {fileID: 549105077593503037}
+  m_Layer: 5
+  m_Name: BG
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &8677266362914771146
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8677266362914771145}
+  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: 8677266362471276963}
+  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: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &8677266362914771148
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8677266362914771145}
+  m_CullTransparentMesh: 0
+--- !u!114 &8677266362914771147
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8677266362914771145}
+  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_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 0}
+  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!114 &549105077593503037
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8677266362914771145}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e2c0d2a713667d4d80bc317af1d4aea, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+--- !u!1 &8768998982485598618
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 2874605479516318861}
+  - component: {fileID: 9170237829049141499}
+  - component: {fileID: 3496798560382340890}
+  m_Layer: 0
+  m_Name: Text
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &2874605479516318861
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8768998982485598618}
+  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: 5558585036946217141}
+  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: 113, y: 0}
+  m_SizeDelta: {x: 305, y: 40}
+  m_Pivot: {x: 0, y: 0.5}
+--- !u!222 &9170237829049141499
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8768998982485598618}
+  m_CullTransparentMesh: 0
+--- !u!114 &3496798560382340890
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8768998982485598618}
+  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: 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: 12800000, guid: 6b6cc7ab59ef00947950b61fdca2d042, type: 3}
+    m_FontSize: 42
+    m_FontStyle: 1
+    m_BestFit: 0
+    m_MinSize: 2
+    m_MaxSize: 48
+    m_Alignment: 3
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 1
+    m_VerticalOverflow: 1
+    m_LineSpacing: 1
+  m_Text: Smart Gun
+--- !u!1 &9222168600980044169
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 8146888902267481947}
+  - component: {fileID: 5092413145572670187}
+  - component: {fileID: 7089574619082461933}
+  - component: {fileID: 5957528488871061508}
+  m_Layer: 5
+  m_Name: modalButtons
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &8146888902267481947
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 9222168600980044169}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1.3, y: 1.3, z: 1.3}
+  m_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 7822889146626897872}
+  m_Father: {fileID: 8677266362471276963}
+  m_RootOrder: 3
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: -66}
+  m_SizeDelta: {x: 1544, y: 700}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &5092413145572670187
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 9222168600980044169}
+  m_CullTransparentMesh: 0
+--- !u!114 &7089574619082461933
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 9222168600980044169}
+  m_Enabled: 0
+  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: 0
+  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!114 &5957528488871061508
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 9222168600980044169}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: e19747de3f5aca642ab2be37e372fb86, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_EffectColor: {r: 0.23137255, g: 0.23137255, b: 0.23137255, a: 1}
+  m_EffectDistance: {x: 1.5, y: -1}
+  m_UseGraphicAlpha: 1

+ 7 - 0
Assets/BowArrow/Resources/Prefabs/Views/Home/SmartGunView.prefab.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: cffeee2530400334596f35d0b1973531
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 531 - 104
Assets/BowArrow/Resources/Textures/GameIcon/Prefabs/Views/Home/HomeView.prefab

@@ -11,7 +11,6 @@ GameObject:
   - component: {fileID: 7635590709578611834}
   - component: {fileID: 7916853155969292078}
   - component: {fileID: 6185381431329604111}
-  - component: {fileID: 8751567790615477038}
   m_Layer: 5
   m_Name: Icon
   m_TagString: Untagged
@@ -31,13 +30,13 @@ RectTransform:
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children: []
-  m_Father: {fileID: 4839962756179813263}
+  m_Father: {fileID: 3618991845368404896}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
   m_AnchoredPosition: {x: 0, y: 0}
-  m_SizeDelta: {x: 64, y: 0}
+  m_SizeDelta: {x: 64, y: 64}
   m_Pivot: {x: 1, y: 1}
 --- !u!222 &7916853155969292078
 CanvasRenderer:
@@ -77,50 +76,6 @@ MonoBehaviour:
   m_FillOrigin: 0
   m_UseSpriteMesh: 0
   m_PixelsPerUnitMultiplier: 1
---- !u!114 &8751567790615477038
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 13361007459293138}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  m_Navigation:
-    m_Mode: 3
-    m_WrapAround: 0
-    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: Selected
-    m_DisabledTrigger: Disabled
-  m_Interactable: 1
-  m_TargetGraphic: {fileID: 6185381431329604111}
-  m_OnClick:
-    m_PersistentCalls:
-      m_Calls: []
 --- !u!1 &20887536445509253
 GameObject:
   m_ObjectHideFlags: 0
@@ -993,6 +948,128 @@ MonoBehaviour:
   m_FillOrigin: 0
   m_UseSpriteMesh: 0
   m_PixelsPerUnitMultiplier: 1
+--- !u!1 &591583031203994979
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 7404057897694178295}
+  - component: {fileID: 6710924093500426282}
+  - component: {fileID: 6262855779688388639}
+  m_Layer: 5
+  m_Name: Gun
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &7404057897694178295
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 591583031203994979}
+  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: 995915755590373727}
+  - {fileID: 5132735572607032409}
+  m_Father: {fileID: 938191615488031508}
+  m_RootOrder: 2
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 280, y: 64}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &6710924093500426282
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 591583031203994979}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_WrapAround: 0
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 0
+  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: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 0}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls:
+      - m_Target: {fileID: 6026167828061949870}
+        m_TargetAssemblyTypeName: HomeView_TopBarView, Assembly-CSharp
+        m_MethodName: onChangeType
+        m_Mode: 3
+        m_Arguments:
+          m_ObjectArgument: {fileID: 0}
+          m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+          m_IntArgument: 1
+          m_FloatArgument: 0
+          m_StringArgument: 
+          m_BoolArgument: 0
+        m_CallState: 2
+--- !u!114 &6262855779688388639
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 591583031203994979}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Padding:
+    m_Left: 0
+    m_Right: 0
+    m_Top: 0
+    m_Bottom: 0
+  m_ChildAlignment: 1
+  m_Spacing: 5
+  m_ChildForceExpandWidth: 1
+  m_ChildForceExpandHeight: 1
+  m_ChildControlWidth: 0
+  m_ChildControlHeight: 0
+  m_ChildScaleWidth: 0
+  m_ChildScaleHeight: 0
+  m_ReverseArrangement: 0
 --- !u!1 &834433657201557836
 GameObject:
   m_ObjectHideFlags: 0
@@ -1909,6 +1986,71 @@ MonoBehaviour:
           m_StringArgument: "\u5546\u57CE"
           m_BoolArgument: 0
         m_CallState: 2
+--- !u!1 &1821814009887640683
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 995915755590373727}
+  - component: {fileID: 4336515953859737650}
+  m_Layer: 5
+  m_Name: GameObject
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &995915755590373727
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1821814009887640683}
+  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: 1949359154479949481}
+  - {fileID: 1759012458375303786}
+  m_Father: {fileID: 7404057897694178295}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 169.07, y: 64}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &4336515953859737650
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1821814009887640683}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Padding:
+    m_Left: 0
+    m_Right: 0
+    m_Top: 0
+    m_Bottom: 0
+  m_ChildAlignment: 4
+  m_Spacing: 15
+  m_ChildForceExpandWidth: 1
+  m_ChildForceExpandHeight: 1
+  m_ChildControlWidth: 0
+  m_ChildControlHeight: 0
+  m_ChildScaleWidth: 0
+  m_ChildScaleHeight: 0
+  m_ReverseArrangement: 0
 --- !u!1 &1839356039376034384
 GameObject:
   m_ObjectHideFlags: 0
@@ -2100,7 +2242,7 @@ RectTransform:
   - {fileID: 7050645567100379340}
   - {fileID: 1635542647350307396}
   m_Father: {fileID: 938191615488031508}
-  m_RootOrder: 4
+  m_RootOrder: 5
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 0, y: 1}
@@ -3398,6 +3540,71 @@ MonoBehaviour:
   OnEndEvent:
     m_PersistentCalls:
       m_Calls: []
+--- !u!1 &3405687114444825116
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 3618991845368404896}
+  - component: {fileID: 593422074888378914}
+  m_Layer: 5
+  m_Name: GameObject
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &3618991845368404896
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3405687114444825116}
+  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: 7635590709578611834}
+  - {fileID: 6776201809675197568}
+  m_Father: {fileID: 4839962756179813263}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 197, y: 64}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &593422074888378914
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3405687114444825116}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Padding:
+    m_Left: 0
+    m_Right: 0
+    m_Top: 0
+    m_Bottom: 0
+  m_ChildAlignment: 4
+  m_Spacing: 15
+  m_ChildForceExpandWidth: 1
+  m_ChildForceExpandHeight: 1
+  m_ChildControlWidth: 0
+  m_ChildControlHeight: 0
+  m_ChildScaleWidth: 0
+  m_ChildScaleHeight: 0
+  m_ReverseArrangement: 0
 --- !u!1 &3436198305830861175
 GameObject:
   m_ObjectHideFlags: 0
@@ -3823,9 +4030,89 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 0, y: 1}
-  m_AnchoredPosition: {x: 20.425, y: -32}
-  m_SizeDelta: {x: 40.85, y: 64}
+  m_AnchoredPosition: {x: 97.425, y: -17.5}
+  m_SizeDelta: {x: 40.85, y: 35}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!1 &3685214252367532556
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1759012458375303786}
+  - component: {fileID: 8635457190890758356}
+  - component: {fileID: 5962195288569315385}
+  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 &1759012458375303786
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3685214252367532556}
+  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: 995915755590373727}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 115, y: 38}
   m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &8635457190890758356
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3685214252367532556}
+  m_CullTransparentMesh: 1
+--- !u!114 &5962195288569315385
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3685214252367532556}
+  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: 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: 12800000, guid: 6b6cc7ab59ef00947950b61fdca2d042, type: 3}
+    m_FontSize: 32
+    m_FontStyle: 1
+    m_BestFit: 0
+    m_MinSize: 3
+    m_MaxSize: 40
+    m_Alignment: 3
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 1
+    m_VerticalOverflow: 1
+    m_LineSpacing: 1
+  m_Text: Gun
 --- !u!1 &3723336913283526395
 GameObject:
   m_ObjectHideFlags: 0
@@ -6953,13 +7240,13 @@ RectTransform:
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children: []
-  m_Father: {fileID: 4839962756179813263}
+  m_Father: {fileID: 3618991845368404896}
   m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
   m_AnchoredPosition: {x: 0, y: 0}
-  m_SizeDelta: {x: 115, y: 0}
+  m_SizeDelta: {x: 115, y: 38}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &8476607743844823512
 CanvasRenderer:
@@ -7346,8 +7633,8 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 0, y: 1}
-  m_AnchoredPosition: {x: 20.425, y: -32}
-  m_SizeDelta: {x: 40.85, y: 64}
+  m_AnchoredPosition: {x: 32.475, y: -17.5}
+  m_SizeDelta: {x: 40.85, y: 35}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!1 &5937551394969713783
 GameObject:
@@ -8125,6 +8412,82 @@ MonoBehaviour:
   m_FillOrigin: 0
   m_UseSpriteMesh: 0
   m_PixelsPerUnitMultiplier: 1
+--- !u!1 &6697194455845217079
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1949359154479949481}
+  - component: {fileID: 8321661957440158006}
+  - component: {fileID: 2737664883590222348}
+  m_Layer: 5
+  m_Name: Icon
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1949359154479949481
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6697194455845217079}
+  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: 995915755590373727}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 92.75, y: 58}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &8321661957440158006
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6697194455845217079}
+  m_CullTransparentMesh: 1
+--- !u!114 &2737664883590222348
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6697194455845217079}
+  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.1882353, g: 0.22352941, b: 0.22352941, 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: 21300000, guid: 2bd66876c98b2f041be9253e22bbf890, 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 &6930050602931686743
 GameObject:
   m_ObjectHideFlags: 0
@@ -8345,6 +8708,8 @@ MonoBehaviour:
   betteryBar: {fileID: 8727220358812978719}
   bettery2: {fileID: 3648338180940693502}
   betteryBar2: {fileID: 9095866763542118473}
+  challengeOption: {fileID: 4655741008219191302}
+  topBarView: {fileID: 6026167828061949870}
 --- !u!114 &4372245170447072890
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -8391,12 +8756,12 @@ RectTransform:
   - {fileID: 7192919968806249490}
   - {fileID: 4796111718827584554}
   m_Father: {fileID: 4839962756179813263}
-  m_RootOrder: 2
+  m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
   m_AnchoredPosition: {x: 0, y: 0}
-  m_SizeDelta: {x: 0, y: 0}
+  m_SizeDelta: {x: 129.9, y: 35}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &2436887899999841951
 MonoBehaviour:
@@ -8415,8 +8780,8 @@ MonoBehaviour:
     m_Right: 0
     m_Top: 0
     m_Bottom: 0
-  m_ChildAlignment: 0
-  m_Spacing: 20
+  m_ChildAlignment: 1
+  m_Spacing: 0
   m_ChildForceExpandWidth: 1
   m_ChildForceExpandHeight: 1
   m_ChildControlWidth: 0
@@ -9452,6 +9817,69 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   m_ShowMaskGraphic: 0
+--- !u!1 &7872566420867088462
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 5132735572607032409}
+  - component: {fileID: 8728323706578182832}
+  m_Layer: 5
+  m_Name: container
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &5132735572607032409
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7872566420867088462}
+  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: 7404057897694178295}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 129.9, y: 35}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &8728323706578182832
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7872566420867088462}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Padding:
+    m_Left: 0
+    m_Right: 0
+    m_Top: 0
+    m_Bottom: 0
+  m_ChildAlignment: 1
+  m_Spacing: 0
+  m_ChildForceExpandWidth: 1
+  m_ChildForceExpandHeight: 1
+  m_ChildControlWidth: 0
+  m_ChildControlHeight: 0
+  m_ChildScaleWidth: 0
+  m_ChildScaleHeight: 0
+  m_ReverseArrangement: 0
 --- !u!1 &7926508983460397146
 GameObject:
   m_ObjectHideFlags: 0
@@ -9564,6 +9992,7 @@ RectTransform:
   m_Children:
   - {fileID: 6525939131932581280}
   - {fileID: 4839962756179813263}
+  - {fileID: 7404057897694178295}
   - {fileID: 1961138700135439606}
   - {fileID: 5302285146534373922}
   - {fileID: 6183938797039279499}
@@ -9573,7 +10002,7 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0.5}
   m_AnchorMax: {x: 1, y: 0.5}
-  m_AnchoredPosition: {x: 0, y: 330}
+  m_AnchoredPosition: {x: 0, y: 350}
   m_SizeDelta: {x: 0, y: 0}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &6026167828061949870
@@ -9583,7 +10012,7 @@ MonoBehaviour:
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 8033537982446274309}
-  m_Enabled: 0
+  m_Enabled: 1
   m_EditorHideFlags: 0
   m_Script: {fileID: 11500000, guid: 4e6d6e99276fca0428acb704ac2bec46, type: 3}
   m_Name: 
@@ -9593,18 +10022,17 @@ MonoBehaviour:
     Icon: {fileID: 6185381431329604111}
     text: {fileID: 1231667142621639811}
     selected: 0
-  - Name: Baseball
-    Icon: {fileID: 5024968490950513304}
-    text: {fileID: 1440545382241574549}
-    selected: 0
-  - Name: Golf
-    Icon: {fileID: 6886468078980274181}
-    text: {fileID: 6540726487778149888}
-    selected: 0
-  - Name: Skiing
-    Icon: {fileID: 1443669910677958507}
-    text: {fileID: 5537899152148631175}
+    deviceMode: 0
+    container: {fileID: 7072865912177729363}
+  - Name: Gun
+    Icon: {fileID: 2737664883590222348}
+    text: {fileID: 5962195288569315385}
     selected: 0
+    deviceMode: 1
+    container: {fileID: 7872566420867088462}
+  onChangeTypeEvent:
+    m_PersistentCalls:
+      m_Calls: []
 --- !u!114 &3247980483528710547
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -9623,7 +10051,7 @@ MonoBehaviour:
     m_Top: 0
     m_Bottom: 0
   m_ChildAlignment: 4
-  m_Spacing: 132.9
+  m_Spacing: 41.3
   m_ChildForceExpandWidth: 0
   m_ChildForceExpandHeight: 0
   m_ChildControlWidth: 0
@@ -9773,7 +10201,7 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 938191615488031508}
-  m_RootOrder: 2
+  m_RootOrder: 3
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
@@ -10085,7 +10513,7 @@ RectTransform:
   - {fileID: 4966016348955603286}
   - {fileID: 8265516678866832237}
   m_Father: {fileID: 938191615488031508}
-  m_RootOrder: 3
+  m_RootOrder: 4
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 0, y: 1}
@@ -10633,7 +11061,7 @@ RectTransform:
   - {fileID: 2530322073199105276}
   - {fileID: 7389809517324113080}
   m_Father: {fileID: 938191615488031508}
-  m_RootOrder: 5
+  m_RootOrder: 6
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 0, y: 1}
@@ -10731,8 +11159,8 @@ GameObject:
   serializedVersion: 6
   m_Component:
   - component: {fileID: 4839962756179813263}
-  - component: {fileID: 7300170847075730451}
   - component: {fileID: 229394950612134461}
+  - component: {fileID: 3633861494589275952}
   m_Layer: 5
   m_Name: Archery
   m_TagString: Untagged
@@ -10752,8 +11180,7 @@ RectTransform:
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children:
-  - {fileID: 7635590709578611834}
-  - {fileID: 6776201809675197568}
+  - {fileID: 3618991845368404896}
   - {fileID: 4497784796852065306}
   m_Father: {fileID: 938191615488031508}
   m_RootOrder: 1
@@ -10763,32 +11190,6 @@ RectTransform:
   m_AnchoredPosition: {x: 0, y: 0}
   m_SizeDelta: {x: 280, y: 64}
   m_Pivot: {x: 0.5, y: 0.5}
---- !u!114 &7300170847075730451
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 9023540168179802064}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  m_Padding:
-    m_Left: 0
-    m_Right: 0
-    m_Top: 0
-    m_Bottom: 0
-  m_ChildAlignment: 3
-  m_Spacing: -20.85
-  m_ChildForceExpandWidth: 1
-  m_ChildForceExpandHeight: 0
-  m_ChildControlWidth: 0
-  m_ChildControlHeight: 1
-  m_ChildScaleWidth: 0
-  m_ChildScaleHeight: 0
-  m_ReverseArrangement: 0
 --- !u!114 &229394950612134461
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -10845,6 +11246,32 @@ MonoBehaviour:
           m_StringArgument: 
           m_BoolArgument: 0
         m_CallState: 2
+--- !u!114 &3633861494589275952
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 9023540168179802064}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Padding:
+    m_Left: 0
+    m_Right: 0
+    m_Top: 0
+    m_Bottom: 0
+  m_ChildAlignment: 1
+  m_Spacing: 5
+  m_ChildForceExpandWidth: 1
+  m_ChildForceExpandHeight: 1
+  m_ChildControlWidth: 0
+  m_ChildControlHeight: 0
+  m_ChildScaleWidth: 0
+  m_ChildScaleHeight: 0
+  m_ReverseArrangement: 0
 --- !u!1 &9034309437533279921
 GameObject:
   m_ObjectHideFlags: 0

Datei-Diff unterdrückt, da er zu groß ist
+ 964 - 67
Assets/BowArrow/Scenes/Game.unity


+ 1 - 0
Assets/BowArrow/Scenes/Home.unity

@@ -376,3 +376,4 @@ MonoBehaviour:
   - {fileID: 6595816668111530942, guid: f37b8f8d8d431ce458a873b28198ff13, type: 3}
   - {fileID: 8677266362471276989, guid: eebedb5d9d3cd70459707f0db909bfa3, type: 3}
   - {fileID: 8677266362471276989, guid: 470a50aaa6074ef40acce9f86ce4de09, type: 3}
+  - {fileID: 8677266362471276989, guid: cffeee2530400334596f35d0b1973531, type: 3}

+ 3 - 0
Assets/BowArrow/Scripts/Bluetooth/AimHandler.cs

@@ -9,6 +9,9 @@ public enum AimDeviceType {
     HOUYI2 = 1,
     ARTEMIS = 2,
     HOUYIPRO = 3,
+
+    //枪械类
+    Gun = 4,
 }
 
 

+ 0 - 3
Assets/BowArrow/Scripts/CommonConfig.cs

@@ -20,9 +20,6 @@ public class CommonConfig
 #endif
 #if UNITY_ANDROID
             int index = Application.identifier == "com.xmjssvr.BowArrow.mi" ? 0 : 1;//海外版 com.xmjssvr.BowArrowEn
-#endif
-#if UNITY_EDITOR
-            int index = 0;
 #endif
             if (index == 0) return 0;
             else return 1;

+ 21 - 4
Assets/BowArrow/Scripts/Game/ArmBow.cs

@@ -8,6 +8,7 @@ public class ArmBow : MonoBehaviour
     [SerializeField] AnimationPlayer AP_arm;
     [SerializeField] AnimationPlayer AP_bow;
     [SerializeField] public GameObject arrow;
+    [SerializeField] GameObject bullet;
 
 
     [SerializeField] GameObject armObj;
@@ -122,6 +123,13 @@ public class ArmBow : MonoBehaviour
         shootBackTime = new int[]{0, 2, 5}[currentShootLevel];
         shootOffsetAngleScale = new float[]{0, 10f, 10f}[currentShootLevel];
 
+        //不同模式下设置速度,用于调整射击间隔
+        if (GlobalData.MyDeviceMode == DeviceMode.Gun)
+        {
+            AP_arm.speed = 20;
+            AP_bow.speed = 20;
+        }
+
         //根据 hideInfraredBowAndArrow 判断是否显示隐藏
         if (PlayerPrefs.HasKey("hideInfraredBowAndArrow") && PlayerPrefs.GetInt("hideInfraredBowAndArrow") != 0) {
             armObj.SetActive(false);
@@ -130,9 +138,18 @@ public class ArmBow : MonoBehaviour
             PlayerPrefs.SetInt("hideInfraredBowAndArrow", 2);
         }
         else {
+            //枪模式下隐藏手臂等
+            if (GlobalData.MyDeviceMode == DeviceMode.Gun)
+            {
+                armObj.SetActive(false);
+                bowObj.SetActive(false);
 
-            armObj.SetActive(UserSettings.ins.openBowAndArrow);
-            bowObj.SetActive(UserSettings.ins.openBowAndArrow);
+                AP_arm.speed = 10;
+            }
+            else {
+                armObj.SetActive(UserSettings.ins.openBowAndArrow);
+                bowObj.SetActive(UserSettings.ins.openBowAndArrow);
+            }
         }
     }
 
@@ -208,8 +225,8 @@ public class ArmBow : MonoBehaviour
         Vector3 shootOutPosition = this.bowCamera.transform.position;
         Vector3 arrowEuler = absolute_rotation.eulerAngles;
         arrowEuler.z = 0; //绝对角可能是从原始九轴记录数组里取出来的,它的z可能不是0
-        GameObject arrowCopy = GameObject.Instantiate(this.arrow, shootOutPosition, Quaternion.Euler(arrowEuler));
-
+        GameObject arrowCopy = Instantiate(GlobalData.MyDeviceMode == DeviceMode.Archery? arrow : bullet, shootOutPosition, Quaternion.Euler(arrowEuler));
+        arrowCopy.SetActive(true);
         Vector3 s1 = arrowCopy.transform.localScale;
         Vector3 s2 = bowCamera.transform.localScale;
         arrowCopy.transform.localScale = new Vector3(s1.x * s2.x, s1.y * s2.y, s1.z * s2.z);

+ 153 - 76
Assets/BowArrow/Scripts/Game/Arrow.cs

@@ -5,7 +5,7 @@ using UnityEngine;
 using DG.Tweening;
 /* 箭对象 */
 public class Arrow : MonoBehaviour
-{   
+{
     //飞行时间统计
     [NonSerialized] public float flyTime = 0;
     //标识—是否击中了什么
@@ -17,16 +17,16 @@ public class Arrow : MonoBehaviour
 
     //箭射出时从弓传过来的参数
     #region 
-        //手臂弓
-        [NonSerialized] public ArmBow armBow;
-        //射出时的起始坐标
-        [NonSerialized] public Vector3 shootOutPosition;
-        //绝对射线
-        [NonSerialized] public RaycastHit absoluteRay;
-        //制作误差偏移角(强行制造误差,为了增加游戏难度,该偏移角的大小根据难度而定)
-        [NonSerialized] public float offsetAngle;
-        //误差偏移后的欧拉角
-        [NonSerialized] public Vector3 finalAngleAfterOffset;
+    //手臂弓
+    [NonSerialized] public ArmBow armBow;
+    //射出时的起始坐标
+    [NonSerialized] public Vector3 shootOutPosition;
+    //绝对射线
+    [NonSerialized] public RaycastHit absoluteRay;
+    //制作误差偏移角(强行制造误差,为了增加游戏难度,该偏移角的大小根据难度而定)
+    [NonSerialized] public float offsetAngle;
+    //误差偏移后的欧拉角
+    [NonSerialized] public Vector3 finalAngleAfterOffset;
     #endregion
 
     //射线击中的靶子
@@ -48,7 +48,8 @@ public class Arrow : MonoBehaviour
         this.transform.Find("Head/_hunse_jian").gameObject.layer = 0;
     }
 
-    void OnDestroy() {
+    void OnDestroy()
+    {
         arrowSet.Remove(this);
         if (GameMgr.ins) GameMgr.ins.gameMode.ResumeTimeCounting(this);
     }
@@ -58,34 +59,51 @@ public class Arrow : MonoBehaviour
         mySpeed = speed;
 
         Billboard.ins?.SetArrowSpeed(speed);
-        if (GameAssistUI.ins) {
+        if (GameAssistUI.ins)
+        {
             mySpeed *= GameAssistUI.ins.shootScaleValue;
             Billboard.ins?.SetArrowSpeedScale(GameAssistUI.ins.shootScaleValue);
         }
         Billboard.ins?.ShowSpeed();
-        if (GlobalData.pkMatchType == PKMatchType.OnlinePK) {
-            if (GameMgr.gameType == 9) {
+        if (GlobalData.pkMatchType == PKMatchType.OnlinePK)
+        {
+            if (GameMgr.gameType == 9)
+            {
                 ((PKGameMode_OnlinePK)GameMgr.ins.gameMode).shootSpeedWillSend = Billboard.ins.GetShootSpeedText();
             }
         }
 
-        if (absoluteRay.transform) {
+        if (absoluteRay.transform)
+        {
             //记录射线有没有击中靶子
             rayHitTargetBody = absoluteRay.transform.GetComponent<TargetBody>();
             //把瞄准点画成红圈,渲染在靶子上
-            if (rayHitTargetBody) {
+            if (rayHitTargetBody)
+            {
+                //string typeStr = GlobalData.MyDeviceMode == DeviceMode.Archery? "RedCircle":"BulletCircle";
                 Transform redCircle = rayHitTargetBody.transform.Find("RedCircle");
                 redCircle.gameObject.SetActive(true);
                 redCircle.transform.position = -redCircle.transform.forward * 0.001f + absoluteRay.point;
+
+                //渲染弹坑
+                if (GlobalData.MyDeviceMode == DeviceMode.Gun)
+                {
+                    Transform crater = transform.Find("Crater");
+                    crater.rotation = redCircle.rotation;
+                }
             }
         }
 
         SetUpBeforFly();
 
-        Transform cameraTF = this.transform.Find("Camera");
-        cameraTF.gameObject.SetActive(true);
-        arrowCameraComp = cameraTF.gameObject.AddComponent<ArrowCamera>();
-        arrowCameraComp.arrow = this;
+        if (GlobalData.MyDeviceMode == DeviceMode.Archery)
+        {
+            Transform cameraTF = this.transform.Find("Camera");
+            cameraTF.gameObject.SetActive(true);
+            arrowCameraComp = cameraTF.gameObject.AddComponent<ArrowCamera>();
+            arrowCameraComp.arrow = this;
+        }
+
 
         this.activeEffectTrail(true);
     }
@@ -102,54 +120,69 @@ public class Arrow : MonoBehaviour
         //额外偏移误差角
         float offsetAngleX = FormatAngleX(this.finalAngleAfterOffset.x) - baseAngleX;
         float offsetAngleY = FormatAngleY(this.finalAngleAfterOffset.y - this.transform.eulerAngles.y);
-        if (DebugArrowOffsetAngle.ins) {
+        if (DebugArrowOffsetAngle.ins)
+        {
             offsetAngleX *= DebugArrowOffsetAngle.ins.GetOffsetScaleValue();
             offsetAngleY *= DebugArrowOffsetAngle.ins.GetOffsetScaleValue();
-        } else {
+        }
+        else
+        {
             offsetAngleX *= this.armBow.shootOffsetAngleScale;
             offsetAngleY *= this.armBow.shootOffsetAngleScale;
         }
         DebugArrowOffsetAngle2.ins?.SetOffsetAngles(offsetAngleX, offsetAngleY);
 
-        if (absoluteRay.transform) {
+        if (absoluteRay.transform)
+        {
             bool plusOffsetAngleY = false;
             //看能否通过调整发射角让箭落在靶子的瞄准点上
-            CalculateParabolaAngle(absoluteRay.point); 
+            CalculateParabolaAngle(absoluteRay.point);
             //瞄准的是不是Target层
             bool isTargetLayer = IsTargetLayer(absoluteRay.transform.gameObject);
             //绝对发射角无解
-            if (!hasParabolaAngle) {
+            if (!hasParabolaAngle)
+            {
                 if (isTargetLayer) AimLoadChecker.ins?.ShowOutTip();
-            } else {
+            }
+            else
+            {
                 //来到这里,证明发射角有解,该解姑且叫它绝对角
                 float absoluteAngleX = parabolaAngleInRadian / Mathf.PI * 180;
                 //客户要求绝对角跟原本角度相差不能超过 maxDeltaAngleX
                 float deltaAngleX = absoluteAngleX - baseAngleX;
-                
+
                 //如果绝对角跟原本角度相差不超过maxDeltaAngleX
-                if (Mathf.Abs(deltaAngleX) < maxDeltaAngleX) {
+                if (Mathf.Abs(deltaAngleX) < maxDeltaAngleX)
+                {
                     finalAngleX = Mathf.Clamp(absoluteAngleX + offsetAngleX, -89, 89);
                     plusOffsetAngleY = true;
-                    if (Math.Abs(offsetAngle) < 0.001) {
+                    if (Math.Abs(offsetAngle) < 0.001)
+                    {
                         canPerfectHit = true;
                     }
-                    if (rayHitTargetBody && Mathf.RoundToInt(rayHitTargetBody.GetDistance()) >= 50 && UnityEngine.Random.value < 0.5) {
+                    if (rayHitTargetBody && Mathf.RoundToInt(rayHitTargetBody.GetDistance()) >= 50 && UnityEngine.Random.value < 0.5)
+                    {
                         canUseSideCamera = true;
                     }
-                } else {
+                }
+                else
+                {
                     finalAngleX = Mathf.Clamp(baseAngleX + maxDeltaAngleX, -89, 89);
                     if (isTargetLayer) AimLoadChecker.ins?.ShowOutTip();
                 }
             }
             finalPoint = absoluteRay.point;
-            if (plusOffsetAngleY) {
+            if (plusOffsetAngleY)
+            {
                 Vector3 myPos = this.transform.position;
                 Vector3 pointer = finalPoint - myPos;
                 pointer = Quaternion.AngleAxis(offsetAngleY, Vector3.up) * pointer;
                 finalPoint = myPos + pointer;
                 this.transform.LookAt(finalPoint);
             }
-        } else {
+        }
+        else
+        {
             finalPoint = this.transform.position + this.transform.forward * 100;
         }
 
@@ -168,20 +201,24 @@ public class Arrow : MonoBehaviour
     }
 
     /**UnityY轴旋转只有0°~360°,两个Y轴旋转相减求得的夹角时会出现>180的情况,该函数就是为了解决这问题 */
-    float FormatAngleY(float value) 
+    float FormatAngleY(float value)
     {
-        if (Mathf.Abs(value) > 180) {
-            if (value < 0) {
-                return 360f + value; 
+        if (Mathf.Abs(value) > 180)
+        {
+            if (value < 0)
+            {
+                return 360f + value;
             }
-            if (value > 0) {
+            if (value > 0)
+            {
                 return value - 360f;
             }
         }
         return value;
     }
 
-    bool IsTargetLayer(GameObject gameObject) {
+    bool IsTargetLayer(GameObject gameObject)
+    {
         return (1 << gameObject.layer) == LayerMask.GetMask("Target");
     }
 
@@ -221,7 +258,7 @@ public class Arrow : MonoBehaviour
     void CalculateParabolaAngle(Vector3 destination)
     {
         float deltaX = Vector2.Distance(
-            new Vector2(destination.x, destination.z), 
+            new Vector2(destination.x, destination.z),
             new Vector2(this.transform.position.x, this.transform.position.z)
         );
         float deltaY = destination.y - this.transform.position.y;
@@ -229,33 +266,39 @@ public class Arrow : MonoBehaviour
         float b = deltaX;
         float c = a - deltaY;
         hasParabolaAngle = Mathf.Pow(b, 2) - 4 * a * c >= 0;
-        if (hasParabolaAngle) {
-            float res1 = (-b + Mathf.Pow(Mathf.Pow(b, 2) - 4*a*c, 0.5f)) / (2 * a);
-            float res2 = (-b - Mathf.Pow(Mathf.Pow(b, 2) - 4*a*c, 0.5f)) / (2 * a);
+        if (hasParabolaAngle)
+        {
+            float res1 = (-b + Mathf.Pow(Mathf.Pow(b, 2) - 4 * a * c, 0.5f)) / (2 * a);
+            float res2 = (-b - Mathf.Pow(Mathf.Pow(b, 2) - 4 * a * c, 0.5f)) / (2 * a);
             parabolaAngleInRadian = Mathf.Min(Mathf.Atan(res1), Mathf.Atan(res2));
-        }   
+        }
     }
 
     void FixedUpdate()
     {
-        if (!isHit && flyTime >= 0) {
+        if (!isHit && flyTime >= 0)
+        {
             flyTime += Time.deltaTime;
-            if (flyTime > 14) {
+            if (flyTime > 14)
+            {
                 FlyTimeOut();
             }
             // this.UpdateRotate();
         }
     }
     public ArrowSync.SyncData outputSyncData;
-    void Update() {
+    void Update()
+    {
         UpdateFlyLogic();
-        if (GlobalData.pkMatchType == PKMatchType.OnlinePK) {
+        if (GlobalData.pkMatchType == PKMatchType.OnlinePK)
+        {
             if (outputSyncData == null) outputSyncData = new ArrowSync.SyncData();
             outputSyncData.SetData(this);
         }
     }
 
-    void FlyTimeOut() {
+    void FlyTimeOut()
+    {
         Destroy(gameObject);
         GameMgr.ins.gameMode.HitTarget(0);
         AudioMgr.ins.PlayCheer(false);
@@ -265,7 +308,8 @@ public class Arrow : MonoBehaviour
     float logicFlyTime = 0;
     Vector3 finalPoint;
     /**飞行帧逻辑(运动学) */
-    void UpdateFlyLogic() {
+    void UpdateFlyLogic()
+    {
         if (isHit) return;
         logicFlyTime += Time.deltaTime;
         Vector3 destination = finalPoint;
@@ -278,7 +322,7 @@ public class Arrow : MonoBehaviour
         nextPosition = nextPosition.normalized * dx;
         nextPosition.y = dy;
         nextPosition = shootOutPosition + nextPosition;
-        Vector3 oldPosition =  this.transform.position;
+        Vector3 oldPosition = this.transform.position;
         this.transform.position = nextPosition;
         Vector3 eulerAngles = this.transform.eulerAngles;
         float angleX = Mathf.Atan(vy / vx) / Mathf.PI * 180;
@@ -289,11 +333,14 @@ public class Arrow : MonoBehaviour
         Ray ray = new Ray(oldPosition, nextPosition - oldPosition);
         RaycastHit raycastHit;
         bool raycastResult = Physics.Raycast(ray, out raycastHit, deltaDistance);
-        if (raycastResult) {
+        if (raycastResult)
+        {
             this.transform.position = raycastHit.point;
             if (ArrowTraceDebug.ins) ArrowTraceDebug.ins.OnArrowUpdate(this);
             OnHitAnyInFlyLogic(raycastHit);
-        } else {
+        }
+        else
+        {
             if (ArrowTraceDebug.ins) ArrowTraceDebug.ins.OnArrowUpdate(this);
         }
     }
@@ -308,26 +355,39 @@ public class Arrow : MonoBehaviour
     }
     [NonSerialized] public int hitType = HitType.None;
     [NonSerialized] public Transform raycastHitTransform; //射线击中的目标变换
-    [NonSerialized] public string[] hitTargetAnimalInfo; 
+    [NonSerialized] public string[] hitTargetAnimalInfo;
     //飞行逻辑中检测到碰撞
-    void OnHitAnyInFlyLogic(RaycastHit raycastHit) {
+    void OnHitAnyInFlyLogic(RaycastHit raycastHit)
+    {
         this.Head().position = raycastHit.point;
         this.transform.SetParent(raycastHit.transform.parent);
         string targetName = raycastHit.transform.gameObject.name;
         this.raycastHitTransform = raycastHit.transform;
-        if (targetName == "TargetBody") {
+        if (targetName == "TargetBody")
+        {
             Vector3 hitPoint = raycastHit.point;
-            if (rayHitTargetBody && canPerfectHit) {
+            if (rayHitTargetBody && canPerfectHit)
+            {
                 hitPoint = absoluteRay.point;
                 this.Head().position = hitPoint;
             }
-            this.arrowCameraComp.arrowCameraTemplate?.beforeHit();
+            if (GlobalData.MyDeviceMode == DeviceMode.Archery)
+                this.arrowCameraComp.arrowCameraTemplate?.beforeHit();
+            else
+                nextShoot();//子弹直接下一轮
+
             raycastHit.transform.GetComponent<TargetBody>().Hit(this, hitPoint);
-        } else if (targetName.StartsWith("TargetAnimalPart")) {
+        }
+        else if (targetName.StartsWith("TargetAnimalPart"))
+        {
             hitType = HitType.Animal;
             Vector3 hitPoint = raycastHit.point;
-            string partName = targetName.Split(new char[]{'_'})[1];
-            this.arrowCameraComp.arrowCameraTemplate?.beforeHit();
+            string partName = targetName.Split(new char[] { '_' })[1];
+            if (GlobalData.MyDeviceMode == DeviceMode.Archery)
+                this.arrowCameraComp.arrowCameraTemplate?.beforeHit();
+            else
+                nextShoot();//子弹直接下一轮
+
             TargetAnimal targetAnimal = raycastHit.transform.GetComponentInParent<TargetAnimal>();
             targetAnimal.OnHit(this, hitPoint, partName);
             //箭击中的音效
@@ -341,10 +401,18 @@ public class Arrow : MonoBehaviour
                 SyncDataUtil.Vec3ToStr(transform.position),
                 SyncDataUtil.QuatToStr(transform.rotation)
             };
-        } else if (raycastHit.transform.GetComponent<TargetOutBound>()) { //撞到空气墙当作超时处理
+        }
+        else if (raycastHit.transform.GetComponent<TargetOutBound>())
+        { //撞到空气墙当作超时处理
             FlyTimeOut();
-        } else {
-            this.arrowCameraComp.arrowCameraTemplate?.beforeHit();
+        }
+        else
+        {
+            if (GlobalData.MyDeviceMode == DeviceMode.Archery)
+                this.arrowCameraComp.arrowCameraTemplate?.beforeHit();
+            else
+                nextShoot();//子弹直接下一轮
+
             Hit();
             GameMgr.ins.gameMode.HitTarget(0);
             //击中其它东西时的音效
@@ -352,7 +420,7 @@ public class Arrow : MonoBehaviour
             if (UnityEngine.SceneManagement.SceneManager.GetActiveScene().name == "Game")
             {
                 AudioMgr.ins.PlayCheer(false);
-            } 
+            }
             else
             {
                 AudioMgr.ins.PlayArrowEnter();
@@ -360,9 +428,10 @@ public class Arrow : MonoBehaviour
         }
     }
 
-    public void Hit() {
+    public void Hit()
+    {
         isHit = true;
-        
+
         if (GameDebug.ins) GameDebug.ins.ShowRes(absoluteRay.point, this.Head().position);
 
         //控制箭的特效显示
@@ -377,22 +446,27 @@ public class Arrow : MonoBehaviour
 
     //进入下一轮射击
     [NonSerialized] public bool hasDoneNextShoot = false;
-    public void nextShoot() {
+    public void nextShoot()
+    {
         if (hasDoneNextShoot) return;
         hasDoneNextShoot = true;
         GameMgr.ins.gameMode.ResumeTimeCounting(this);
         onDoNextShoot?.Invoke();
 
-        try {
+        try
+        {
             if (AimHandler.ins) AimHandler.ins.Ban9AxisCalculate(false);
             //把瞄准点画成红圈,渲染在靶子上(取消)
-            if (rayHitTargetBody) {
+            if (rayHitTargetBody)
+            {
+                //string typeStr = GlobalData.MyDeviceMode == DeviceMode.Archery ? "RedCircle" : "BulletCircle";
                 Transform redCircle = rayHitTargetBody.transform.Find("RedCircle");
                 redCircle.gameObject.SetActive(false);
             }
             //最新一箭击中后会发光标记(取消)
             ArrowLightSick.RecoveryAll();
-        } catch (System.Exception e) { Debug.LogError(e.Message + "\n" + e.StackTrace); }
+        }
+        catch (System.Exception e) { Debug.LogError(e.Message + "\n" + e.StackTrace); }
 
         if (!GameMgr.ins.gameMode.DoNextShoot()) return;
         this.armBow.readyShoot();
@@ -400,7 +474,8 @@ public class Arrow : MonoBehaviour
 
     //---------箭矢旋转--------
     Vector3 rotateV3 = new Vector3(0, 0, 1400);
-    void UpdateRotate() {
+    void UpdateRotate()
+    {
         this.Head().Rotate(rotateV3 * Time.deltaTime, Space.Self);
     }
 
@@ -412,17 +487,19 @@ public class Arrow : MonoBehaviour
         if (!value) return;
         ParticleSystemRenderer ps = this.transform.Find("Head/EF_kuosanquan/kuosan").GetComponent<ParticleSystemRenderer>();
         ParticleSystemRenderer ps1 = this.transform.Find("Head/EF_kuosanquan/kuosan (1)").GetComponent<ParticleSystemRenderer>();
-        DOTween.To(() => ps.minParticleSize, value => {
+        DOTween.To(() => ps.minParticleSize, value =>
+        {
             ps.minParticleSize = value;
             ps.maxParticleSize = value;
         }, 0.4f, 0.6f);
-        DOTween.To(() => ps1.minParticleSize, value => {
+        DOTween.To(() => ps1.minParticleSize, value =>
+        {
             ps1.minParticleSize = value;
             ps1.maxParticleSize = value;
         }, 0.8f, 0.6f);
     }
 
-    void activeEffectBomb(bool value) 
+    void activeEffectBomb(bool value)
     {
         this.transform.Find("Head/EF_baodian").gameObject.SetActive(value);
     }

+ 7 - 2
Assets/BowArrow/Scripts/Game/GameAssistUI.cs

@@ -57,6 +57,11 @@ public class GameAssistUI : MonoBehaviour
             }
         });
         btnScaleShoot = this.transform.Find("Button3").GetComponent<Button>();
+        //枪类型下隐藏
+        if (GlobalData.MyDeviceMode == DeviceMode.Gun)
+        {
+            btnScaleShoot.gameObject.SetActive(false);
+        }
         btnScaleShoot.onClick.AddListener(delegate(){
             AudioMgr.ins.PlayBtn();
             if (btnScaleShoot.GetComponentInChildren<Image>().material == outlight) {
@@ -67,8 +72,8 @@ public class GameAssistUI : MonoBehaviour
             }
         });
         Button btnIdentity = this.transform.Find("Button4").GetComponent<Button>();
-        //如果是连接红外
-        if (BluetoothAim.ins && BluetoothAim.ins.isMainConnectToHOUYIPRO())
+        //手枪不显示视角归位,连接接红外也不显示视角归位
+        if (GlobalData.MyDeviceMode == DeviceMode.Gun || BluetoothAim.ins && BluetoothAim.ins.isMainConnectToHOUYIPRO())
         {
             btnIdentity.gameObject.SetActive(false);
         }

+ 11 - 0
Assets/BowArrow/Scripts/GlobalData.cs

@@ -2,6 +2,13 @@ using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
+//设备的连接模式
+public enum DeviceMode {
+    //弓箭设备
+    Archery,
+    //枪械设备
+    Gun
+}
 /** 全局游戏数据 */
 public class GlobalData
 {
@@ -15,6 +22,10 @@ public class GlobalData
 
     //单机游戏的gameType
     public static int singlePlayerGameType;
+
+    //模式类型,区分设备
+    public static DeviceMode MyDeviceMode { get; set; } = DeviceMode.Gun;// DeviceMode.Gun;
+
 }
 /**接收别人的PK邀请时,会设置GlobalData的数据,如果这时候主页存在层级页面,接收PK邀请但又突然要返回,
 这时候层级页面设置过的GlobalData可能会被好友邀请修改过,因此主页用GlobalDataTemp存储可能会被干涉的数据,

+ 13 - 6
Assets/BowArrow/Scripts/View/Home/DeviceView.cs

@@ -37,7 +37,7 @@ public class DeviceView : JCUnityLib.ViewBase, MenuBackInterface
                 OnChangeSmartArcheryButton(temp);
             });
         }
-
+        OnChangeSmartArcheryButtonState((int)GlobalData.MyDeviceMode);
 
         //bowOptions = this.transform.Find("ItemInfo/BowOptions").gameObject;
 
@@ -123,17 +123,24 @@ public class DeviceView : JCUnityLib.ViewBase, MenuBackInterface
         {
             //进入选中的页面
             AudioMgr.ins.PlayBtn();
-          
+            //设置一次 GlobalData.MyDeviceMode 
+            HomeView.ins.MyTopBarView.onChangeType(index);
             if (getEnabelPanelStatus())
             {
                 //取消正在连接的连接
                 BluetoothAim.ins.onCancelAllConnecting(BluetoothStatusEnum.Connect);
 
-                ViewMgr.Instance.ShowView<SmartArcheryView>();
-                //AimHandler.ins.SetAimDeviceSelectIndex(0);
+                if (GlobalData.MyDeviceMode == DeviceMode.Archery)
+                {
+                    ViewMgr.Instance.ShowView<SmartArcheryView>();
+                }
+                else if (GlobalData.MyDeviceMode == DeviceMode.Gun)
+                {
+                    Debug.Log("Gun");
+                    ViewMgr.Instance.ShowView<SmartGunView>();
+                }
+
                 AimHandler.ins.onCreateTempAimDeviceInfo();
-                //OnCloseAllPanelStatus();
-                //deviceViewItems[0].setPanelStatus(true);
             }
         }
     }

+ 66 - 24
Assets/BowArrow/Scripts/View/Home/DeviceView_ItemShow.cs

@@ -7,7 +7,7 @@ using UnityEngine.UI;
 public class DeviceView_ItemShow : MonoBehaviour
 {
     [Tooltip("当前选择的用户设备")]
-    [SerializeField] 
+    [SerializeField]
     BluetoothPlayer bluetoothPlayer = BluetoothPlayer.FIRST_PLAYER;
     [SerializeField] Image selectPanel;
     [SerializeField] Button btnBg;
@@ -54,7 +54,7 @@ public class DeviceView_ItemShow : MonoBehaviour
             if (getCurrentPanelEnable()) return;
 
             AudioMgr.ins.PlayBtn();
-            AimHandler.ins.SetAimDeviceSelectIndex(deviceIndex); 
+            AimHandler.ins.SetAimDeviceSelectIndex(deviceIndex);
             DeviceView.ins.OnCloseAllPanelStatus();
             setPanelStatus(true);
             //
@@ -68,7 +68,22 @@ public class DeviceView_ItemShow : MonoBehaviour
             if (!getPanelStatus()) return;
             AimHandler.ins.SetAimDeviceSelectIndex(deviceIndex);
             AimHandler.ins.onCreateTempAimDeviceInfo();
-            ViewMgr.Instance.ShowView<SmartArcheryView>();
+            //ViewMgr.Instance.ShowView<SmartArcheryView>();
+
+            if (GlobalData.MyDeviceMode == DeviceMode.Archery)
+            {
+                ViewMgr.Instance.ShowView<SmartArcheryView>();
+
+            }
+            else if (GlobalData.MyDeviceMode == DeviceMode.Gun)
+            {
+                ViewMgr.Instance.ShowView<SmartGunView>();
+            }
+            else
+            {
+
+                Debug.LogError("btnConnectBow 没有设置页面!!");
+            }
         });
         //init 按钮(有硬件信息才显示initStatus按钮)
         initStatus.GetComponent<Button>().onClick.AddListener(delegate ()
@@ -79,17 +94,32 @@ public class DeviceView_ItemShow : MonoBehaviour
             //选择此device index 跳转页面
             AimHandler.ins.SetAimDeviceSelectIndex(deviceIndex);
             AimHandler.ins.onCreateTempAimDeviceInfo();
-      
-            //判断当前的信息是否是 HOUYI PRO,是的话直接跳转到pro初始化?
-            if (AimHandler.ins.isHOUYIPRO(bluetoothPlayer))
+
+            if (GlobalData.MyDeviceMode == DeviceMode.Archery)
+            {
+                //判断当前的信息是否是 HOUYI PRO,是的话直接跳转到pro初始化?
+                if (AimHandler.ins.isHOUYIPRO(bluetoothPlayer))
+                {
+                    //直接进入红外引导界面
+                    AimHandler.ins.SetTempAimDeviceType(AimDeviceType.HOUYIPRO);
+                    ViewManager2.ShowView(ViewManager2.Path_InfraredView);
+                }
+                else
+                {
+                    ViewMgr.Instance.ShowView<SmartArcheryView>();
+                }
+
+            }
+            else if (GlobalData.MyDeviceMode == DeviceMode.Gun)
             {
-                //直接进入红外引导界面
-                AimHandler.ins.SetTempAimDeviceType(AimDeviceType.HOUYIPRO);
-                ViewManager2.ShowView(ViewManager2.Path_InfraredView);
+                ViewMgr.Instance.ShowView<SmartGunView>();
             }
             else {
-                ViewMgr.Instance.ShowView<SmartArcheryView>();
+
+                Debug.LogError("initStatus 没有设置页面!!");
             }
+
+
         });
 
         ConnectButton.onClick.AddListener(delegate ()
@@ -111,7 +141,8 @@ public class DeviceView_ItemShow : MonoBehaviour
                 {
                     BluetoothAim.ins.DoConnect();
                 }
-                else {
+                else
+                {
                     BluetoothAim.ins.DoConnect2P();
                 }
                 return;
@@ -171,7 +202,7 @@ public class DeviceView_ItemShow : MonoBehaviour
                     if (ConnectButtonImage.gameObject.activeSelf) ConnectButtonImage.sprite = ConnectButtonImages[1];
                 }
             }
-          
+
         }
         onUpdateStatusInfo();
     }
@@ -239,7 +270,8 @@ public class DeviceView_ItemShow : MonoBehaviour
                 }
 
             }
-            else if(bluetoothPlayer == BluetoothPlayer.SECONDE_PLAYER){
+            else if (bluetoothPlayer == BluetoothPlayer.SECONDE_PLAYER)
+            {
 
                 SmartBowSDK.SmartBowHelper smartBowHelper = BluetoothAim.ins.getSmartBowHelper2P();
 
@@ -348,7 +380,7 @@ public class DeviceView_ItemShow : MonoBehaviour
     {
         //判断是否存在当前对象
         List<AimDeviceInfo> allDeviceInfo = AimHandler.ins.aimDeviceInfos.arry;
-        AimDeviceInfo aimDeviceInfo = allDeviceInfo.Find(obj=>obj.id == deviceIndex);
+        AimDeviceInfo aimDeviceInfo = allDeviceInfo.Find(obj => obj.id == deviceIndex);
         //对象不存在
         if (aimDeviceInfo == null || aimDeviceInfo.type == -1 || !aimDeviceInfo.bInitMac)//AimHandler.ins.aimDeviceInfos.arry.Count <= deviceIndex
         {
@@ -357,7 +389,7 @@ public class DeviceView_ItemShow : MonoBehaviour
             if (connected.activeSelf) connected.SetActive(false);
             return;
         }
-      
+
         //Debug.Log("show aimDeviceInfo:" +  aimDeviceInfo.id + ", deviceSelectIndex:" + deviceIndex);
         //AimDeviceInfo aimDeviceInfo = AimHandler.ins.aimDeviceInfos.arry[deviceIndex];
         bool bShow = true;
@@ -379,6 +411,11 @@ public class DeviceView_ItemShow : MonoBehaviour
                 titleText.text = "HOUYI Pro";
                 bowBg.sprite = bowBgs[0];
                 break;
+
+            case AimDeviceType.Gun:
+                titleText.text = "Gun";
+                bowBg.sprite = bowBgs[0];
+                break;
             default:
                 bShow = false;
                 //Debug.LogWarning("AimDeviceType:" + ((AimDeviceType)aimDeviceInfo.type).ToString());
@@ -398,7 +435,7 @@ public class DeviceView_ItemShow : MonoBehaviour
                 if (connected.activeSelf) connected.SetActive(false);
             }
         }
-      
+
 
 
         //switch ((AimDeviceType)aimDeviceInfo.type)
@@ -423,12 +460,13 @@ public class DeviceView_ItemShow : MonoBehaviour
     {
         if (bluetoothPlayer == BluetoothPlayer.FIRST_PLAYER)
         {
-            
+
             string name = BluetoothStatus.GetStatusTextKey(BluetoothAim.ins.status);
             if (name != _TextAutoLanguage2.GetTextKey())
                 _TextAutoLanguage2.SetTextKey(name);
         }
-        else if (bluetoothPlayer == BluetoothPlayer.SECONDE_PLAYER) {
+        else if (bluetoothPlayer == BluetoothPlayer.SECONDE_PLAYER)
+        {
             SmartBowSDK.SmartBowHelper smartBowHelper = BluetoothAim.ins.getSmartBowHelper2P();
             if (smartBowHelper == null) return;
             string name = BluetoothStatus.GetBLE2StatusTextKey(smartBowHelper.GetBluetoothStatus());
@@ -436,30 +474,34 @@ public class DeviceView_ItemShow : MonoBehaviour
                 _TextAutoLanguage2.SetTextKey(name);
 
         }
-     
+
     }
 
     //设置一个面板选择状态
-    public void setPanelStatus(bool _active) {
+    public void setPanelStatus(bool _active)
+    {
         selectPanel.enabled = _active;
-        if (_active) {
+        if (_active)
+        {
             //选择框选择到的当前蓝牙用户
             BluetoothAim.ins.setBLEPlayer(bluetoothPlayer);
-            Debug.Log("当前选择的操作蓝牙用户:" + BluetoothAim.ins.getBLEPlayer()) ;
+            Debug.Log("当前选择的操作蓝牙用户:" + BluetoothAim.ins.getBLEPlayer());
             //true的情况下设置index
             AimHandler.ins.SetAimDeviceSelectIndex(deviceIndex);
             Debug.Log("当前选择的操作蓝牙用户 deviceSelectIndex:" + deviceIndex);
         }
     }
 
-    public bool getPanelStatus() {
+    public bool getPanelStatus()
+    {
         bool _enable = selectPanel.enabled;
         //设置一次
         DeviceView.ins.OnCloseAllPanelStatus();
         setPanelStatus(true);
         return _enable;
     }
-    public bool getCurrentPanelEnable() { 
+    public bool getCurrentPanelEnable()
+    {
         return selectPanel.enabled;
     }
 }

+ 15 - 0
Assets/BowArrow/Scripts/View/Home/HomeView.cs

@@ -24,6 +24,14 @@ public class HomeView : JCUnityLib.ViewBase
     [SerializeField] GameObject betteryBar;
     [SerializeField] GameObject bettery2;
     [SerializeField] GameObject betteryBar2;
+
+
+    [SerializeField] HomeView_ChallengeOption challengeOption;
+    public HomeView_ChallengeOption MyChallengeOption => challengeOption;
+
+    [SerializeField] HomeView_TopBarView topBarView;
+    public HomeView_TopBarView MyTopBarView => topBarView;
+
     public static HomeView ins;
 
     void Awake() {
@@ -35,6 +43,9 @@ public class HomeView : JCUnityLib.ViewBase
             transform.Find("RightPanel/Item (1)/Text").GetComponent<TextAutoLanguage>().SetText(1234563);
             transform.Find("RightPanel/Item (3)").gameObject.SetActive(false);
         }
+
+        
+        if (topBarView && challengeOption) topBarView.onChangeTypeEvent.AddListener(challengeOption.refreshList);
     }
 
     void Start()
@@ -417,6 +428,8 @@ public class HomeView : JCUnityLib.ViewBase
         {
             if (!bettery.activeSelf)
             {
+                TopBarButtonInfo topBarButtonInfo = topBarView.GetCurrentTopBarButtonInfo();  
+                bettery.transform.SetParent(topBarButtonInfo.container.transform);
                 bettery.SetActive(true);
             }
         }
@@ -434,6 +447,8 @@ public class HomeView : JCUnityLib.ViewBase
         {
             if (!bettery2.activeSelf)
             {
+                TopBarButtonInfo topBarButtonInfo = topBarView.GetCurrentTopBarButtonInfo();
+                bettery2.transform.SetParent(topBarButtonInfo.container.transform);
                 bettery2.SetActive(true);
             }
         }

+ 62 - 13
Assets/BowArrow/Scripts/View/Home/HomeView_ChallengeOption.cs

@@ -34,9 +34,10 @@ public class HomeView_ChallengeOption : MonoBehaviour
 
     public List<LevelInfo> levelInfos;
     List<LevelInfo> _tempLevelInfos = new List<LevelInfo>();
-
-    List<String> gameTextIds = new List<string> { "OlynpicArchery", "WolfHunt", "LevelWildAttack", "FruitExpert", "LevelDuckHunter", "HareHunt", "PheasuntHunt" };
-
+    //弓箭游戏列表
+    List<string> gameTextIds = new List<string> { "OlynpicArchery", "WolfHunt", "LevelWildAttack", "FruitExpert", "LevelDuckHunter", "HareHunt", "PheasuntHunt" };
+    //切换枪械情况下切换这个游戏列表
+    List<string> gameTextIds_gun = new List<string> { "OlynpicArchery", "FruitExpert", "LevelDuckHunter"};
     //#if UNITY_ANDROID
     //    List<String> gameTextIds = new List<string> { "OlynpicArchery", "LevelWildAttack", "FruitExpert", "LevelDuckHunter" };
     //#else
@@ -57,10 +58,7 @@ public class HomeView_ChallengeOption : MonoBehaviour
         //}
         //entryList.transform.Find("Item4").gameObject.SetActive(GlobalDataTemp.pkMatchType == PKMatchType.None);
         //transform.Find("BtnFruitMaster").gameObject.SetActive(GlobalDataTemp.pkMatchType == PKMatchType.None);
-    }
 
-    void Start()
-    {
         //增加了对两个按钮事件的响应
         prevCellButton.onClick.AddListener(() => {
             scrollView.SelectPrevCell();
@@ -71,13 +69,57 @@ public class HomeView_ChallengeOption : MonoBehaviour
         });
         //对选中的当前对象的下标的显示
         scrollView.OnSelectionChanged(OnSelectionChanged);
+    }
+    void Start()
+    {
+   
+
+        //按 gameTextIds 重新排序
+        //for (int i = 0; i < gameTextIds.Count; i++)
+        //{
+        //    for (int j = 0; j < levelInfos.Count; j++)
+        //    {
+        //        if (gameTextIds[i] == levelInfos[j].textId) 
+        //        {
+        //            _tempLevelInfos.Add(levelInfos[j]);
+        //            break;
+        //        }
+        //    }
+        //}
+        //var _items = Enumerable.Range(0, 21)
+        //    .Select(i => {
+        //        int _index = Mathf.FloorToInt(i % _tempLevelInfos.Count);
+        //        LevelInfo levelInfo = _tempLevelInfos[_index];
+        //        //Debug.Log("初始化:"+i+",index:"+_index);
+        //        return new ItemData(levelInfo.Name, levelInfo.Icon, levelInfo.textId, levelInfo.languageType);
+        //    })
+        //    .ToArray();
+        //scrollView.UpdateData(_items);
+        //scrollView.SelectCell(0);
+
+    }
+
+    //通过面板 HomeView_TopBarView.onChangeTypeEvent 调用
+    //根据选择的模式来切换内容 
+    public void refreshList(DeviceMode deviceMode) {
+        Debug.Log("refreshList:"+ deviceMode);
+        List<string> _gameTextIds = new();
+        if (deviceMode == DeviceMode.Archery)
+        {
+            _gameTextIds = gameTextIds;
+        }
+        else if (deviceMode == DeviceMode.Gun) {
+            _gameTextIds = gameTextIds_gun;
+        }
+        if (_gameTextIds.Count == 0) return;
 
+        _tempLevelInfos.Clear();
         //按 gameTextIds 重新排序
-        for (int i = 0; i < gameTextIds.Count; i++)
+        for (int i = 0; i < _gameTextIds.Count; i++)
         {
             for (int j = 0; j < levelInfos.Count; j++)
             {
-                if (gameTextIds[i] == levelInfos[j].textId) 
+                if (_gameTextIds[i] == levelInfos[j].textId)
                 {
                     _tempLevelInfos.Add(levelInfos[j]);
                     break;
@@ -94,7 +136,6 @@ public class HomeView_ChallengeOption : MonoBehaviour
             .ToArray();
         scrollView.UpdateData(_items);
         scrollView.SelectCell(0);
-
     }
 
     void OnDestroy()
@@ -175,14 +216,22 @@ public class HomeView_ChallengeOption : MonoBehaviour
                 AudioMgr.ins.PlayBtn();
                 //进入模式选择页面
                 ViewMgr.Instance.ShowView<ModeSelectView>();
-                if (_startGameType == 1)
+
+                if (GlobalData.MyDeviceMode == DeviceMode.Gun)
                 {
-                    ModeSelectView.ins.isShowButton = true;
+                    ModeSelectView.ins.InitGunButtons();
                 }
                 else {
-                    ModeSelectView.ins.isShowButton = false;
+                    if (_startGameType == 1)
+                    {
+                        ModeSelectView.ins.isShowButton = true;
+                    }
+                    else
+                    {
+                        ModeSelectView.ins.isShowButton = false;
+                    }
+                    ModeSelectView.ins.InitButtons();
                 }
-                ModeSelectView.ins.InitButtons();
                 break;
             default:
                 StartGame(_startGameType);

+ 50 - 4
Assets/BowArrow/Scripts/View/Home/HomeView_TopBarView.cs

@@ -11,18 +11,46 @@ public class TopBarButtonInfo
     public Image Icon;
     public Text text;
     public bool selected;
+    public DeviceMode deviceMode;
+    public GameObject container;
 
 }
 public class HomeView_TopBarView : MonoBehaviour
 {
     public List<TopBarButtonInfo> topBarButtonInfos;
 
+    public UnityEngine.Events.UnityEvent<DeviceMode> onChangeTypeEvent;
+
+    string _saveKey = "DeviceModeKey";
+    int _value = 0;
+    int _valueDefault = 0;
     // Start is called before the first frame update
     void Start()
     {
-        TopBarButtonInfo topBarButtonInfo = topBarButtonInfos[0];
-        topBarButtonInfo.Icon.color = new Color32(0, 0, 0, 255);
-        topBarButtonInfo.text.color = new Color32(48, 57, 57, 255);
+        int deviceValue = GetDeviceModeValue();
+        GlobalData.MyDeviceMode = (DeviceMode)deviceValue;
+        Debug.Log(" GlobalData.MyDeviceMode :" + GlobalData.MyDeviceMode);
+        onChangeTypeEvent?.Invoke(GlobalData.MyDeviceMode);
+
+        for (int i = 0; i < topBarButtonInfos.Count; i++)
+        {
+            TopBarButtonInfo topBarButtonInfo = topBarButtonInfos[i];
+            if (i == deviceValue)
+            {
+                topBarButtonInfo.Icon.color = new Color32(0, 0, 0, 255);
+                topBarButtonInfo.text.color = new Color32(48, 57, 57, 255);
+            }
+            else
+            {
+                topBarButtonInfo.Icon.color = new Color32(255, 255, 255, 255);
+                topBarButtonInfo.text.color = new Color32(141, 150, 151, 255);
+            }
+
+        }
+    }
+
+    public TopBarButtonInfo GetCurrentTopBarButtonInfo() {
+        return topBarButtonInfos[(int)GlobalData.MyDeviceMode];
     }
 
     // Update is called once per frame
@@ -46,8 +74,26 @@ public class HomeView_TopBarView : MonoBehaviour
                     topBarButtonInfo.Icon.color = new Color32(255, 255, 255, 255);
                     topBarButtonInfo.text.color = new Color32(141, 150, 151, 255);
                 }
+
             }
-      
+
+            SetDeviceModeValue(index);
+            GlobalData.MyDeviceMode = (DeviceMode)index;
+            Debug.Log("Set GlobalData.MyDeviceMode :" + GlobalData.MyDeviceMode);
+            onChangeTypeEvent?.Invoke(GlobalData.MyDeviceMode);
+
         }
     }
+    public int GetDeviceModeValue()
+    {
+        _value = PlayerPrefs.GetInt(_saveKey, _valueDefault);
+        return _value;
+    }
+    public void SetDeviceModeValue(int value)
+    {
+        _value = value;
+        PlayerPrefs.SetInt(_saveKey, _value);
+        PlayerPrefs.Save();
+    }
+
 }

+ 17 - 0
Assets/BowArrow/Scripts/View/Home/ModeSelectView.cs

@@ -19,7 +19,24 @@ public class ModeSelectView : JCUnityLib.ViewBase
     {
         
     }
+    //枪模式下显示
+    public void InitGunButtons() {
+        for (int i = buttons.Count - 1; i > 0; i--)
+        {
+            Destroy(buttons[i].gameObject);
+            buttons.RemoveAt(i);
+        }
+        buttons[0].onClick.AddListener(() => {
+            AudioMgr.ins.PlayBtn();
+            OnChangeButton(0);
+        });
 
+        if (GameMgr.judgmentGameType != 1)
+        {
+            //目前只有奥运射箭和塔防有双人模式,先显示奥运射箭
+            buttons[0].gameObject.SetActive(false);
+        }
+    }
     public void InitButtons() {
         if (isShowButton)
         {

+ 5 - 0
Assets/BowArrow/Scripts/View/Home/SmartArcheryView.cs

@@ -113,6 +113,10 @@ public class SmartArcheryView  : JCUnityLib.ViewBase
                 {
                     AimHandler.ins.SetTempAimDeviceType(AimDeviceType.ARTEMIS);
                 }
+                else if (index == 3) {
+
+                    AimHandler.ins.SetTempAimDeviceType(AimDeviceType.HOUYIPRO);
+                }
                 //_white = new Color32(255, 255, 255, 255);
                 _buttonTitle = new Color32(16, 194, 198, 255);
                 _button.transform.Find("right/arrow").GetComponent<Image>().sprite = arrowImages[1];
@@ -131,6 +135,7 @@ public class SmartArcheryView  : JCUnityLib.ViewBase
 
     public void OnClick_Back()
     {
+        Debug.Log("SmartArcheryView OnClick_Back");
         AudioMgr.ins.PlayBtn();
         ViewMgr.Instance.DestroyView<SmartArcheryView>();
     }

+ 112 - 0
Assets/BowArrow/Scripts/View/Home/SmartGunView.cs

@@ -0,0 +1,112 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+public class SmartGunView  : JCUnityLib.ViewBase
+{
+
+    [SerializeField] List<Button> smartArcheryButtons;
+    [SerializeField] Sprite[] arrowImages;
+    [SerializeField] Material lineMaterial;
+
+    Material materialGrey;
+    Material materialGreen;
+
+    void Start()
+    {
+        //ins = this;
+        for (int i = 0; i < smartArcheryButtons.Count; i++)
+        {
+            int temp = i;
+            smartArcheryButtons[i].onClick.AddListener(() => {
+                AudioMgr.ins.PlayBtn();
+                OnChangeSmartArcheryButton(temp);
+            });
+        }
+
+        materialGrey = Instantiate(lineMaterial);
+        materialGreen = Instantiate(lineMaterial);
+        materialGreen.SetColor("_BorderColor", new Color32(16, 194, 198, 255));
+
+    }
+
+    // Update is called once per frame
+    void OnChangeSmartArcheryButton(int index)
+    {
+        bool _selected = false;
+        for (int i = 0; i < smartArcheryButtons.Count; i++)
+        {
+            Button _button = smartArcheryButtons[i];
+            Color32 _buttonTitle;
+            if (index == i)
+            {
+                _selected = true;
+                //切换设备类型
+                if (index == 0)
+                {
+                    AimHandler.ins.SetTempAimDeviceType(AimDeviceType.Gun);
+                }
+                _buttonTitle = new Color32(16, 194, 198, 255);
+                _button.transform.Find("right/arrow").GetComponent<Image>().sprite = arrowImages[1];
+                _button.GetComponent<Image>().material = materialGreen;
+            }
+            else
+            {
+                //_white = new Color32(59, 59, 59, 255);
+                _buttonTitle = new Color32(0, 0, 0, 255);
+                _button.transform.Find("right/arrow").GetComponent<Image>().sprite = arrowImages[0];
+                _button.GetComponent<Image>().material = materialGrey;
+            }
+            _button.transform.Find("right/title").GetComponent<Text>().color = _buttonTitle;
+        }
+        if (_selected)
+        {
+            //进入选中的页面
+            AudioMgr.ins.PlayBtn();
+            if (index == 0)
+            {
+                //进入红外引导界面
+                ViewManager2.ShowView(ViewManager2.Path_InfraredView);
+            }
+        }
+
+    }
+
+    public void OnChangeSmartArcheryButtonState(int index)
+    {
+        for (int i = 0; i < smartArcheryButtons.Count; i++)
+        {
+            Button _button = smartArcheryButtons[i];
+            // Color32 _white;
+            Color32 _buttonTitle;
+            if (index == i)
+            {
+                //切换设备类型
+                if (index == 0)
+                {
+                    AimHandler.ins.SetTempAimDeviceType(AimDeviceType.Gun);
+                }
+                //_white = new Color32(255, 255, 255, 255);
+                _buttonTitle = new Color32(16, 194, 198, 255);
+                _button.transform.Find("right/arrow").GetComponent<Image>().sprite = arrowImages[1];
+                _button.GetComponent<Image>().material = materialGreen;
+            }
+            else
+            {
+                //_white = new Color32(59, 59, 59, 255);
+                _buttonTitle = new Color32(0, 0, 0, 255);
+                _button.transform.Find("right/arrow").GetComponent<Image>().sprite = arrowImages[0];
+                _button.GetComponent<Image>().material = materialGrey;
+            }
+            _button.transform.Find("right/title").GetComponent<Text>().color = _buttonTitle;
+        }
+    }
+
+    public void OnClick_Back()
+    {
+        Debug.Log("SmartGunView OnClick_Back");
+        AudioMgr.ins.PlayBtn();
+        ViewMgr.Instance.DestroyView<SmartGunView>();
+    }
+}

+ 11 - 0
Assets/BowArrow/Scripts/View/Home/SmartGunView.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 5eef038e7b2c3c5498967bd4f5f9b1f4
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/BowArrow/Textures/Device/gun_smart_1.png


+ 147 - 0
Assets/BowArrow/Textures/Device/gun_smart_1.png.meta

@@ -0,0 +1,147 @@
+fileFormatVersion: 2
+guid: dd0aef80ad6ee7549b6f829b2acc91b4
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 12
+  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
+  vTOnly: 0
+  ignoreMasterTextureLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 0
+  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
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  cookieLightType: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Server
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    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: []
+    nameFileIdTable: {}
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/BowArrow/Textures/Device/iconSmartGunW.png


+ 147 - 0
Assets/BowArrow/Textures/Device/iconSmartGunW.png.meta

@@ -0,0 +1,147 @@
+fileFormatVersion: 2
+guid: ab63eb7db1cda2c47a9a5bb831dfabca
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 12
+  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
+  vTOnly: 0
+  ignoreMasterTextureLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 0
+  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
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  cookieLightType: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Server
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    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: []
+    nameFileIdTable: {}
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/BowArrow/Textures/Home/GunHit.meta

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

BIN
Assets/BowArrow/Textures/Home/GunHit/HIt2.png


+ 147 - 0
Assets/BowArrow/Textures/Home/GunHit/HIt2.png.meta

@@ -0,0 +1,147 @@
+fileFormatVersion: 2
+guid: 659327c151e4e6d4198a491f51400f32
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 12
+  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
+  vTOnly: 0
+  ignoreMasterTextureLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 0
+  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
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  cookieLightType: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Server
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    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: []
+    nameFileIdTable: {}
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/BowArrow/Textures/Home/GunHit/Hit1.png


+ 147 - 0
Assets/BowArrow/Textures/Home/GunHit/Hit1.png.meta

@@ -0,0 +1,147 @@
+fileFormatVersion: 2
+guid: 8308cd3a4ab470e4b9c43fe1ec2e6b72
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 12
+  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
+  vTOnly: 0
+  ignoreMasterTextureLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 0
+  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
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  cookieLightType: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Server
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    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: []
+    nameFileIdTable: {}
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/BowArrow/Textures/Home/TopBar/Top_Gun_E.png


+ 147 - 0
Assets/BowArrow/Textures/Home/TopBar/Top_Gun_E.png.meta

@@ -0,0 +1,147 @@
+fileFormatVersion: 2
+guid: 2bd66876c98b2f041be9253e22bbf890
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 12
+  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
+  vTOnly: 0
+  ignoreMasterTextureLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 0
+  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
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  cookieLightType: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Server
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    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: []
+    nameFileIdTable: {}
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 234 - 4
Assets/DuckHunter/Prefabs/Animals/Duck.prefab

@@ -1,5 +1,72 @@
 %YAML 1.1
 %TAG !u! tag:unity3d.com,2011:
+--- !u!1 &17242881962361128
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 7171049820001593184}
+  - component: {fileID: 2997139432991076980}
+  - component: {fileID: 829619135791921602}
+  m_Layer: 0
+  m_Name: die
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0
+--- !u!224 &7171049820001593184
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 17242881962361128}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: -0.007}
+  m_LocalScale: {x: -1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 5191306611721978234}
+  m_RootOrder: 7
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 100, y: 100}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &2997139432991076980
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 17242881962361128}
+  m_CullTransparentMesh: 1
+--- !u!114 &829619135791921602
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 17242881962361128}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 68e95c3830cac43c0b74e147ad7ca853, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 0
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  sharedMesh: {fileID: 0}
 --- !u!1 &345238719500529791
 GameObject:
   m_ObjectHideFlags: 0
@@ -28,6 +95,7 @@ RectTransform:
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: -0.001}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 8764539238281246264}
   m_RootOrder: 1
@@ -94,6 +162,7 @@ RectTransform:
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: -0.002}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 2372270176572680553}
   m_RootOrder: 2
@@ -160,13 +229,14 @@ RectTransform:
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: -0.004}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 8764539238281246264}
   m_RootOrder: 4
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 0.5}
   m_AnchorMax: {x: 0.5, y: 0.5}
-  m_AnchoredPosition: {x: -0.010599913, y: -0.2618}
+  m_AnchoredPosition: {x: -0.14060004, y: 0.13909999}
   m_SizeDelta: {x: 100, y: 100}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &7813285243061877386
@@ -226,13 +296,14 @@ RectTransform:
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: -0.003}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 8764539238281246264}
   m_RootOrder: 3
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 0.5}
   m_AnchorMax: {x: 0.5, y: 0.5}
-  m_AnchoredPosition: {x: 0.024400022, y: -0.0668}
+  m_AnchoredPosition: {x: 0.024400044, y: -0.13819999}
   m_SizeDelta: {x: 100, y: 100}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &3855701449007242691
@@ -292,13 +363,14 @@ RectTransform:
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: -0.004}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 2372270176572680553}
   m_RootOrder: 4
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 0.5}
   m_AnchorMax: {x: 0.5, y: 0.5}
-  m_AnchoredPosition: {x: -0.010599913, y: -0.2618}
+  m_AnchoredPosition: {x: -0.14059997, y: -0.0868}
   m_SizeDelta: {x: 100, y: 100}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &7028265822174452418
@@ -358,6 +430,7 @@ RectTransform:
   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: 2372270176572680553}
   m_RootOrder: 0
@@ -424,6 +497,7 @@ RectTransform:
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: -0.006}
   m_LocalScale: {x: 0.0125, y: 0.0125, z: 0}
+  m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 8764539238281246264}
   m_RootOrder: 6
@@ -489,6 +563,7 @@ RectTransform:
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 80, y: 80, z: 0}
+  m_ConstrainProportionsScale: 0
   m_Children:
   - {fileID: 3476828975168096673}
   - {fileID: 1574724801789623487}
@@ -497,6 +572,7 @@ RectTransform:
   - {fileID: 5970575393036515670}
   - {fileID: 6849542801040061514}
   - {fileID: 5489591258735206999}
+  - {fileID: 7625403780222084295}
   m_Father: {fileID: 5639466533729887626}
   m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -559,6 +635,7 @@ RectTransform:
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 0.8, y: 0.8, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 5639466533729887626}
   m_RootOrder: 3
@@ -634,6 +711,7 @@ RectTransform:
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: -0.0050000004}
   m_LocalScale: {x: 0.0125, y: 0.0125, z: 0}
+  m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 2372270176572680553}
   m_RootOrder: 5
@@ -700,6 +778,7 @@ RectTransform:
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: -0.002}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 5191306611721978234}
   m_RootOrder: 2
@@ -766,6 +845,7 @@ RectTransform:
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: -0.001}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 5191306611721978234}
   m_RootOrder: 1
@@ -832,6 +912,7 @@ RectTransform:
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: -0.003}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 5191306611721978234}
   m_RootOrder: 3
@@ -898,6 +979,7 @@ RectTransform:
   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: 5191306611721978234}
   m_RootOrder: 0
@@ -964,6 +1046,7 @@ RectTransform:
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: -0.0050000004}
   m_LocalScale: {x: -1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 5191306611721978234}
   m_RootOrder: 5
@@ -1029,6 +1112,7 @@ RectTransform:
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 80, y: 80, z: 0}
+  m_ConstrainProportionsScale: 0
   m_Children:
   - {fileID: 5191306611373881223}
   - {fileID: 5191306611272564759}
@@ -1037,6 +1121,7 @@ RectTransform:
   - {fileID: 5191306612118436144}
   - {fileID: 5191306611642272643}
   - {fileID: 5191306612264785129}
+  - {fileID: 7171049820001593184}
   m_Father: {fileID: 5639466533729887626}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -1099,13 +1184,14 @@ RectTransform:
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: -0.004}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 5191306611721978234}
   m_RootOrder: 4
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 0.5}
   m_AnchorMax: {x: 0.5, y: 0.5}
-  m_AnchoredPosition: {x: -0.010599913, y: -0.2618}
+  m_AnchoredPosition: {x: -0.14059997, y: -0.0868}
   m_SizeDelta: {x: 100, y: 100}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &5191306612118436146
@@ -1165,6 +1251,7 @@ RectTransform:
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: -0.006}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 5191306611721978234}
   m_RootOrder: 6
@@ -1231,6 +1318,7 @@ RectTransform:
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: -0.003}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 2372270176572680553}
   m_RootOrder: 3
@@ -1269,6 +1357,73 @@ MonoBehaviour:
     m_PersistentCalls:
       m_Calls: []
   sharedMesh: {fileID: 0}
+--- !u!1 &5290802504105235347
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 7625403780222084295}
+  - component: {fileID: 7595411799449086079}
+  - component: {fileID: 7662781197294850999}
+  m_Layer: 0
+  m_Name: die
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0
+--- !u!224 &7625403780222084295
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5290802504105235347}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: -0.007}
+  m_LocalScale: {x: 0.0125, y: 0.0125, z: 0}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 2372270176572680553}
+  m_RootOrder: 7
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 100, y: 100}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &7595411799449086079
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5290802504105235347}
+  m_CullTransparentMesh: 1
+--- !u!114 &7662781197294850999
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5290802504105235347}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 68e95c3830cac43c0b74e147ad7ca853, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 0
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  sharedMesh: {fileID: 0}
 --- !u!1 &5409409206999191361
 GameObject:
   m_ObjectHideFlags: 0
@@ -1297,6 +1452,7 @@ RectTransform:
   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: 8764539238281246264}
   m_RootOrder: 0
@@ -1364,6 +1520,7 @@ RectTransform:
   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: 5191306611721978234}
   - {fileID: 2372270176572680553}
@@ -1455,6 +1612,7 @@ RectTransform:
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: -0.0050000004}
   m_LocalScale: {x: 0.0125, y: 0.0125, z: 0}
+  m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 8764539238281246264}
   m_RootOrder: 5
@@ -1521,6 +1679,7 @@ RectTransform:
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: -0.006}
   m_LocalScale: {x: 0.0125, y: 0.0125, z: 0}
+  m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 2372270176572680553}
   m_RootOrder: 6
@@ -1587,6 +1746,7 @@ RectTransform:
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: -0.001}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 2372270176572680553}
   m_RootOrder: 1
@@ -1653,6 +1813,7 @@ RectTransform:
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: -0.002}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 8764539238281246264}
   m_RootOrder: 2
@@ -1691,6 +1852,73 @@ MonoBehaviour:
     m_PersistentCalls:
       m_Calls: []
   sharedMesh: {fileID: 0}
+--- !u!1 &8293559541295993018
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 8766343578160622432}
+  - component: {fileID: 9027286692992497785}
+  - component: {fileID: 1587073403474346513}
+  m_Layer: 0
+  m_Name: die
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0
+--- !u!224 &8766343578160622432
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8293559541295993018}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: -0.007}
+  m_LocalScale: {x: -1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 8764539238281246264}
+  m_RootOrder: 7
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 100, y: 100}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &9027286692992497785
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8293559541295993018}
+  m_CullTransparentMesh: 1
+--- !u!114 &1587073403474346513
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8293559541295993018}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 68e95c3830cac43c0b74e147ad7ca853, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 0
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  sharedMesh: {fileID: 0}
 --- !u!1 &8764539238281246265
 GameObject:
   m_ObjectHideFlags: 0
@@ -1718,6 +1946,7 @@ RectTransform:
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 80, y: 80, z: 0}
+  m_ConstrainProportionsScale: 0
   m_Children:
   - {fileID: 7717018231065410009}
   - {fileID: 3423969447313742451}
@@ -1726,6 +1955,7 @@ RectTransform:
   - {fileID: 4075180018616036848}
   - {fileID: 4184458576349123899}
   - {fileID: 1072961117658412272}
+  - {fileID: 8766343578160622432}
   m_Father: {fileID: 5639466533729887626}
   m_RootOrder: 2
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

+ 95 - 1
Assets/DuckHunter/Scenes/DuckHunter.unity

@@ -38,7 +38,7 @@ RenderSettings:
   m_ReflectionIntensity: 1
   m_CustomReflection: {fileID: 0}
   m_Sun: {fileID: 0}
-  m_IndirectSpecularColor: {r: 0.3708985, g: 0.3783704, b: 0.35722548, a: 1}
+  m_IndirectSpecularColor: {r: 0.37311953, g: 0.38074014, b: 0.3587274, a: 1}
   m_UseRadianceAmbientProbe: 0
 --- !u!157 &3
 LightmapSettings:
@@ -489,6 +489,7 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children:
   - {fileID: 944357611}
+  - {fileID: 507735683}
   m_Father: {fileID: 1372090167}
   m_RootOrder: 7
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -1621,6 +1622,82 @@ RectTransform:
   m_CorrespondingSourceObject: {fileID: 8764539238281246264, guid: 38e02b36272fbb14a834b78991852d11, type: 3}
   m_PrefabInstance: {fileID: 555765035}
   m_PrefabAsset: {fileID: 0}
+--- !u!1 &507735682
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 507735683}
+  - component: {fileID: 507735685}
+  - component: {fileID: 507735684}
+  m_Layer: 5
+  m_Name: GunHit
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0
+--- !u!224 &507735683
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 507735682}
+  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: 172697116}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 90, y: 90}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &507735684
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 507735682}
+  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_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: 8308cd3a4ab470e4b9c43fe1ec2e6b72, 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!222 &507735685
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 507735682}
+  m_CullTransparentMesh: 1
 --- !u!1 &531447821
 GameObject:
   m_ObjectHideFlags: 0
@@ -1821,6 +1898,10 @@ PrefabInstance:
       propertyPath: sharedMesh
       value: 
       objectReference: {fileID: 0}
+    - target: {fileID: 5639466533729887621, guid: 38e02b36272fbb14a834b78991852d11, type: 3}
+      propertyPath: m_Enabled
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 5639466533729887623, guid: 38e02b36272fbb14a834b78991852d11, type: 3}
       propertyPath: m_Enabled
       value: 0
@@ -1925,6 +2006,18 @@ PrefabInstance:
       propertyPath: m_Name
       value: Duck
       objectReference: {fileID: 0}
+    - target: {fileID: 7171049820001593184, guid: 38e02b36272fbb14a834b78991852d11, type: 3}
+      propertyPath: m_RootOrder
+      value: 8
+      objectReference: {fileID: 0}
+    - target: {fileID: 7625403780222084295, guid: 38e02b36272fbb14a834b78991852d11, type: 3}
+      propertyPath: m_RootOrder
+      value: 8
+      objectReference: {fileID: 0}
+    - target: {fileID: 8766343578160622432, guid: 38e02b36272fbb14a834b78991852d11, type: 3}
+      propertyPath: m_RootOrder
+      value: 8
+      objectReference: {fileID: 0}
     m_RemovedComponents: []
   m_SourcePrefab: {fileID: 100100000, guid: 38e02b36272fbb14a834b78991852d11, type: 3}
 --- !u!224 &555765036 stripped
@@ -1988,6 +2081,7 @@ MonoBehaviour:
   dogSideObject: {fileID: 1735656315}
   duckPrefab: {fileID: 5639466533729887627, guid: 38e02b36272fbb14a834b78991852d11, type: 3}
   duckBox: {fileID: 1305174225}
+  userGameAnalyse1: {fileID: 0}
 --- !u!1 &619573014
 GameObject:
   m_ObjectHideFlags: 0

+ 4 - 0
Assets/DuckHunter/Scripts/Duck.cs

@@ -65,6 +65,10 @@ namespace DuckHunter
             if (animationName == _lastPlayAnimationName) return;
             _lastPlayAnimationName = animationName;
             _armature.animation.Play(animationName, 0);
+
+            //不是射箭状态不处理箭
+            if (GlobalData.MyDeviceMode != DeviceMode.Archery) return;
+
             if (_sequenceRotateForever != null)
             {
                 _sequenceRotateForever.Kill();

+ 7 - 0
Assets/DuckHunter/Scripts/GameManager.cs

@@ -339,6 +339,13 @@ namespace DuckHunter
             {
                 GameUI.Instance.AddArrowOnScreen(aimPos);
             }
+            else { 
+                //枪械模式下,射中也加个效果
+                if(GlobalData.MyDeviceMode == DeviceMode.Gun)
+                {
+                    GameUI.Instance.AddArrowOnScreen(aimPos);
+                }
+            }
         }
 
         void OnClick_GameStart()

+ 2 - 1
Assets/DuckHunter/Scripts/GameUI.cs

@@ -266,7 +266,8 @@ namespace DuckHunter
         [SerializeField] RectTransform arrowBox;
         public void AddArrowOnScreen(Vector2 screenPosition)
         {
-            var o = Instantiate(arrowBox.GetChild(0).gameObject, arrowBox);
+            //arrowBox.GetChild(0)
+            var o = Instantiate(arrowBox.GetChild((int)GlobalData.MyDeviceMode).gameObject, arrowBox);
             var tf = o.transform;
             tf.position = screenPosition;
             tf.gameObject.SetActive(true);

+ 76 - 0
Assets/FruitMaster/Misc/Arrow/Black.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: Black
+  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: 0, g: 0, b: 0, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}

+ 8 - 0
Assets/FruitMaster/Misc/Arrow/Black.mat.meta

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

+ 330 - 0
Assets/FruitMaster/Misc/Arrow/Bullet.prefab

@@ -0,0 +1,330 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &5998546083883870621
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 5998546083883870622}
+  - component: {fileID: -4427873908436609748}
+  - component: {fileID: 259505585450712909}
+  - component: {fileID: 1648657973100585332}
+  m_Layer: 0
+  m_Name: Bullet
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &5998546083883870622
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5998546083883870621}
+  m_LocalRotation: {x: 0.5, y: 0.5, z: -0.5, w: 0.5}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 3752168966071773387}
+  - {fileID: 4185330340481963155}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &-4427873908436609748
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5998546083883870621}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 70bf0cdb4ceef044cad979c2e90f98d0, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  spawnType: 1
+  bulletHolePrefab: {fileID: 1323857996541003606, guid: 1621887f7fe21a04b8a8b975dc6203a1, type: 3}
+  hitLayers:
+    serializedVersion: 2
+    m_Bits: 8
+--- !u!54 &259505585450712909
+Rigidbody:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5998546083883870621}
+  serializedVersion: 2
+  m_Mass: 1
+  m_Drag: 0
+  m_AngularDrag: 0.05
+  m_UseGravity: 1
+  m_IsKinematic: 0
+  m_Interpolate: 0
+  m_Constraints: 0
+  m_CollisionDetection: 0
+--- !u!135 &1648657973100585332
+SphereCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5998546083883870621}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 1
+  m_Enabled: 1
+  serializedVersion: 2
+  m_Radius: 0.5
+  m_Center: {x: 0, y: 0, z: 0}
+--- !u!1 &7049705229629056534
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4185330340481963155}
+  m_Layer: 0
+  m_Name: ArrowMeshParent
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &4185330340481963155
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7049705229629056534}
+  m_LocalRotation: {x: -0.5, y: -0.5, z: 0.5, w: 0.5}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 7056368809898119747}
+  m_Father: {fileID: 5998546083883870622}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &8027541387315253171
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 3752168966071773387}
+  - component: {fileID: 2645193011388932021}
+  m_Layer: 0
+  m_Name: Trail
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &3752168966071773387
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8027541387315253171}
+  m_LocalRotation: {x: -0.5, y: -0.5, z: 0.5, w: 0.5}
+  m_LocalPosition: {x: 0, y: 0.028, z: -0.047}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 5998546083883870622}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!96 &2645193011388932021
+TrailRenderer:
+  serializedVersion: 2
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8027541387315253171}
+  m_Enabled: 1
+  m_CastShadows: 0
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
+  m_MotionVectors: 0
+  m_LightProbeUsage: 0
+  m_ReflectionProbeUsage: 0
+  m_RayTracingMode: 0
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 4294967295
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 2100000, guid: 9dc231d88f780f848a795f2e2aa73a7a, type: 2}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_Time: 0.5
+  m_Parameters:
+    serializedVersion: 3
+    widthMultiplier: 1
+    widthCurve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 1
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0.33333334
+        outWeight: 0.33333334
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    colorGradient:
+      serializedVersion: 2
+      key0: {r: 1, g: 1, b: 1, a: 1}
+      key1: {r: 1, g: 1, b: 1, a: 1}
+      key2: {r: 0, g: 0, b: 0, a: 0}
+      key3: {r: 0, g: 0, b: 0, a: 0}
+      key4: {r: 0, g: 0, b: 0, a: 0}
+      key5: {r: 0, g: 0, b: 0, a: 0}
+      key6: {r: 0, g: 0, b: 0, a: 0}
+      key7: {r: 0, g: 0, b: 0, a: 0}
+      ctime0: 0
+      ctime1: 65535
+      ctime2: 0
+      ctime3: 0
+      ctime4: 0
+      ctime5: 0
+      ctime6: 0
+      ctime7: 0
+      atime0: 0
+      atime1: 65535
+      atime2: 0
+      atime3: 0
+      atime4: 0
+      atime5: 0
+      atime6: 0
+      atime7: 0
+      m_Mode: 0
+      m_NumColorKeys: 2
+      m_NumAlphaKeys: 2
+    numCornerVertices: 0
+    numCapVertices: 0
+    alignment: 0
+    textureMode: 0
+    shadowBias: 0.5
+    generateLightingData: 0
+  m_MinVertexDistance: 0.1
+  m_Autodestruct: 0
+  m_Emitting: 1
+--- !u!1 &8425356109530705104
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 7056368809898119747}
+  - component: {fileID: 5576978291597153637}
+  - component: {fileID: 5602612776669242579}
+  m_Layer: 0
+  m_Name: Sphere
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &7056368809898119747
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8425356109530705104}
+  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: 4185330340481963155}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &5576978291597153637
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8425356109530705104}
+  m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &5602612776669242579
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8425356109530705104}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 2100000, guid: 16da8548a0f477c4cac47255742cfb2b, type: 2}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_AdditionalVertexStreams: {fileID: 0}

+ 7 - 0
Assets/FruitMaster/Misc/Arrow/Bullet.prefab.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: adf0a4127daa5af40890d8beb9a0963e
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 118 - 0
Assets/FruitMaster/Misc/Arrow/bulletHolePrefab.prefab

@@ -0,0 +1,118 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &913905230287587533
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1962829091402040544}
+  - component: {fileID: 4735865972154006104}
+  m_Layer: 3
+  m_Name: GameObject
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &1962829091402040544
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 913905230287587533}
+  m_LocalRotation: {x: 0, y: 0, z: 0.043619405, w: 0.9990483}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 0.3520773, y: 0.3520773, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 637984623091072537}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 5}
+--- !u!212 &4735865972154006104
+SpriteRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 913905230287587533}
+  m_Enabled: 1
+  m_CastShadows: 0
+  m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 0
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 0
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_Sprite: {fileID: 21300000, guid: 8308cd3a4ab470e4b9c43fe1ec2e6b72, type: 3}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_FlipX: 0
+  m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 16.32, y: 16.32}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
+  m_SpriteSortPoint: 0
+--- !u!1 &1323857996541003606
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 637984623091072537}
+  m_Layer: 3
+  m_Name: bulletHolePrefab
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &637984623091072537
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1323857996541003606}
+  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: 1962829091402040544}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

+ 7 - 0
Assets/FruitMaster/Misc/Arrow/bulletHolePrefab.prefab.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 1621887f7fe21a04b8a8b975dc6203a1
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 3 - 2
Assets/FruitMaster/Scenes/FruitMaster.unity

@@ -7244,6 +7244,7 @@ MonoBehaviour:
   LooseLifeAudio: {fileID: 338603183}
   FruitPrefab: {fileID: 2667301818804327200, guid: ca879403d1e2f26488592e5c5a7b0a5c, type: 3}
   ArrowPrefab: {fileID: 5998546083883870621, guid: bfb4b8e8cbd4cb247981b546d6739d1a, type: 3}
+  BulletPrefab: {fileID: 5998546083883870621, guid: adf0a4127daa5af40890d8beb9a0963e, type: 3}
   ComboTextPrefab: {fileID: 7145748191233444613, guid: 9a75fc182742eaa4c93567df3cb9f93a, type: 3}
   CriticalTextPrefab: {fileID: 7145748191233444613, guid: 89776de00d8985048a749a74982fca4e, type: 3}
   AddLifeTextPrefab: {fileID: 7145748191233444613, guid: e50bc5cb0a1c71a429077cd2c9df16c8, type: 3}
@@ -36396,8 +36397,8 @@ BoxCollider:
   m_IsTrigger: 0
   m_Enabled: 1
   serializedVersion: 2
-  m_Size: {x: 10, y: 1.4233059e-13, z: 10.000002}
-  m_Center: {x: 0, y: 0.0000009536743, z: 0}
+  m_Size: {x: 10, y: 0.1, z: 10}
+  m_Center: {x: 0, y: 0, z: 0}
 --- !u!54 &2098651910
 Rigidbody:
   m_ObjectHideFlags: 0

+ 74 - 4
Assets/FruitMaster/Scripts/ArrowBehavior.cs

@@ -2,6 +2,11 @@
 using System.Collections.Generic;
 using UnityEngine;
 
+public enum SpawnType { 
+    arrow,
+    bullet
+}
+
 public class ArrowBehavior : MonoBehaviour
 {
     private static GamingManager _gamingManager;
@@ -17,26 +22,39 @@ public class ArrowBehavior : MonoBehaviour
     public delegate void MissShoot();
     public event MissShoot OnMissShoot;
 
+
+    public SpawnType spawnType = SpawnType.arrow;
+
+    public GameObject bulletHolePrefab; // 弹坑预制体
+    public LayerMask hitLayers;         // 可以碰撞的图层
+    private Vector3 previousPosition;
+    private GameObject bulletHole;
+
     // Start is called before the first frame update
     void Start()
     {
         _gamingManager = GameObject.Find("GameManager").GetComponent<GamingManager>();
+
+        if (spawnType == SpawnType.bullet) {
+            previousPosition = transform.position;
+        }
+         
     }
 
-    public void Init(float speed, Vector3 dir, bool use_physics)
+    public void Init(float speed, Vector3 dir, bool use_physics,bool useGravity = true)
     {
         bUsePhysics = use_physics;
         Rigidbody rb = gameObject.GetComponent<Rigidbody>();
         if (bUsePhysics)
         {
-            rb.useGravity = true;
+            rb.useGravity = useGravity;// true;
             rb.isKinematic = false;
             rb.velocity = dir * speed;
 
         }
         else
         {
-            rb.useGravity = false;
+            rb.useGravity = useGravity;// = false;
             rb.isKinematic = true;
             rb.velocity = Vector3.zero;
 
@@ -52,7 +70,16 @@ public class ArrowBehavior : MonoBehaviour
         {
             if (!bUsePhysics)
             {
-                gameObject.transform.position = gameObject.transform.position + Direction_Kinematic * Time.deltaTime * Speed_Kinematic;              
+                gameObject.transform.position = gameObject.transform.position + Direction_Kinematic * Time.deltaTime * Speed_Kinematic;
+            }
+            else {
+
+                if (spawnType == SpawnType.bullet) {
+                    // 检测碰撞
+                    CheckCollision();
+                    // 更新位置
+                    previousPosition = transform.position;
+                }
             }
 
             Lifetime += Time.deltaTime;
@@ -66,6 +93,9 @@ public class ArrowBehavior : MonoBehaviour
             if (Lifetime > LifetimeLimit)
             {
                 Destroy(gameObject);
+
+                //消除特效部分
+                if (bulletHole) Destroy(bulletHole);
             }
         }
     }
@@ -84,4 +114,44 @@ public class ArrowBehavior : MonoBehaviour
             rb.velocity = Vector3.zero;
         }
     }
+
+
+    void CheckCollision()
+    {
+        RaycastHit hit;
+        Vector3 direction = transform.position - previousPosition;
+        float distance = direction.magnitude;
+
+        if (Physics.Raycast(previousPosition, direction, out hit, distance, hitLayers))
+        {
+            // 确定碰撞点和法线
+            Vector3 hitPoint = hit.point;
+            Vector3 hitNormal = hit.normal;
+            Transform hitTransform = hit.transform; // 获取碰撞物体的Transform
+
+            // 生成弹坑
+            CreateBulletHole(hitPoint, hitNormal, hitTransform);
+
+            // 可选:销毁子弹或其他处理
+            //Destroy(gameObject);
+        }
+    }
+
+    void CreateBulletHole(Vector3 position, Vector3 normal, Transform parentTransform)
+    {
+        if (bulletHolePrefab != null)
+        {
+            // 实例化弹坑预制体
+            bulletHole = Instantiate(bulletHolePrefab, position, Quaternion.LookRotation(normal));
+
+            // 将弹坑作为子对象附加到被击中的对象上
+            bulletHole.transform.SetParent(parentTransform);
+
+            // 调整弹坑的方向,使其面向摄像机
+           // bulletHole.transform.rotation = Quaternion.FromToRotation(Vector3.forward, -normal);
+
+            // 确保弹坑贴在表面
+            bulletHole.transform.position = position + normal * 0.01f;
+        }
+    }
 }

+ 10 - 2
Assets/FruitMaster/Scripts/GamingManager.cs

@@ -26,6 +26,7 @@ public class GamingManager : MonoBehaviour
 
     [SerializeField] private GameObject FruitPrefab;
     [SerializeField] private GameObject ArrowPrefab;
+    [SerializeField] private GameObject BulletPrefab;
     [SerializeField] private GameObject ComboTextPrefab;
     [SerializeField] private GameObject CriticalTextPrefab;
     [SerializeField] private GameObject AddLifeTextPrefab;
@@ -563,8 +564,15 @@ public class GamingManager : MonoBehaviour
         {
             FireCooldownTime_Current = FireCooldownTime;
             Vector3 spawnPos = Cam.transform.position + dir;
-            GameObject arrow = Instantiate(ArrowPrefab, spawnPos, Quaternion.FromToRotation(-Vector3.right, dir));
-            arrow.GetComponent<ArrowBehavior>().Init(speed, dir, true);
+            GameObject arrow = Instantiate(GlobalData.MyDeviceMode == DeviceMode.Archery? ArrowPrefab: BulletPrefab, spawnPos, Quaternion.FromToRotation(-Vector3.right, dir));
+            if (GlobalData.MyDeviceMode == DeviceMode.Archery)
+            {
+                arrow.GetComponent<ArrowBehavior>().Init(speed, dir, true,true);
+            }
+            else {
+                //目前只有gun类型
+                arrow.GetComponent<ArrowBehavior>().Init(speed, dir, true,false);
+            }
             arrow.GetComponent<ArrowBehavior>().OnMissShoot += MissShoot;
 
             BowFireAudio.clip = audioManager.GetRandomSound(SoundCategory.ArrowFire);

+ 430 - 0
Assets/InfraredProject/UVC4UnityAndroidPlugin/Samples/Scenes/UVC2DScene.unity

@@ -123,6 +123,140 @@ NavMeshSettings:
     debug:
       m_Flags: 0
   m_NavMeshData: {fileID: 0}
+--- !u!1 &2184613
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 2184614}
+  - component: {fileID: 2184617}
+  - component: {fileID: 2184616}
+  - component: {fileID: 2184615}
+  m_Layer: 5
+  m_Name: Button (Legacy) (2)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &2184614
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2184613}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 3.7134, y: 3.7134, z: 3.7134}
+  m_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 1821986010}
+  m_Father: {fileID: 1180428450}
+  m_RootOrder: 5
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 521, y: -96}
+  m_SizeDelta: {x: 160, y: 30}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &2184615
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2184613}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_WrapAround: 0
+    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: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 2184616}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls:
+      - m_Target: {fileID: 1180428451}
+        m_TargetAssemblyTypeName: UITest, Assembly-CSharp
+        m_MethodName: permission
+        m_Mode: 1
+        m_Arguments:
+          m_ObjectArgument: {fileID: 0}
+          m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+          m_IntArgument: 0
+          m_FloatArgument: 0
+          m_StringArgument: 
+          m_BoolArgument: 0
+        m_CallState: 2
+--- !u!114 &2184616
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2184613}
+  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_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 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!222 &2184617
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2184613}
+  m_CullTransparentMesh: 1
 --- !u!1 &47402232
 GameObject:
   m_ObjectHideFlags: 0
@@ -331,6 +465,140 @@ CanvasRenderer:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 239522512}
   m_CullTransparentMesh: 1
+--- !u!1 &281993270
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 281993271}
+  - component: {fileID: 281993274}
+  - component: {fileID: 281993273}
+  - component: {fileID: 281993272}
+  m_Layer: 5
+  m_Name: Button (Legacy) (3)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &281993271
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 281993270}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 3.7134, y: 3.7134, z: 3.7134}
+  m_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 1798408217}
+  m_Father: {fileID: 1180428450}
+  m_RootOrder: 6
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 521, y: -230}
+  m_SizeDelta: {x: 160, y: 30}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &281993272
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 281993270}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_WrapAround: 0
+    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: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 281993273}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls:
+      - m_Target: {fileID: 1180428451}
+        m_TargetAssemblyTypeName: UITest, Assembly-CSharp
+        m_MethodName: OpenAppSettings
+        m_Mode: 1
+        m_Arguments:
+          m_ObjectArgument: {fileID: 0}
+          m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+          m_IntArgument: 0
+          m_FloatArgument: 0
+          m_StringArgument: 
+          m_BoolArgument: 0
+        m_CallState: 2
+--- !u!114 &281993273
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 281993270}
+  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_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 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!222 &281993274
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 281993270}
+  m_CullTransparentMesh: 1
 --- !u!1 &319971545
 GameObject:
   m_ObjectHideFlags: 0
@@ -1876,6 +2144,8 @@ RectTransform:
   - {fileID: 1785833747}
   - {fileID: 2105907478}
   - {fileID: 1451311386}
+  - {fileID: 2184614}
+  - {fileID: 281993271}
   m_Father: {fileID: 0}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -2433,6 +2703,86 @@ CanvasRenderer:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 1785833746}
   m_CullTransparentMesh: 1
+--- !u!1 &1798408216
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1798408217}
+  - component: {fileID: 1798408219}
+  - component: {fileID: 1798408218}
+  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 &1798408217
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1798408216}
+  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: 281993271}
+  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: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1798408218
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1798408216}
+  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.19607843, g: 0.19607843, b: 0.19607843, 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: 14
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 10
+    m_MaxSize: 40
+    m_Alignment: 4
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: setting
+--- !u!222 &1798408219
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1798408216}
+  m_CullTransparentMesh: 1
 --- !u!1 &1802627077
 GameObject:
   m_ObjectHideFlags: 0
@@ -2470,6 +2820,86 @@ RectTransform:
   m_AnchoredPosition: {x: 0, y: 0}
   m_SizeDelta: {x: -20, y: 0}
   m_Pivot: {x: 0.5, y: 0.5}
+--- !u!1 &1821986009
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1821986010}
+  - component: {fileID: 1821986012}
+  - component: {fileID: 1821986011}
+  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 &1821986010
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1821986009}
+  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: 2184614}
+  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: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1821986011
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1821986009}
+  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.19607843, g: 0.19607843, b: 0.19607843, 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: 14
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 10
+    m_MaxSize: 40
+    m_Alignment: 4
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: permission
+--- !u!222 &1821986012
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1821986009}
+  m_CullTransparentMesh: 1
 --- !u!1 &1851574123
 GameObject:
   m_ObjectHideFlags: 0

+ 17 - 0
Assets/InfraredProject/UVC4UnityAndroidPlugin/Scripts/AndroidUtils.cs

@@ -299,7 +299,24 @@ namespace Serenegiant
 
 			yield break;
 		}
+		public static IEnumerator RequestCameraPermission(OnPermission callback)
+		{
+#if (!NDEBUG && DEBUG && ENABLE_LOG)
+			Console.WriteLine($"{TAG}GrantCameraPermission:");
+#endif
+			if (CheckAndroidVersion(23))
+			{
+				// Android9以降ではUVC機器アクセスにもCAMERAパーミッションが必要
+				yield return RequestPermission(PERMISSION_CAMERA, callback);
+			}
+			else
+			{
+				// Android 6 未満ではパーミッション要求処理は不要
+				callback(PERMISSION_CAMERA, PermissionGrantResult.PERMISSION_GRANT);
+			}
 
+			yield break;
+		}
 
 		//================================================================================
 

+ 54 - 0
Assets/InfraredProject/UVC4UnityAndroidPlugin/UITest.cs

@@ -4,6 +4,8 @@ using System.Collections.Generic;
 using Serenegiant.UVC;
 using UnityEngine;
 using UnityEngine.UI;
+using UnityEngine.Android;
+using Serenegiant;
 
 public class UITest : MonoBehaviour
 {
@@ -261,6 +263,58 @@ public class UITest : MonoBehaviour
 
         initSlider();
     }
+
+    public void permission() {
+        // ¼ì²éȨÏÞ
+        bool bCamera = Permission.HasUserAuthorizedPermission(Permission.Camera);
+        Debug.Log("bCamera:"+ bCamera);
+        if (!bCamera)
+        {
+            // ÇëÇóȨÏÞ
+            Permission.RequestUserPermission(Permission.Camera);
+        }
+
+
+        // ÇëÇóUSBȨÏÞ
+        RequestUsbPermission();
+    }
+    IEnumerator RequestUsbPermission()
+    {
+        Debug.Log("RequestUsbPermission");
+       yield return AndroidUtils.RequestCameraPermission((string permission, AndroidUtils.PermissionGrantResult result) =>
+       {
+           Debug.Log($"button OnPermission:{permission} = {result}");
+
+           switch (result)
+           {
+               case AndroidUtils.PermissionGrantResult.PERMISSION_GRANT:
+                   Debug.Log("PERMISSION_GRANT");
+                   break;
+               case AndroidUtils.PermissionGrantResult.PERMISSION_DENY:
+                   if (AndroidUtils.ShouldShowRequestPermissionRationale(AndroidUtils.PERMISSION_CAMERA))
+                   {
+                       Debug.Log("PERMISSION_CAMERA");
+                   }
+                   break;
+               case AndroidUtils.PermissionGrantResult.PERMISSION_DENY_AND_NEVER_ASK_AGAIN:
+                   Debug.Log("PERMISSION_DENY_AND_NEVER_ASK_AGAIN");
+                   break;
+           }
+       });
+    }
+
+    public void OpenAppSettings()
+    {
+        AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
+        AndroidJavaObject currentActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
+
+        AndroidJavaObject intent = new AndroidJavaObject("android.content.Intent",
+            "android.settings.APPLICATION_DETAILS_SETTINGS");
+        AndroidJavaObject uri = new AndroidJavaClass("android.net.Uri").CallStatic<AndroidJavaObject>("fromParts",
+            "package", currentActivity.Call<string>("getPackageName"), null);
+        intent.Call<AndroidJavaObject>("setData", uri);
+        currentActivity.Call("startActivity", intent);
+    }
     // Start is called before the first frame update
     void Start()
     {

+ 5 - 1
Assets/InfraredProject/WebCamera/Script/ZIM/ZIMUnity/ZIMWebCamera.cs

@@ -19,6 +19,8 @@ public class ZIMWebCamera : MonoBehaviour {
     
     public Text logText;
 
+    public Transform mParent;
+
     IEnumerator Start()
     {
         yield return new WaitForEndOfFrame();
@@ -132,6 +134,8 @@ public class ZIMWebCamera : MonoBehaviour {
     public void OnClick_ScreenLocateManual()
     {
         ViewManager2.ShowView(ViewManager2.Path_InfraredScreenPositioningView);
-        FindObjectOfType<InfraredScreenPositioningView>().enterFromInfraredDemo = true;
+        InfraredScreenPositioningView _infraredScreenPositioningView = FindObjectOfType<InfraredScreenPositioningView>();
+        _infraredScreenPositioningView.enterFromInfraredDemo = true;
+        _infraredScreenPositioningView.transform.SetParent(mParent);
     }
 }

+ 60 - 22
Assets/InfraredProject/WebCamera/zimWebCamera.unity

@@ -38,7 +38,7 @@ RenderSettings:
   m_ReflectionIntensity: 1
   m_CustomReflection: {fileID: 0}
   m_Sun: {fileID: 0}
-  m_IndirectSpecularColor: {r: 0.3708985, g: 0.3783704, b: 0.35722548, a: 1}
+  m_IndirectSpecularColor: {r: 0.37311953, g: 0.38074014, b: 0.3587274, a: 1}
   m_UseRadianceAmbientProbe: 0
 --- !u!157 &3
 LightmapSettings:
@@ -351,7 +351,7 @@ GameObject:
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
-  m_IsActive: 1
+  m_IsActive: 0
 --- !u!224 &228594326
 RectTransform:
   m_ObjectHideFlags: 0
@@ -368,10 +368,10 @@ RectTransform:
   m_Father: {fileID: 1946863619}
   m_RootOrder: 2
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
-  m_AnchorMin: {x: 0, y: 0}
-  m_AnchorMax: {x: 0, y: 0}
-  m_AnchoredPosition: {x: 0, y: 0}
-  m_SizeDelta: {x: 0, y: 50}
+  m_AnchorMin: {x: 0, y: 1}
+  m_AnchorMax: {x: 0, y: 1}
+  m_AnchoredPosition: {x: 1600, y: -50}
+  m_SizeDelta: {x: 640, y: 50}
   m_Pivot: {x: 0.5, y: 0}
 --- !u!114 &228594327
 MonoBehaviour:
@@ -763,7 +763,7 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 1867793102}
-  m_RootOrder: 8
+  m_RootOrder: 7
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 0.5}
   m_AnchorMax: {x: 0.5, y: 0.5}
@@ -916,7 +916,7 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 1867793102}
-  m_RootOrder: 10
+  m_RootOrder: 9
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0.5}
   m_AnchorMax: {x: 0, y: 0.5}
@@ -1131,7 +1131,7 @@ RectTransform:
   - {fileID: 1190139017}
   - {fileID: 1120077961}
   m_Father: {fileID: 1867793102}
-  m_RootOrder: 11
+  m_RootOrder: 10
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 0.5}
   m_AnchorMax: {x: 0.5, y: 0.5}
@@ -1464,7 +1464,7 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 1867793102}
-  m_RootOrder: 6
+  m_RootOrder: 5
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 0.5}
   m_AnchorMax: {x: 0.5, y: 0.5}
@@ -2511,7 +2511,7 @@ RectTransform:
   m_Children:
   - {fileID: 681002957}
   m_Father: {fileID: 1867793102}
-  m_RootOrder: 7
+  m_RootOrder: 6
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 0.5}
   m_AnchorMax: {x: 0.5, y: 0.5}
@@ -2585,13 +2585,13 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children:
   - {fileID: 858464726}
-  m_Father: {fileID: 1867793102}
-  m_RootOrder: 2
+  m_Father: {fileID: 1946863619}
+  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: 1311, y: -126}
-  m_SizeDelta: {x: 489.61722, y: 50}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 50}
   m_Pivot: {x: 0.5, y: 0}
 --- !u!114 &1289810229
 MonoBehaviour:
@@ -2718,7 +2718,7 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 1867793102}
-  m_RootOrder: 9
+  m_RootOrder: 8
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 0.5}
   m_AnchorMax: {x: 0.5, y: 0.5}
@@ -3020,7 +3020,7 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 1867793102}
-  m_RootOrder: 5
+  m_RootOrder: 4
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 0.5}
   m_AnchorMax: {x: 0.5, y: 0.5}
@@ -3062,6 +3062,42 @@ CanvasRenderer:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 1426786005}
   m_CullTransparentMesh: 1
+--- !u!1 &1438266373
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1438266374}
+  m_Layer: 5
+  m_Name: InfraredScreenPositioningViewParent
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1438266374
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1438266373}
+  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: 11
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 100, y: 100}
+  m_Pivot: {x: 0.5, y: 0.5}
 --- !u!1 &1588263170
 GameObject:
   m_ObjectHideFlags: 0
@@ -3854,7 +3890,6 @@ RectTransform:
   m_Children:
   - {fileID: 394028722}
   - {fileID: 1801784546}
-  - {fileID: 1289810228}
   - {fileID: 1946863619}
   - {fileID: 2101632896}
   - {fileID: 1426786006}
@@ -3864,6 +3899,7 @@ RectTransform:
   - {fileID: 1309947137}
   - {fileID: 557727041}
   - {fileID: 601288812}
+  - {fileID: 1438266374}
   - {fileID: 922494663}
   - {fileID: 1697954114}
   - {fileID: 493188450}
@@ -3897,6 +3933,7 @@ MonoBehaviour:
   rawImageSize: {fileID: 681002959}
   maintainAspectRatio: {fileID: 681002958}
   logText: {fileID: 493188448}
+  mParent: {fileID: 1438266374}
 --- !u!114 &1867793104
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -3970,8 +4007,9 @@ RectTransform:
   - {fileID: 1588263171}
   - {fileID: 577700188}
   - {fileID: 228594326}
+  - {fileID: 1289810228}
   m_Father: {fileID: 1867793102}
-  m_RootOrder: 3
+  m_RootOrder: 2
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 1, y: 1}
@@ -4122,7 +4160,7 @@ RectTransform:
   - {fileID: 1793996698}
   - {fileID: 1759782642}
   m_Father: {fileID: 1867793102}
-  m_RootOrder: 4
+  m_RootOrder: 3
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 0.5}
   m_AnchorMax: {x: 0.5, y: 0.5}

+ 9 - 5
Assets/Plugins/Android/AndroidManifest.xml

@@ -56,11 +56,14 @@
 			</intent-filter>
 		</receiver>
 
-
+		<!-- <activity android:name="com.serenegiant.uvcplugin.UsbPermissionActivity" tools:node="remove"/> -->
+		
+		
+		<!--  -->
 		<activity android:name="com.serenegiant.uvcplugin.UsbPermissionActivity" tools:node="remove"/>
 	</application>
 
-	<uses-permission android:name="android.permission.CAMERA" />
+	<!-- 	<uses-permission android:name="android.permission.CAMERA" /> -->
 	<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
 	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
 	<uses-feature android:name="android.hardware.camera2.full" />
@@ -70,14 +73,13 @@
 	<uses-feature
         android:name="android.hardware.camera2"
         android:required="true" />
-	<uses-feature
+	<!-- <uses-feature
         android:name="android.hardware.camera"
-        android:required="true" />
+        android:required="true" /> -->
 	<uses-feature
         android:name="android.hardware.camera.autofocus"
         android:required="true" />
 	<!-- 添加 USB 权限 -->
-	<uses-feature android:name="android.hardware.usb.host" android:required="true"/>
 	<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
 
 	<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
@@ -90,4 +92,6 @@
 	<uses-permission-sdk-23 android:name="android.permission.BLUETOOTH" />
 	<uses-permission-sdk-23 android:name="android.permission.ACCESS_COARSE_LOCATION" />
 	<uses-feature android:name="android.hardware.bluetooth_le" android:required="true" />
+
+	<uses-permission android:name="android.permission.USB_PERMISSION"/>
 </manifest>

+ 76 - 2
Assets/SmartBow/Scripts/Views/InfraredViewParts/InfraredScreenPositioningView.cs

@@ -116,6 +116,13 @@ public class InfraredScreenPositioningView  : JCUnityLib.ViewBase
     }
 
     public void OnClick_Auto() {
+        if (enterFromInfraredDemo)
+        {
+            ScreenLocate _screenLocate = FindAnyObjectByType<ScreenLocate>();
+            _screenLocate.EnterScreenLocateManualAuto();
+            return;
+        }
+
         if (InfraredDemo.running)
         {
             InfraredDemo.infraredCameraHelper.EnterScreenLocateManualAuto();
@@ -250,6 +257,23 @@ public class InfraredScreenPositioningView  : JCUnityLib.ViewBase
     //确认修改
     public void onConfirmation()
     {
+        if (enterFromInfraredDemo)
+        {
+            ConfirmScreenLocateManualTest();
+            if (oldLinePosition.Count > 1) // 确保列表不为空
+            {
+                LinePosition lastElement = oldLinePosition[oldLinePosition.Count - 1];
+                oldLinePosition.Clear();
+                oldLinePosition.Add(lastElement);
+            }
+
+            SaveLocalPos();
+
+            AudioMgr.ins.PlayBtn();
+            ViewManager2.HideView(ViewManager2.Path_InfraredScreenPositioningView);
+            return;
+        }
+
         if (!ConfirmScreenLocateManual()) return;
 
         if (oldLinePosition.Count > 1) // 确保列表不为空
@@ -259,11 +283,12 @@ public class InfraredScreenPositioningView  : JCUnityLib.ViewBase
             oldLinePosition.Add(lastElement);
         }
 
-        if (InfraredDemo.running) {
+        if (InfraredDemo.running)
+        {
             //跳转入界面
             AudioMgr.ins.PlayBtn();
             ViewManager2.HideView(ViewManager2.Path_InfraredScreenPositioningView);
-            if (!enterFromInfraredDemo) ViewManager2.ShowView(ViewManager2.Path_ConnectGuidanceView);
+            ViewManager2.ShowView(ViewManager2.Path_ConnectGuidanceView);
         }
 
         //存储一次节点
@@ -355,6 +380,55 @@ public class InfraredScreenPositioningView  : JCUnityLib.ViewBase
     }
 
 
+    void ConfirmScreenLocateManualTest()
+    {
+        //渲染截图
+        ScreenLocate _screenLocate = FindAnyObjectByType<ScreenLocate>();
+        Texture2D texture2D = _screenLocate.EnterScreenLocateManual();
+        if (texture2D == null)
+        {
+            _screenLocate.QuitScreenLocateManual(null);
+            return ;
+        }
+        _locatePointList.Clear();
+        _texWidth = texture2D.width;
+        _texHeight = texture2D.height;
+        RecordLocatePoint(pos1, new Vector2(0, 0));
+        RecordLocatePoint(pos2, new Vector2(1, 0));
+        RecordLocatePoint(pos3, new Vector2(1, 1));
+        RecordLocatePoint(pos4, new Vector2(0, 1));
+
+        _screenLocate.QuitScreenLocateManual(_locatePointList);
+        //FindObjectOfType<InfraredDemo>().SetLocatePointsToCameraRender(_locatePointList, _texWidth, _texHeight);
+
+
+        GameObject pointsTF2 = GameObject.Find("WebCameraView/CameraImage0/ScreenQuad");
+        pointsTF2.SetActive(true);
+
+        if (pointsTF2.transform.childCount == _locatePointList.Count)
+        {
+            Vector2 texSize = new Vector2(_texWidth, _texHeight);
+            for (int i = 0; i < pointsTF2.transform.childCount; i++)
+            {
+                Transform pointTF = pointsTF2.transform.GetChild(i);
+                Vector2 pos = _locatePointList[i];
+                pointTF.localPosition = pos.pixelToLocalPosition_AnchorCenter(texSize, pointsTF2.GetComponent<RectTransform>().rect);
+                pointTF.gameObject.SetActive(true);
+            }
+        }
+
+        //同步数据
+        ScreenLocate.quadUnityVectorList.Clear();
+        ScreenLocate.quadUnityVectorList.Add(_locatePointList[0]);
+        ScreenLocate.quadUnityVectorList.Add(_locatePointList[1]);
+        //两个点切换,顺序不一样
+        ScreenLocate.quadUnityVectorList.Add(_locatePointList[3]);
+        ScreenLocate.quadUnityVectorList.Add(_locatePointList[2]);
+        ScreenLocate.SaveScreenLocateVectorList();
+
+    }
+
+
     void SaveLocalPos() {
         List<Vector3> screenPositions = new List<Vector3>();
         screenPositions.Add(pos1.anchoredPosition);

+ 86 - 167
Assets/ThirdAssets/Standard Assets/Prototyping/Materials/YellowSmooth.mat

@@ -2,180 +2,99 @@
 %TAG !u! tag:unity3d.com,2011:
 --- !u!21 &2100000
 Material:
-  serializedVersion: 6
+  serializedVersion: 8
   m_ObjectHideFlags: 0
-  m_PrefabParentObject: {fileID: 0}
-  m_PrefabInternal: {fileID: 0}
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
   m_Name: YellowSmooth
   m_Shader: {fileID: 45, guid: 0000000000000000f000000000000000, type: 0}
-  m_ShaderKeywords: _EMISSIONMAP _LIGHTMAPPING_DYNAMIC_LIGHTMAPS _LIGHTMAPPING_REALTIME
-    _UVSEC_UV1
+  m_ValidKeywords:
+  - _EMISSION
+  m_InvalidKeywords:
+  - _EMISSIONMAP
+  - _LIGHTMAPPING_DYNAMIC_LIGHTMAPS
+  - _LIGHTMAPPING_REALTIME
+  - _UVSEC_UV1
   m_LightmapFlags: 0
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
+  disabledShaderPasses: []
   m_SavedProperties:
-    serializedVersion: 2
+    serializedVersion: 3
     m_TexEnvs:
-      data:
-        first:
-          name: _MainTex
-        second:
-          m_Texture: {fileID: 2800000, guid: b4646ae63b0bcca40b1bdde3b87e01bf, type: 3}
-          m_Scale: {x: 4, y: 4}
-          m_Offset: {x: 0, y: 0}
-      data:
-        first:
-          name: _BumpMap
-        second:
-          m_Texture: {fileID: 0}
-          m_Scale: {x: 1, y: 1}
-          m_Offset: {x: 0, y: 0}
-      data:
-        first:
-          name: _DetailNormalMap
-        second:
-          m_Texture: {fileID: 0}
-          m_Scale: {x: 1, y: 1}
-          m_Offset: {x: 0, y: 0}
-      data:
-        first:
-          name: _ParallaxMap
-        second:
-          m_Texture: {fileID: 0}
-          m_Scale: {x: 1, y: 1}
-          m_Offset: {x: 0, y: 0}
-      data:
-        first:
-          name: _OcclusionMap
-        second:
-          m_Texture: {fileID: 0}
-          m_Scale: {x: 1, y: 1}
-          m_Offset: {x: 0, y: 0}
-      data:
-        first:
-          name: _EmissionMap
-        second:
-          m_Texture: {fileID: 0}
-          m_Scale: {x: 1, y: 1}
-          m_Offset: {x: 0, y: 0}
-      data:
-        first:
-          name: _DetailMask
-        second:
-          m_Texture: {fileID: 0}
-          m_Scale: {x: 1, y: 1}
-          m_Offset: {x: 0, y: 0}
-      data:
-        first:
-          name: _DetailAlbedoMap
-        second:
-          m_Texture: {fileID: 0}
-          m_Scale: {x: 1, y: 1}
-          m_Offset: {x: 0, y: 0}
-      data:
-        first:
-          name: _Occlusion
-        second:
-          m_Texture: {fileID: 0}
-          m_Scale: {x: 1, y: 1}
-          m_Offset: {x: 0, y: 0}
-      data:
-        first:
-          name: _MetallicGlossMap
-        second:
-          m_Texture: {fileID: 0}
-          m_Scale: {x: 1, y: 1}
-          m_Offset: {x: 0, y: 0}
-      data:
-        first:
-          name: _SpecGlossMap
-        second:
-          m_Texture: {fileID: 0}
-          m_Scale: {x: 1, y: 1}
-          m_Offset: {x: 0, y: 0}
+    - _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: b4646ae63b0bcca40b1bdde3b87e01bf, type: 3}
+        m_Scale: {x: 4, y: 4}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _Occlusion:
+        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}
+    - _SpecGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Ints: []
     m_Floats:
-      data:
-        first:
-          name: _SrcBlend
-        second: 1
-      data:
-        first:
-          name: _DstBlend
-        second: 0
-      data:
-        first:
-          name: _Cutoff
-        second: .5
-      data:
-        first:
-          name: _AlphaTestRef
-        second: .5
-      data:
-        first:
-          name: _Parallax
-        second: .0199999996
-      data:
-        first:
-          name: _ZWrite
-        second: 1
-      data:
-        first:
-          name: _Glossiness
-        second: .100000001
-      data:
-        first:
-          name: _BumpScale
-        second: 1
-      data:
-        first:
-          name: _OcclusionStrength
-        second: 1
-      data:
-        first:
-          name: _DetailNormalMapScale
-        second: 1
-      data:
-        first:
-          name: _UVSec
-        second: 0
-      data:
-        first:
-          name: _Mode
-        second: 0
-      data:
-        first:
-          name: _Metallic
-        second: .100000001
-      data:
-        first:
-          name: _Lightmapping
-        second: 1
-      data:
-        first:
-          name: _EmissionScaleUI
-        second: 2
+    - _AlphaTestRef: 0.5
+    - _BumpScale: 1
+    - _Cutoff: 0.5
+    - _DetailNormalMapScale: 1
+    - _DstBlend: 0
+    - _EmissionScaleUI: 2
+    - _GlossMapScale: 1
+    - _Glossiness: 0.1
+    - _GlossyReflections: 1
+    - _Lightmapping: 1
+    - _Metallic: 0.1
+    - _Mode: 0
+    - _OcclusionStrength: 1
+    - _Parallax: 0.02
+    - _SmoothnessTextureChannel: 0
+    - _SpecularHighlights: 1
+    - _SrcBlend: 1
+    - _UVSec: 0
+    - _ZWrite: 1
     m_Colors:
-      data:
-        first:
-          name: _EmissionColor
-        second: {r: 0, g: 0, b: 0, a: 1.33483374}
-      data:
-        first:
-          name: _Color
-        second: {r: 1, g: 1, b: 1, a: 1}
-      data:
-        first:
-          name: _SpecColor
-        second: {r: .117647059, g: .117647059, b: .117647059, a: 1}
-      data:
-        first:
-          name: _SpecularColor
-        second: {r: .156862751, g: .156862751, b: .156862751, a: 1}
-      data:
-        first:
-          name: _EmissionColorUI
-        second: {r: 0, g: 0, b: 0, a: 1}
-      data:
-        first:
-          name: _EmissionColorWithMapUI
-        second: {r: 1, g: 1, b: 1, a: 1}
+    - _Color: {r: 1, g: 1, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1.3348337}
+    - _EmissionColorUI: {r: 0, g: 0, b: 0, a: 1}
+    - _EmissionColorWithMapUI: {r: 1, g: 1, b: 1, a: 1}
+    - _SpecColor: {r: 0.11764706, g: 0.11764706, b: 0.11764706, a: 1}
+    - _SpecularColor: {r: 0.15686275, g: 0.15686275, b: 0.15686275, a: 1}
+  m_BuildTextureStacks: []

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.