骑行代码迁移,赛事逻辑初步框架完成
This commit is contained in:
parent
380e67cc1e
commit
ec45246aa4
8
Assets/Resources/UI/Prefab/Match.meta
Normal file
8
Assets/Resources/UI/Prefab/Match.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 54985e7690b31194e95a87aa6f8a95ad
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
1197
Assets/Resources/UI/Prefab/Match/CompetitionRankingPanel.prefab
Normal file
1197
Assets/Resources/UI/Prefab/Match/CompetitionRankingPanel.prefab
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e23c97190520d2d4d835627a7d333d40
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
1400
Assets/Resources/UI/Prefab/Match/CompetitionResultPanel.prefab
Normal file
1400
Assets/Resources/UI/Prefab/Match/CompetitionResultPanel.prefab
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 001ba3d76a793bc40b5db183ae441f11
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
234
Assets/Resources/UI/Prefab/Match/CountDownPanel.prefab
Normal file
234
Assets/Resources/UI/Prefab/Match/CountDownPanel.prefab
Normal file
@ -0,0 +1,234 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &8655198199642205025
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 8655198199642205024}
|
||||||
|
- component: {fileID: 8655198199642205030}
|
||||||
|
- component: {fileID: 8655198199642205031}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Title
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &8655198199642205024
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8655198199642205025}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 8655198200362386541}
|
||||||
|
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.000041962, y: 32.458}
|
||||||
|
m_SizeDelta: {x: 498.98566, y: 64.915596}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &8655198199642205030
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8655198199642205025}
|
||||||
|
m_CullTransparentMesh: 0
|
||||||
|
--- !u!114 &8655198199642205031
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8655198199642205025}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_FontData:
|
||||||
|
m_Font: {fileID: 12800000, guid: 1db9e217733971041be26b076fda6083, type: 3}
|
||||||
|
m_FontSize: 36
|
||||||
|
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: Race begin after
|
||||||
|
--- !u!1 &8655198200362386542
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 8655198200362386541}
|
||||||
|
- component: {fileID: 8655198200362386531}
|
||||||
|
- component: {fileID: 8655198200362386540}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: CountDownPanel
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &8655198200362386541
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8655198200362386542}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 8655198199642205024}
|
||||||
|
- {fileID: 8655198200579522384}
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
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: -520.51, y: 141.25}
|
||||||
|
m_SizeDelta: {x: -1101.0143, y: -742.5}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &8655198200362386531
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8655198200362386542}
|
||||||
|
m_CullTransparentMesh: 0
|
||||||
|
--- !u!114 &8655198200362386540
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8655198200362386542}
|
||||||
|
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.392}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 10907, 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!1 &8655198200579522385
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 8655198200579522384}
|
||||||
|
- component: {fileID: 8655198200579522390}
|
||||||
|
- component: {fileID: 8655198200579522391}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Timer
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &8655198200579522384
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8655198200579522385}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 8655198200362386541}
|
||||||
|
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: -8, y: -39.375}
|
||||||
|
m_SizeDelta: {x: 295.4264, y: 78.74981}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &8655198200579522390
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8655198200579522385}
|
||||||
|
m_CullTransparentMesh: 0
|
||||||
|
--- !u!114 &8655198200579522391
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8655198200579522385}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_FontData:
|
||||||
|
m_Font: {fileID: 12800000, guid: 1db9e217733971041be26b076fda6083, type: 3}
|
||||||
|
m_FontSize: 36
|
||||||
|
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: 00:00:00
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e11813a8e3f6f4e49b49bd840f121b02
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
785
Assets/Resources/UI/Prefab/Match/FinalRankingItem.prefab
Normal file
785
Assets/Resources/UI/Prefab/Match/FinalRankingItem.prefab
Normal file
@ -0,0 +1,785 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &387565771936290546
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1945399037117554846}
|
||||||
|
- component: {fileID: 8929967819597229218}
|
||||||
|
- component: {fileID: 6867390185509525018}
|
||||||
|
- component: {fileID: 776111304942601944}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Name
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &1945399037117554846
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 387565771936290546}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 2470702738328327122}
|
||||||
|
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: -169.48, y: 13.386}
|
||||||
|
m_SizeDelta: {x: 255.83951, y: 26.770844}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &8929967819597229218
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 387565771936290546}
|
||||||
|
m_CullTransparentMesh: 0
|
||||||
|
--- !u!114 &6867390185509525018
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 387565771936290546}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_FontData:
|
||||||
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
|
m_FontSize: 24
|
||||||
|
m_FontStyle: 0
|
||||||
|
m_BestFit: 0
|
||||||
|
m_MinSize: 2
|
||||||
|
m_MaxSize: 40
|
||||||
|
m_Alignment: 0
|
||||||
|
m_AlignByGeometry: 0
|
||||||
|
m_RichText: 1
|
||||||
|
m_HorizontalOverflow: 0
|
||||||
|
m_VerticalOverflow: 0
|
||||||
|
m_LineSpacing: 1
|
||||||
|
m_Text: Name
|
||||||
|
--- !u!114 &776111304942601944
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 387565771936290546}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: e47f6ee11b78f3247a0b474b6c36e2cd, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
--- !u!1 &477974778128357920
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 8918583880764163001}
|
||||||
|
- component: {fileID: 7390776504515078202}
|
||||||
|
- component: {fileID: 8619180685653039787}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Head
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &8918583880764163001
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 477974778128357920}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 2470702738328327122}
|
||||||
|
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: -320.8, y: 9.3074}
|
||||||
|
m_SizeDelta: {x: 35.19715, y: 34.585686}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &7390776504515078202
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 477974778128357920}
|
||||||
|
m_CullTransparentMesh: 0
|
||||||
|
--- !u!114 &8619180685653039787
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 477974778128357920}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Texture: {fileID: 2800000, guid: b83009748905f084887c2d4a34f052fd, type: 3}
|
||||||
|
m_UVRect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
width: 1
|
||||||
|
height: 1
|
||||||
|
--- !u!1 &1203636650522419747
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 8206739373848930593}
|
||||||
|
- component: {fileID: 510753573079622608}
|
||||||
|
- component: {fileID: 8905776654102798812}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Country
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &8206739373848930593
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1203636650522419747}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 2470702738328327122}
|
||||||
|
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: 364.3, y: 13.3}
|
||||||
|
m_SizeDelta: {x: 23.995338, y: 26.600487}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &510753573079622608
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1203636650522419747}
|
||||||
|
m_CullTransparentMesh: 0
|
||||||
|
--- !u!114 &8905776654102798812
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1203636650522419747}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Texture: {fileID: 2800000, guid: b83009748905f084887c2d4a34f052fd, type: 3}
|
||||||
|
m_UVRect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
width: 1
|
||||||
|
height: 1
|
||||||
|
--- !u!1 &2039954414693443182
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5028262886418322962}
|
||||||
|
- component: {fileID: 2948356824209932300}
|
||||||
|
- component: {fileID: 6975949818572773739}
|
||||||
|
- component: {fileID: 2826938124940003444}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Heart
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &5028262886418322962
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2039954414693443182}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 2470702738328327122}
|
||||||
|
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: 236.2, y: -18.985}
|
||||||
|
m_SizeDelta: {x: 93.399994, y: 22}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &2948356824209932300
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2039954414693443182}
|
||||||
|
m_CullTransparentMesh: 0
|
||||||
|
--- !u!114 &6975949818572773739
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2039954414693443182}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_FontData:
|
||||||
|
m_Font: {fileID: 12800000, guid: 1db9e217733971041be26b076fda6083, type: 3}
|
||||||
|
m_FontSize: 18
|
||||||
|
m_FontStyle: 0
|
||||||
|
m_BestFit: 0
|
||||||
|
m_MinSize: 1
|
||||||
|
m_MaxSize: 40
|
||||||
|
m_Alignment: 0
|
||||||
|
m_AlignByGeometry: 0
|
||||||
|
m_RichText: 1
|
||||||
|
m_HorizontalOverflow: 0
|
||||||
|
m_VerticalOverflow: 0
|
||||||
|
m_LineSpacing: 1
|
||||||
|
m_Text: 100bpm
|
||||||
|
--- !u!114 &2826938124940003444
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2039954414693443182}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: e47f6ee11b78f3247a0b474b6c36e2cd, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
--- !u!1 &3402143849051894530
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5776800250494938657}
|
||||||
|
- component: {fileID: 914885949612555739}
|
||||||
|
- component: {fileID: 1049020844800666480}
|
||||||
|
- component: {fileID: 2189283391476243351}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Timer
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &5776800250494938657
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3402143849051894530}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 2470702738328327122}
|
||||||
|
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: 241.91, y: 11}
|
||||||
|
m_SizeDelta: {x: 104.829956, y: 22}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &914885949612555739
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3402143849051894530}
|
||||||
|
m_CullTransparentMesh: 0
|
||||||
|
--- !u!114 &1049020844800666480
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3402143849051894530}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_FontData:
|
||||||
|
m_Font: {fileID: 12800000, guid: 1db9e217733971041be26b076fda6083, type: 3}
|
||||||
|
m_FontSize: 18
|
||||||
|
m_FontStyle: 0
|
||||||
|
m_BestFit: 0
|
||||||
|
m_MinSize: 1
|
||||||
|
m_MaxSize: 40
|
||||||
|
m_Alignment: 0
|
||||||
|
m_AlignByGeometry: 0
|
||||||
|
m_RichText: 1
|
||||||
|
m_HorizontalOverflow: 0
|
||||||
|
m_VerticalOverflow: 0
|
||||||
|
m_LineSpacing: 1
|
||||||
|
m_Text: "00\uFF1A00\uFF1A00"
|
||||||
|
--- !u!114 &2189283391476243351
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3402143849051894530}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: e47f6ee11b78f3247a0b474b6c36e2cd, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
--- !u!1 &3638718135352563336
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 2470702738328327122}
|
||||||
|
- component: {fileID: 2235010553136405887}
|
||||||
|
- component: {fileID: 5174577417352346134}
|
||||||
|
- component: {fileID: 6946663127870700282}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: FinalRankingItem
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &2470702738328327122
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3638718135352563336}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 8637168095196952554}
|
||||||
|
- {fileID: 1945399037117554846}
|
||||||
|
- {fileID: 5028262886418322962}
|
||||||
|
- {fileID: 5776800250494938657}
|
||||||
|
- {fileID: 6005805997969872739}
|
||||||
|
- {fileID: 4070024285971270188}
|
||||||
|
- {fileID: 8918583880764163001}
|
||||||
|
- {fileID: 8206739373848930593}
|
||||||
|
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: 800, y: 69.91507}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &2235010553136405887
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3638718135352563336}
|
||||||
|
m_CullTransparentMesh: 0
|
||||||
|
--- !u!114 &5174577417352346134
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3638718135352563336}
|
||||||
|
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.392}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 10907, 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!114 &6946663127870700282
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3638718135352563336}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 1e64a5b2fb6d4f3418094195460237d1, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
--- !u!1 &6168534200313274756
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 6005805997969872739}
|
||||||
|
- component: {fileID: 2862083170618635592}
|
||||||
|
- component: {fileID: 6508256954569929105}
|
||||||
|
- component: {fileID: 3066426405193871421}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Power
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &6005805997969872739
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6168534200313274756}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 2470702738328327122}
|
||||||
|
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: -265.08, y: -18.985}
|
||||||
|
m_SizeDelta: {x: 64.64496, y: 22}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &2862083170618635592
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6168534200313274756}
|
||||||
|
m_CullTransparentMesh: 0
|
||||||
|
--- !u!114 &6508256954569929105
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6168534200313274756}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_FontData:
|
||||||
|
m_Font: {fileID: 12800000, guid: 1db9e217733971041be26b076fda6083, type: 3}
|
||||||
|
m_FontSize: 18
|
||||||
|
m_FontStyle: 0
|
||||||
|
m_BestFit: 0
|
||||||
|
m_MinSize: 1
|
||||||
|
m_MaxSize: 40
|
||||||
|
m_Alignment: 0
|
||||||
|
m_AlignByGeometry: 0
|
||||||
|
m_RichText: 1
|
||||||
|
m_HorizontalOverflow: 0
|
||||||
|
m_VerticalOverflow: 0
|
||||||
|
m_LineSpacing: 1
|
||||||
|
m_Text: 3000w
|
||||||
|
--- !u!114 &3066426405193871421
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6168534200313274756}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: e47f6ee11b78f3247a0b474b6c36e2cd, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
--- !u!1 &8554795462613962202
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 4070024285971270188}
|
||||||
|
- component: {fileID: 280639950050165111}
|
||||||
|
- component: {fileID: 5842543041269499732}
|
||||||
|
- component: {fileID: 8378477932830490383}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: WKG
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &4070024285971270188
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8554795462613962202}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 2470702738328327122}
|
||||||
|
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: -0.000030518, y: -18.985}
|
||||||
|
m_SizeDelta: {x: 90.805115, y: 22}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &280639950050165111
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8554795462613962202}
|
||||||
|
m_CullTransparentMesh: 0
|
||||||
|
--- !u!114 &5842543041269499732
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8554795462613962202}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_FontData:
|
||||||
|
m_Font: {fileID: 12800000, guid: 1db9e217733971041be26b076fda6083, type: 3}
|
||||||
|
m_FontSize: 18
|
||||||
|
m_FontStyle: 0
|
||||||
|
m_BestFit: 0
|
||||||
|
m_MinSize: 1
|
||||||
|
m_MaxSize: 40
|
||||||
|
m_Alignment: 0
|
||||||
|
m_AlignByGeometry: 0
|
||||||
|
m_RichText: 1
|
||||||
|
m_HorizontalOverflow: 0
|
||||||
|
m_VerticalOverflow: 0
|
||||||
|
m_LineSpacing: 1
|
||||||
|
m_Text: 4.55W/KG
|
||||||
|
--- !u!114 &8378477932830490383
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8554795462613962202}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: e47f6ee11b78f3247a0b474b6c36e2cd, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
--- !u!1 &8637168095196952555
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 8637168095196952554}
|
||||||
|
- component: {fileID: 8637168095196952559}
|
||||||
|
- component: {fileID: 8637168095196952556}
|
||||||
|
- component: {fileID: 8637168095196952557}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Ranking
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &8637168095196952554
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8637168095196952555}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 2470702738328327122}
|
||||||
|
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: -367.15, y: -0.17348}
|
||||||
|
m_SizeDelta: {x: 39.526814, y: 34.238728}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &8637168095196952559
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8637168095196952555}
|
||||||
|
m_CullTransparentMesh: 0
|
||||||
|
--- !u!114 &8637168095196952556
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8637168095196952555}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_FontData:
|
||||||
|
m_Font: {fileID: 12800000, guid: 1db9e217733971041be26b076fda6083, type: 3}
|
||||||
|
m_FontSize: 24
|
||||||
|
m_FontStyle: 0
|
||||||
|
m_BestFit: 0
|
||||||
|
m_MinSize: 2
|
||||||
|
m_MaxSize: 40
|
||||||
|
m_Alignment: 4
|
||||||
|
m_AlignByGeometry: 0
|
||||||
|
m_RichText: 1
|
||||||
|
m_HorizontalOverflow: 0
|
||||||
|
m_VerticalOverflow: 0
|
||||||
|
m_LineSpacing: 1
|
||||||
|
m_Text: 1
|
||||||
|
--- !u!114 &8637168095196952557
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8637168095196952555}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: e47f6ee11b78f3247a0b474b6c36e2cd, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1a7b6d4e60a4e4c4bbbd465f14899150
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
File diff suppressed because it is too large
Load Diff
@ -1,157 +0,0 @@
|
|||||||
using Assets.Scenes.Ride.Scripts.Model;
|
|
||||||
using Assets.Scripts;
|
|
||||||
using System;
|
|
||||||
using System.Linq;
|
|
||||||
using UnityEngine;
|
|
||||||
using UnityEngine.EventSystems;
|
|
||||||
using UnityEngine.UI;
|
|
||||||
|
|
||||||
namespace Assets.Scenes.Ride.Scripts
|
|
||||||
{
|
|
||||||
public class NearByFactory : MonoBehaviour
|
|
||||||
{
|
|
||||||
PlayerController playerController;
|
|
||||||
private GameObject nearByItem;
|
|
||||||
private GameObject nearByMajorItem;
|
|
||||||
private GameObject scroll;
|
|
||||||
GameObject body;
|
|
||||||
|
|
||||||
private int bufferSize = 0;
|
|
||||||
private int pageIndex = 1;
|
|
||||||
private int pageSize =7;
|
|
||||||
|
|
||||||
private int preNum = 0;//前面的数量
|
|
||||||
private int offset = 8;//显示区域的数量
|
|
||||||
|
|
||||||
CyclingController cyclingController;
|
|
||||||
private void Awake()
|
|
||||||
{
|
|
||||||
cyclingController = FindObjectOfType<CyclingController>();
|
|
||||||
playerController = FindObjectOfType<PlayerController>();
|
|
||||||
nearByItem = Resources.Load<GameObject>("UI/Prefab/Ride/NearbyItem");
|
|
||||||
nearByMajorItem = Resources.Load<GameObject>("UI/Prefab/Ride/NearbyMajorItem");
|
|
||||||
scroll = transform.parent.parent.gameObject;
|
|
||||||
if (scroll != null)
|
|
||||||
{
|
|
||||||
UIManager.AddEvent(scroll, UnityEngine.EventSystems.EventTriggerType.EndDrag, OnEndDrag);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
bool startMouse = false;
|
|
||||||
float t =1f;
|
|
||||||
private void Update()
|
|
||||||
{
|
|
||||||
if (Input.GetAxis("Mouse ScrollWheel") != 0)
|
|
||||||
{
|
|
||||||
if (scroll.GetComponent<ScrollRect>().verticalNormalizedPosition <= 0 ||
|
|
||||||
scroll.GetComponent<ScrollRect>().verticalNormalizedPosition >= (pageIndex == 0 ? 1.2 : 1))
|
|
||||||
{
|
|
||||||
startMouse = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (startMouse)
|
|
||||||
{
|
|
||||||
startMouse = false;
|
|
||||||
OnEndDrag(null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
t -= Time.deltaTime;
|
|
||||||
while (t < 0)
|
|
||||||
{
|
|
||||||
Utils.DestroyChildren(transform);
|
|
||||||
var nearList = MapUDPService.GetNearRiderData(pageIndex, pageSize, new double[] { playerController.Currentlatlong.x, playerController.Currentlatlong.y });
|
|
||||||
totalPages = MapUDPService.GetNearRiderCount();
|
|
||||||
for (int i = 0; i < nearList.Count(); i++)
|
|
||||||
{
|
|
||||||
Create(nearList[i]);
|
|
||||||
}
|
|
||||||
t = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
private int totalPages = 0;
|
|
||||||
private void OnEndDrag(BaseEventData arg0)
|
|
||||||
{
|
|
||||||
var scrollrect = scroll.GetComponent<ScrollRect>();
|
|
||||||
if (scrollrect.verticalNormalizedPosition <= 0)
|
|
||||||
{
|
|
||||||
var p = pageIndex + 1;
|
|
||||||
if (p * pageSize <= totalPages)
|
|
||||||
{
|
|
||||||
pageIndex++;
|
|
||||||
}
|
|
||||||
//RefreshList();
|
|
||||||
|
|
||||||
}
|
|
||||||
if (scrollrect.verticalNormalizedPosition >= (pageIndex == 0 ? 1.2 : 1))
|
|
||||||
{
|
|
||||||
var p = pageIndex - 1;
|
|
||||||
if (p > 0)
|
|
||||||
{
|
|
||||||
pageIndex--;
|
|
||||||
}
|
|
||||||
//if (pageIndex > 0)
|
|
||||||
// pageIndex--;
|
|
||||||
//RefreshList();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void RefreshList()
|
|
||||||
{
|
|
||||||
var nearList = MapUDPService.GetNearRiderData(pageIndex, pageSize, new double[] { playerController.Currentlatlong.x, playerController.Currentlatlong.y });
|
|
||||||
|
|
||||||
for (int i = 0; i < nearList.Count(); i++)
|
|
||||||
{
|
|
||||||
if (bufferSize < pageSize)
|
|
||||||
{
|
|
||||||
Create(nearList[i]);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
UpdateItem(nearList[i],i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
private void Create(NearRiderModel item)
|
|
||||||
{
|
|
||||||
//创建
|
|
||||||
GameObject prefabItem = item.IsSelf ? nearByMajorItem : nearByItem;
|
|
||||||
GameObject newObj = (GameObject)Instantiate(prefabItem, transform);
|
|
||||||
var nearByItemscript = newObj.GetComponent<NearByItemScript>();
|
|
||||||
nearByItemscript.setUserId(item.Id);
|
|
||||||
nearByItemscript.setName(item.Name);
|
|
||||||
nearByItemscript.setRatio(item.KGWeight+"W/KG");
|
|
||||||
nearByItemscript.setSpeed(item.Speed.ToString() + "KM/H");
|
|
||||||
nearByItemscript.setHead(item.Headimage);
|
|
||||||
nearByItemscript.setCountry(cyclingController.GetCountryImageByName(item.Country));
|
|
||||||
nearByItemscript.setDistance(item.Near.ToString() + "KM");
|
|
||||||
bufferSize++;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void UpdateItem(NearRiderModel item,int index)
|
|
||||||
{
|
|
||||||
for (int i = 0; i < transform.childCount; i++)
|
|
||||||
{
|
|
||||||
var child = transform.GetChild(i);
|
|
||||||
if (child != null)
|
|
||||||
{
|
|
||||||
NearByItemScript nearByItemscript = child.GetComponent<NearByItemScript>();
|
|
||||||
if (nearByItemscript.UserId == item.Id)
|
|
||||||
{
|
|
||||||
nearByItemscript.setName(item.Name);
|
|
||||||
nearByItemscript.setRatio(item.KGWeight + "W/KG");
|
|
||||||
nearByItemscript.setSpeed(item.Speed.ToString() + "KM/H");
|
|
||||||
//nearByItemscript.setHead(item.Headimage);
|
|
||||||
//nearByItemscript.setCountry(item.CountryImg);
|
|
||||||
nearByItemscript.setDistance(item.Near.ToString() + "KM");
|
|
||||||
if (index != i)//重排序
|
|
||||||
{
|
|
||||||
child.SetSiblingIndex(index);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -72,10 +72,14 @@ namespace Assets.Scripts.Apis
|
|||||||
data = Newtonsoft.Json.JsonConvert.DeserializeObject<MapCompetitionDetailModel>(JsonConvert.SerializeObject(list.data))
|
data = Newtonsoft.Json.JsonConvert.DeserializeObject<MapCompetitionDetailModel>(JsonConvert.SerializeObject(list.data))
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
//报名必比赛
|
//报名比赛
|
||||||
public JsonResult ApplyMapCompetition(int id)
|
public async Task<JsonResult> ApplyMapCompetition(int id)
|
||||||
{
|
{
|
||||||
return Get<JsonResult>($"/MapCompetition/ApplyMapCompetition?id={ id }");
|
var param = new
|
||||||
|
{
|
||||||
|
id = id,
|
||||||
|
};
|
||||||
|
return await PostAsync<JsonResult>($"/MapCompetition/ApplyMapCompetition", param);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -21,7 +21,7 @@
|
|||||||
public double WeightKg { get; set; }
|
public double WeightKg { get; set; }
|
||||||
public double TripDistance { get; set; }
|
public double TripDistance { get; set; }
|
||||||
public double TotalDistance { get; set; }
|
public double TotalDistance { get; set; }
|
||||||
public int? AverageHeartRate { get; set; }
|
public double? AverageHeartRate { get; set; }
|
||||||
public double BicycleWeight { get; set; }
|
public double BicycleWeight { get; set; }
|
||||||
public string NickName { get; set; }
|
public string NickName { get; set; }
|
||||||
public string Country { get; set; }
|
public string Country { get; set; }
|
||||||
|
|||||||
@ -47,6 +47,7 @@ public static class App
|
|||||||
public static IPEndPoint UdpAddress { get; private set; } = new IPEndPoint(IPAddress.Parse("192.168.0.97"), 11000);
|
public static IPEndPoint UdpAddress { get; private set; } = new IPEndPoint(IPAddress.Parse("192.168.0.97"), 11000);
|
||||||
public static IPEndPoint TcpAddress { get; private set; } = new IPEndPoint(IPAddress.Parse("192.168.0.97"), 21001);
|
public static IPEndPoint TcpAddress { get; private set; } = new IPEndPoint(IPAddress.Parse("192.168.0.97"), 21001);
|
||||||
public static UpdateModel UpdateObject { get; set; }
|
public static UpdateModel UpdateObject { get; set; }
|
||||||
|
public static int CompetionId { get; set; }//比赛id
|
||||||
//public static string AppDownloadUrl { get; internal set; }
|
//public static string AppDownloadUrl { get; internal set; }
|
||||||
//public static string AppVersionCode { get; internal set; }
|
//public static string AppVersionCode { get; internal set; }
|
||||||
|
|
||||||
@ -69,13 +70,13 @@ public static class App
|
|||||||
//currentCulture.NumberFormat.NumberDecimalSeparator = ".";
|
//currentCulture.NumberFormat.NumberDecimalSeparator = ".";
|
||||||
//Thread.CurrentThread.CurrentCulture = currentCulture;
|
//Thread.CurrentThread.CurrentCulture = currentCulture;
|
||||||
//System.Globalization.CultureInfo.DefaultThreadCurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
|
//System.Globalization.CultureInfo.DefaultThreadCurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
|
||||||
#if !UNITY_EDITOR
|
//#if !UNITY_EDITOR
|
||||||
// Host = "http://pf.juze.pro/";
|
//// Host = "http://pf.juze.pro/";
|
||||||
// UdpAddress = new IPEndPoint(IPAddress.Parse("47.97.84.8"), 21000);
|
//// UdpAddress = new IPEndPoint(IPAddress.Parse("47.97.84.8"), 21000);
|
||||||
// TcpAddress = new IPEndPoint(IPAddress.Parse("47.97.84.8"), 21001);
|
//// TcpAddress = new IPEndPoint(IPAddress.Parse("47.97.84.8"), 21001);
|
||||||
Host = "https://wx.powerfun.com.cn/";
|
// Host = "https://wx.powerfun.com.cn/";
|
||||||
UdpAddress = new IPEndPoint(IPAddress.Parse("47.97.84.8"), 11000);
|
// UdpAddress = new IPEndPoint(IPAddress.Parse("47.97.84.8"), 11000);
|
||||||
TcpAddress = new IPEndPoint(IPAddress.Parse("47.97.84.8"), 11001);
|
// TcpAddress = new IPEndPoint(IPAddress.Parse("47.97.84.8"), 11001);
|
||||||
#endif
|
//#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
8
Assets/Scripts/Scenes/Ride/Model.meta
Normal file
8
Assets/Scripts/Scenes/Ride/Model.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d89e303a3008b774e87b6ba0a35ea20b
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/Scripts/Scenes/Ride/Network.meta
Normal file
8
Assets/Scripts/Scenes/Ride/Network.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7cecb30d95cebeb43b5768b505937c28
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
93
Assets/Scripts/Scenes/Ride/Scripts/BaseListFactory.cs
Normal file
93
Assets/Scripts/Scenes/Ride/Scripts/BaseListFactory.cs
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
using Assets.Scenes.Ride.Scripts.Model;
|
||||||
|
using Assets.Scripts;
|
||||||
|
using System;
|
||||||
|
using System.Linq;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.EventSystems;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
namespace Assets.Scenes.Ride.Scripts
|
||||||
|
{
|
||||||
|
public class BaseListFactory : MonoBehaviour
|
||||||
|
{
|
||||||
|
protected AbstractPlayer playerController;
|
||||||
|
protected CyclingController cyclingController;
|
||||||
|
|
||||||
|
protected GameObject nearByItem;
|
||||||
|
protected GameObject nearByMajorItem;
|
||||||
|
private GameObject scroll;
|
||||||
|
private GameObject body;
|
||||||
|
|
||||||
|
protected int totalPages = 0;
|
||||||
|
protected int bufferSize = 0;
|
||||||
|
protected int pageIndex = 1;
|
||||||
|
protected int pageSize = 7;
|
||||||
|
private int preNum = 0;//前面的数量
|
||||||
|
private int offset = 8;//显示区域的数量
|
||||||
|
|
||||||
|
protected bool startMouse = false;
|
||||||
|
protected float t = 1f;
|
||||||
|
|
||||||
|
protected virtual void Awake()
|
||||||
|
{
|
||||||
|
scroll = transform.parent.parent.gameObject;
|
||||||
|
if (scroll != null)
|
||||||
|
{
|
||||||
|
UIManager.AddEvent(scroll, UnityEngine.EventSystems.EventTriggerType.EndDrag, OnEndDrag);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Update()
|
||||||
|
{
|
||||||
|
if (Input.GetAxis("Mouse ScrollWheel") != 0)
|
||||||
|
{
|
||||||
|
if (scroll.GetComponent<ScrollRect>().verticalNormalizedPosition <= 0 ||
|
||||||
|
scroll.GetComponent<ScrollRect>().verticalNormalizedPosition >= (pageIndex == 0 ? 1.2 : 1))
|
||||||
|
{
|
||||||
|
startMouse = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (startMouse)
|
||||||
|
{
|
||||||
|
startMouse = false;
|
||||||
|
OnEndDrag(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
t -= Time.deltaTime;
|
||||||
|
while (t < 0)
|
||||||
|
{
|
||||||
|
Utils.DestroyChildren(transform);
|
||||||
|
CreateList();
|
||||||
|
t = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
protected virtual void CreateList()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
private void OnEndDrag(BaseEventData arg0)
|
||||||
|
{
|
||||||
|
var scrollrect = scroll.GetComponent<ScrollRect>();
|
||||||
|
if (scrollrect.verticalNormalizedPosition <= 0)
|
||||||
|
{
|
||||||
|
var p = pageIndex + 1;
|
||||||
|
if (p * pageSize <= totalPages)
|
||||||
|
{
|
||||||
|
pageIndex++;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
if (scrollrect.verticalNormalizedPosition >= (pageIndex == 0 ? 1.2 : 1))
|
||||||
|
{
|
||||||
|
var p = pageIndex - 1;
|
||||||
|
if (p > 0)
|
||||||
|
{
|
||||||
|
pageIndex--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Assets/Scripts/Scenes/Ride/Scripts/BaseListFactory.cs.meta
Normal file
11
Assets/Scripts/Scenes/Ride/Scripts/BaseListFactory.cs.meta
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: be7bdc22e15ad254da04ebf9dc274fe5
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -233,6 +233,7 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
|
|
||||||
private Transform player;
|
private Transform player;
|
||||||
private MapRoute routeInstance;
|
private MapRoute routeInstance;
|
||||||
|
public AbstractPlayer currentPlayer { get; set; }//当前选中用户
|
||||||
|
|
||||||
private float time = 1f;
|
private float time = 1f;
|
||||||
private float? localY;
|
private float? localY;
|
||||||
@ -243,6 +244,7 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
public void Init()
|
public void Init()
|
||||||
{
|
{
|
||||||
playerController = FindObjectOfType<PlayerController>();
|
playerController = FindObjectOfType<PlayerController>();
|
||||||
|
currentPlayer = playerController;//默认当前用户为当前选中用户
|
||||||
mainController = FindObjectOfType<CyclingController>();
|
mainController = FindObjectOfType<CyclingController>();
|
||||||
player = transform.parent.Find("Player");
|
player = transform.parent.Find("Player");
|
||||||
var route = mainController.GetRoute();
|
var route = mainController.GetRoute();
|
||||||
@ -301,6 +303,8 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
ChangeView(null);
|
ChangeView(null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//移动摄像头和箭头位置
|
//移动摄像头和箭头位置
|
||||||
public void MoveCamera()
|
public void MoveCamera()
|
||||||
{
|
{
|
||||||
@ -392,7 +396,7 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
|
|
||||||
}
|
}
|
||||||
//暂停游戏
|
//暂停游戏
|
||||||
public void PauseRide(BaseEventData baseEventData)
|
public virtual void PauseRide(BaseEventData baseEventData)
|
||||||
{
|
{
|
||||||
mainController.SetPause();
|
mainController.SetPause();
|
||||||
count = 0;
|
count = 0;
|
||||||
@ -401,7 +405,7 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
startPanel.SetActive(true);
|
startPanel.SetActive(true);
|
||||||
}
|
}
|
||||||
//保存游戏
|
//保存游戏
|
||||||
public void SaveRide(BaseEventData baseEventData)
|
public virtual void SaveRide(BaseEventData baseEventData)
|
||||||
{
|
{
|
||||||
if (playerController.TotalTicks > 0 && !mainController.isQuit)
|
if (playerController.TotalTicks > 0 && !mainController.isQuit)
|
||||||
{
|
{
|
||||||
@ -415,7 +419,7 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
//不保存退出
|
//不保存退出
|
||||||
public void CancelQuit(BaseEventData baseEventData)
|
public virtual void CancelQuit(BaseEventData baseEventData)
|
||||||
{
|
{
|
||||||
quitPanel.SetActive(false);
|
quitPanel.SetActive(false);
|
||||||
SceneManager.LoadScene("MainScene");
|
SceneManager.LoadScene("MainScene");
|
||||||
@ -431,7 +435,7 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
mainController.ChangeMapImageStyle(arrow.gameObject);
|
mainController.ChangeMapImageStyle(arrow.gameObject);
|
||||||
}
|
}
|
||||||
//结束游戏
|
//结束游戏
|
||||||
public void StopRide(BaseEventData baseEventData)
|
public virtual void StopRide(BaseEventData baseEventData)
|
||||||
{
|
{
|
||||||
if (playerController.TotalTicks > 0)
|
if (playerController.TotalTicks > 0)
|
||||||
{
|
{
|
||||||
@ -0,0 +1,50 @@
|
|||||||
|
using Assets.Scenes.Ride.Scripts.Model;
|
||||||
|
using Assets.Scenes.Ride.Scripts.Model.CyclingModels;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace Assets.Scenes.Ride.Scripts
|
||||||
|
{
|
||||||
|
public class CompetitionRankingFactory : BaseListFactory
|
||||||
|
{
|
||||||
|
private List<CompetitionRankingSortModel> rankingList {get;set;}
|
||||||
|
protected override void Awake()
|
||||||
|
{
|
||||||
|
base.Awake();
|
||||||
|
cyclingController = FindObjectOfType<CyclingController>();
|
||||||
|
playerController = FindObjectOfType<PlayerController>();
|
||||||
|
nearByItem = Resources.Load<GameObject>("UI/Prefab/Ride/NearbyItem");
|
||||||
|
nearByMajorItem = Resources.Load<GameObject>("UI/Prefab/Ride/NearbyMajorItem");
|
||||||
|
}
|
||||||
|
protected override void CreateList()
|
||||||
|
{
|
||||||
|
//获取实时排名
|
||||||
|
CompetitionModel s = cyclingController.cyclingController as CompetitionModel;
|
||||||
|
var ss = s?.competitionRankingModel;
|
||||||
|
rankingList = ss?.Sorts;
|
||||||
|
|
||||||
|
if (rankingList == null) return;
|
||||||
|
totalPages = rankingList.Count();
|
||||||
|
for (int i = 0; i < rankingList.Count(); i++)
|
||||||
|
{
|
||||||
|
Create(rankingList[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void Create(CompetitionRankingSortModel item)
|
||||||
|
{
|
||||||
|
//创建
|
||||||
|
GameObject prefabItem = item.IsSelf ? nearByMajorItem : nearByItem;
|
||||||
|
GameObject newObj = (GameObject)Instantiate(prefabItem, transform);
|
||||||
|
var nearByItemscript = newObj.GetComponent<NearByItemScript>();
|
||||||
|
nearByItemscript.setUserId(item.UserId);
|
||||||
|
nearByItemscript.setName(item.Name);
|
||||||
|
nearByItemscript.setRatio(item.KGWeight+"W/KG");
|
||||||
|
nearByItemscript.setSpeed(item.Speed.ToString() + "KM/H");
|
||||||
|
//nearByItemscript.setHead(item.Headimage);
|
||||||
|
//nearByItemscript.setCountry(cyclingController.GetCountryImageByName(item.));
|
||||||
|
nearByItemscript.setDistance(item.Near.ToString() + "KM");
|
||||||
|
bufferSize++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3a572f54bd2296f41a2b47567f33fd64
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -0,0 +1,59 @@
|
|||||||
|
using Assets.Scenes.Ride.Scripts.Model.CyclingModels;
|
||||||
|
using Assets.Scripts;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.EventSystems;
|
||||||
|
using UnityEngine.SceneManagement;
|
||||||
|
|
||||||
|
namespace Assets.Scenes.Ride.Scripts
|
||||||
|
{
|
||||||
|
public class CompetitionResultFactory: MonoBehaviour
|
||||||
|
{
|
||||||
|
CyclingController cyclingController;
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
cyclingController = FindObjectOfType<CyclingController>();
|
||||||
|
var closeBtn = transform.Find("Close").gameObject;
|
||||||
|
UIManager.AddEvent(closeBtn, UnityEngine.EventSystems.EventTriggerType.PointerClick, Close);
|
||||||
|
}
|
||||||
|
|
||||||
|
float time = 1;
|
||||||
|
private void Update()
|
||||||
|
{
|
||||||
|
time -= Time.deltaTime;
|
||||||
|
while (time < 0)
|
||||||
|
{
|
||||||
|
Refresh();
|
||||||
|
time = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Refresh()
|
||||||
|
{
|
||||||
|
if (cyclingController.cyclingController is CompetitionModel model)
|
||||||
|
{
|
||||||
|
var list = model?.competitionRankingModel?.Results;
|
||||||
|
if (list == null) return;
|
||||||
|
var parent = transform.Find("ScrollView/Viewport/Content");
|
||||||
|
Utils.DestroyChildren(parent);
|
||||||
|
foreach (var item in list)
|
||||||
|
{
|
||||||
|
var finalRankingItem = Instantiate(Resources.Load<GameObject>("UI/Prefab/Match/FinalRankingItem"), parent);
|
||||||
|
var finalRankingItemScript = finalRankingItem.GetComponent<FinalRankingItemScript>();
|
||||||
|
finalRankingItemScript.setRanking(item.Index.ToString());
|
||||||
|
finalRankingItemScript.setHeartRate(item.HeartRate.ToString("f0"));
|
||||||
|
finalRankingItemScript.setName(item.Name);
|
||||||
|
finalRankingItemScript.setPower(item.Power.ToString());
|
||||||
|
finalRankingItemScript.setRatio(item.WeightKg.ToString("f2"));
|
||||||
|
finalRankingItemScript.setTimer(item.TripTime);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Close(BaseEventData baseEventData)
|
||||||
|
{
|
||||||
|
this.gameObject.SetActive(false);
|
||||||
|
this.Destroy();
|
||||||
|
SceneManager.LoadScene("MainScene");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c7fed0d77ca8dce4a85ed6f9a848355d
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
125
Assets/Scripts/Scenes/Ride/Scripts/CompetitionUIManager.cs
Normal file
125
Assets/Scripts/Scenes/Ride/Scripts/CompetitionUIManager.cs
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
using DG.Tweening;
|
||||||
|
using Assets.Scenes.Ride.Scripts.Model;
|
||||||
|
using UnityEngine.EventSystems;
|
||||||
|
using Assets.Scenes.Ride.Scripts.Model.CyclingModels;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
using Assets.Scripts;
|
||||||
|
using Assets.Scripts.Apis;
|
||||||
|
|
||||||
|
namespace Assets.Scenes.Ride.Scripts
|
||||||
|
{
|
||||||
|
public class CompetitionUIManager : BaseUIManager
|
||||||
|
{
|
||||||
|
protected override void Awake()
|
||||||
|
{
|
||||||
|
base.Awake();
|
||||||
|
}
|
||||||
|
GameObject countDownPanel;
|
||||||
|
Text title;
|
||||||
|
Text timer;
|
||||||
|
protected override void Start()
|
||||||
|
{
|
||||||
|
base.Start();
|
||||||
|
//创建倒计时面板
|
||||||
|
countDownPanel = Instantiate(Resources.Load<GameObject>("UI/Prefab/Match/CountDownPanel"), transform.Find("Panel"));
|
||||||
|
title = countDownPanel.transform.Find("Title").GetComponent<Text>();
|
||||||
|
timer = countDownPanel.transform.Find("Timer").GetComponent<Text>();
|
||||||
|
countDownPanel.SetActive(false);
|
||||||
|
ShowCurrentRanking();
|
||||||
|
|
||||||
|
}
|
||||||
|
protected override void Update()
|
||||||
|
{
|
||||||
|
base.Update();
|
||||||
|
CountDown();
|
||||||
|
}
|
||||||
|
|
||||||
|
//开始游戏触发事件
|
||||||
|
public void StartRide(BaseEventData baseEventData)
|
||||||
|
{
|
||||||
|
this.StartRide();
|
||||||
|
}
|
||||||
|
CompetitionModel competitionModel;
|
||||||
|
bool canStart = false;
|
||||||
|
//开始骑行-加个5秒钟倒计时
|
||||||
|
public override void StartRide()
|
||||||
|
{
|
||||||
|
competitionModel = mainController.cyclingController as CompetitionModel;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void CountDown()
|
||||||
|
{
|
||||||
|
count = competitionModel?.StartCountdown()??0;
|
||||||
|
canStart = competitionModel?.CanStart()??false;
|
||||||
|
//比赛开始前倒计时
|
||||||
|
if (count >= 0)
|
||||||
|
{
|
||||||
|
//显示倒计时面板信息
|
||||||
|
showCountDown(count, "Get ready!");
|
||||||
|
}
|
||||||
|
//比赛开始
|
||||||
|
if (count<=0 && canStart)
|
||||||
|
{
|
||||||
|
mainController.SetStart();
|
||||||
|
countDownPanel.SetActive(false);
|
||||||
|
}
|
||||||
|
//比赛进行中
|
||||||
|
if (competitionModel != null)
|
||||||
|
{
|
||||||
|
//显示结果
|
||||||
|
if (competitionModel.mapCompetition?.HasRecord ?? false)
|
||||||
|
{
|
||||||
|
ShowResultList();
|
||||||
|
}
|
||||||
|
var s = competitionModel?.EndCountDown();
|
||||||
|
//显示关门时间
|
||||||
|
if (s.Value.Item2)
|
||||||
|
{
|
||||||
|
//显示倒计时面板信息
|
||||||
|
showCountDown(s.Value.Item1, "remaining");
|
||||||
|
if (s.Value.Item1 <= 0)
|
||||||
|
{
|
||||||
|
//自动保存,游戏设置结束
|
||||||
|
base.SaveRide(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//显示当前比赛进行多长时间了
|
||||||
|
timerTxt.text = competitionModel.ShowTime;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void showCountDown(int count,string text)
|
||||||
|
{
|
||||||
|
countDownPanel.SetActive(true);
|
||||||
|
title.text = text;
|
||||||
|
timer.text = Helper.FormatTicks(count);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void ContinueRide()
|
||||||
|
{
|
||||||
|
MapCompetitionApi s = new MapCompetitionApi();
|
||||||
|
_ = s.ApplyMapCompetition(App.CompetionId);
|
||||||
|
mainController.SetCyclingModel(CyclingModel.Competition);
|
||||||
|
}
|
||||||
|
public override void PauseRide(BaseEventData baseEventData)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
//实时显示当前比赛排名
|
||||||
|
GameObject competitionRankingList;
|
||||||
|
public void ShowCurrentRanking()
|
||||||
|
{
|
||||||
|
competitionRankingList = Instantiate(Resources.Load<GameObject>("UI/Prefab/Match/CompetitionRankingPanel"), transform.Find("Panel"));
|
||||||
|
}
|
||||||
|
GameObject competitionResultPanel;
|
||||||
|
//实时刷新显示比赛结果
|
||||||
|
public void ShowResultList()
|
||||||
|
{
|
||||||
|
if (competitionResultPanel == null)
|
||||||
|
{
|
||||||
|
competitionResultPanel = Instantiate(Resources.Load<GameObject>("UI/Prefab/Match/CompetitionResultPanel"), transform.Find("Panel"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 2ef2d2135dbfedc418fd2a7a18a0a254
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -43,6 +43,7 @@ public class CyclingController : DeviceServiceMonoBase
|
|||||||
public CyclingModel cyclingModel;//当前骑行模式
|
public CyclingModel cyclingModel;//当前骑行模式
|
||||||
public BaseCycling cyclingController { get; set; }
|
public BaseCycling cyclingController { get; set; }
|
||||||
private int routeId;
|
private int routeId;
|
||||||
|
private int competitionId;
|
||||||
|
|
||||||
private MapApi mapApi;
|
private MapApi mapApi;
|
||||||
public DateTime startTime;
|
public DateTime startTime;
|
||||||
@ -75,6 +76,8 @@ public class CyclingController : DeviceServiceMonoBase
|
|||||||
//mapRoute = mapApi.GetById(routeId).data;
|
//mapRoute = mapApi.GetById(routeId).data;
|
||||||
//miniMap = transform.Find("MiniMap").gameObject;//小地图
|
//miniMap = transform.Find("MiniMap").gameObject;//小地图
|
||||||
resultPanel = transform.Find("SingleUI/Panel/ResultPanel").gameObject;
|
resultPanel = transform.Find("SingleUI/Panel/ResultPanel").gameObject;
|
||||||
|
competitionId = App.CompetionId;
|
||||||
|
//App.CompetionId = 0;//清空比赛参数
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnDestroy()
|
void OnDestroy()
|
||||||
@ -90,48 +93,33 @@ public class CyclingController : DeviceServiceMonoBase
|
|||||||
onlineUserPrefab = Resources.Load<GameObject>("UI/Prefab/Ride/OnlinePlayer");
|
onlineUserPrefab = Resources.Load<GameObject>("UI/Prefab/Ride/OnlinePlayer");
|
||||||
miniMapPlayerPrefab = Resources.Load<GameObject>("UI/Prefab/Ride/MiniMapPlayer");
|
miniMapPlayerPrefab = Resources.Load<GameObject>("UI/Prefab/Ride/MiniMapPlayer");
|
||||||
target = transform.Find("Target");
|
target = transform.Find("Target");
|
||||||
|
miniMap = transform.Find("MiniMap").gameObject;//小地图
|
||||||
//进入倒计时
|
//进入倒计时
|
||||||
singleUIManager = UIObject.GetComponent<BaseUIManager>();
|
singleUIManager = UIObject.GetComponent<BaseUIManager>();
|
||||||
|
TrailRenderer trail = player.GetComponent<TrailRenderer>();
|
||||||
|
trail.Clear();
|
||||||
|
playerController = player.GetComponent<PlayerController>();
|
||||||
|
currentPlayer = playerController;//当前选中用户
|
||||||
loadingController = FindObjectOfType<LoadingController>();
|
loadingController = FindObjectOfType<LoadingController>();
|
||||||
loadingController.InjectController(this);
|
loadingController.InjectController(this);
|
||||||
//开始loading
|
//进入比赛
|
||||||
StartCoroutine(Init());
|
if (competitionId > 0)
|
||||||
}
|
{
|
||||||
public void SetUIManager(PFUIPanel mainPanel, PFUIPanel model)
|
StartCoroutine(InitRace());
|
||||||
{
|
return;
|
||||||
UIManager.Instance.MainPanel = mainPanel;//this.transform.Find("SingleUI/Panel").GetComponent<PFUIPanel>();
|
}
|
||||||
UIManager.Instance.ModalsPanel = model;// this.transform.Find("SingleUI/ModalPanel").GetComponent<PFUIPanel>();
|
//进入单人骑行
|
||||||
|
if (routeId > 0)
|
||||||
|
{
|
||||||
|
StartCoroutine(Init());
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ReSetUIManager()
|
private IEnumerator Init()
|
||||||
{
|
|
||||||
UIManager.Instance.MainPanel = this.transform.Find("SingleUI/Panel").GetComponent<PFUIPanel>();
|
|
||||||
UIManager.Instance.ModalsPanel = this.transform.Find("SingleUI/ModalPanel").GetComponent<PFUIPanel>();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void AddEvent(GameObject sender, EventTriggerType eventType,UnityAction<BaseEventData> unityAction)
|
|
||||||
{
|
|
||||||
UIManager.AddEvent(sender, eventType, unityAction);
|
|
||||||
}
|
|
||||||
public void ShowDevice(PFUIPanel pFUIPanel)
|
|
||||||
{
|
|
||||||
UIManager.Show(UIManager.Instance.DevicePanel, pFUIPanel);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Texture GetCountryImageByCode(string code)
|
|
||||||
{
|
|
||||||
return UIManager.Instance.loginRegOptions.GetCountryImage(code);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Texture GetCountryImageByName(string name)
|
|
||||||
{
|
|
||||||
return UIManager.Instance.loginRegOptions.GetCountryImageByName(name);
|
|
||||||
}
|
|
||||||
private IEnumerator Init()
|
|
||||||
{
|
{
|
||||||
yield return new WaitForSeconds(1);
|
yield return new WaitForSeconds(1);
|
||||||
mapRoute = mapApi.GetById(routeId).data;
|
mapRoute = mapApi.GetById(routeId).data;
|
||||||
miniMap = transform.Find("MiniMap").gameObject;//小地图
|
|
||||||
loadingController.Init(mapRoute);//初始化loading页面
|
loadingController.Init(mapRoute);//初始化loading页面
|
||||||
loadingController.AddProcess(10);
|
loadingController.AddProcess(10);
|
||||||
InitData();//初始化数据
|
InitData();//初始化数据
|
||||||
@ -139,6 +127,19 @@ public class CyclingController : DeviceServiceMonoBase
|
|||||||
MapUDPService.Init();//初始化TCP
|
MapUDPService.Init();//初始化TCP
|
||||||
loadingController.AddProcess(10);
|
loadingController.AddProcess(10);
|
||||||
}
|
}
|
||||||
|
//初始比赛
|
||||||
|
private IEnumerator InitRace()
|
||||||
|
{
|
||||||
|
yield return new WaitForSeconds(1);
|
||||||
|
mapRoute = mapApi.GetById(routeId).data;
|
||||||
|
loadingController.Init(mapRoute);//初始化loading页面
|
||||||
|
loadingController.AddProcess(10);
|
||||||
|
InitRaceData();//初始化比赛数据
|
||||||
|
InitRaceGameObject();//初始化比赛场景
|
||||||
|
MapUDPService.Init();//初始化比赛TCP
|
||||||
|
loadingController.AddProcess(10);
|
||||||
|
}
|
||||||
|
|
||||||
//初始化数据
|
//初始化数据
|
||||||
private void InitData()
|
private void InitData()
|
||||||
{
|
{
|
||||||
@ -192,6 +193,50 @@ public class CyclingController : DeviceServiceMonoBase
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private MapCompetition competition;
|
||||||
|
private void InitRaceData()
|
||||||
|
{
|
||||||
|
mapData = mapApi.GetData(routeId);//获取路书地理数据
|
||||||
|
route = new Route(mapData, mapRoute);
|
||||||
|
loadingController.AddProcess(10);
|
||||||
|
#region 其他场景传参处理
|
||||||
|
MapCompetitionApi mapCompetitionApi = new MapCompetitionApi();
|
||||||
|
competition = mapCompetitionApi.GetById(competitionId).data;
|
||||||
|
|
||||||
|
selectParamModel = new RouteResultParam
|
||||||
|
{
|
||||||
|
CompetitionId = competitionId,
|
||||||
|
ContinueIndex = 0,
|
||||||
|
ContinueMark = "",
|
||||||
|
GlobalContinue = false,
|
||||||
|
EndDistance = 0,
|
||||||
|
RankingsId = new List<string>(),
|
||||||
|
OnlineUserId = 0,
|
||||||
|
RouteId = App.RouteIdParam
|
||||||
|
};
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
//异步请求mapbox画出当前路书路线图
|
||||||
|
loadingController.DrawMapRoute(mapData);
|
||||||
|
//计算上次骑行距离调整地图中心点
|
||||||
|
double endDistance = selectParamModel.EndDistance;
|
||||||
|
coordiantes = Along(endDistance);
|
||||||
|
loadingController.AddProcess(10);
|
||||||
|
#region 查询排行榜
|
||||||
|
var list = mapApi.GetRouteRanking(App.RouteIdParam, "1", 0, 10, "");
|
||||||
|
if (list.result)
|
||||||
|
{
|
||||||
|
loadingController.CreateRankingList(list.data.list);
|
||||||
|
loadingController.AddProcess(10);
|
||||||
|
}
|
||||||
|
var shaowList = mapApi.GetShadowList(App.RouteIdParam, "", 0, 10);
|
||||||
|
if (shaowList.result)
|
||||||
|
{
|
||||||
|
mapRouteRankingList = shaowList.data.list;
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
|
||||||
private Vector3 mapPos = Vector3.zero;
|
private Vector3 mapPos = Vector3.zero;
|
||||||
//加载人物和地图以及UI界面
|
//加载人物和地图以及UI界面
|
||||||
private void InitGameObject()
|
private void InitGameObject()
|
||||||
@ -199,11 +244,24 @@ public class CyclingController : DeviceServiceMonoBase
|
|||||||
map.gameObject.SetActive(true);
|
map.gameObject.SetActive(true);
|
||||||
player.SetActive(true);
|
player.SetActive(true);
|
||||||
UIObject.SetActive(true);
|
UIObject.SetActive(true);
|
||||||
|
singleUIManager = UIObject.AddComponent<SingleUIManager>();
|
||||||
miniMap.SetActive(true);
|
miniMap.SetActive(true);
|
||||||
map.OnTileFinished += Map_OnTileFinished;
|
map.OnTileFinished += Map_OnTileFinished;
|
||||||
mapPos = map.transform.position;
|
mapPos = map.transform.position;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void InitRaceGameObject()
|
||||||
|
{
|
||||||
|
map.gameObject.SetActive(true);
|
||||||
|
player.SetActive(true);
|
||||||
|
UIObject.SetActive(true);
|
||||||
|
singleUIManager = UIObject.AddComponent<CompetitionUIManager>();
|
||||||
|
miniMap.SetActive(true);
|
||||||
|
map.OnTileFinished += Map_OnTileFinished;
|
||||||
|
mapPos = map.transform.position;
|
||||||
|
//SetCyclingModel(CyclingModel.Competition);
|
||||||
|
}
|
||||||
|
|
||||||
//private void Map_OnTileFinished(Mapbox.Unity.MeshGeneration.Data.UnityTile obj)
|
//private void Map_OnTileFinished(Mapbox.Unity.MeshGeneration.Data.UnityTile obj)
|
||||||
//{
|
//{
|
||||||
// var playerController = player.GetComponent<PlayerController>();
|
// var playerController = player.GetComponent<PlayerController>();
|
||||||
@ -214,7 +272,6 @@ public class CyclingController : DeviceServiceMonoBase
|
|||||||
public void SetCyclingModel(CyclingModel mode)
|
public void SetCyclingModel(CyclingModel mode)
|
||||||
{
|
{
|
||||||
this.cyclingModel = mode;
|
this.cyclingModel = mode;
|
||||||
|
|
||||||
switch (cyclingModel)
|
switch (cyclingModel)
|
||||||
{
|
{
|
||||||
case CyclingModel.Single:
|
case CyclingModel.Single:
|
||||||
@ -225,26 +282,25 @@ public class CyclingController : DeviceServiceMonoBase
|
|||||||
break;
|
break;
|
||||||
//TODO:比赛模式
|
//TODO:比赛模式
|
||||||
case CyclingModel.Competition:
|
case CyclingModel.Competition:
|
||||||
cyclingController = new CompetitionModel(route, selectParamModel);
|
cyclingController = new CompetitionModel(route, selectParamModel, currentPlayer);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
GameStart();//游戏进入开始倒计时
|
GameStart();
|
||||||
InitPlayer();//初始化人物方向等
|
InitPlayer();//初始化人物方向等
|
||||||
}
|
}
|
||||||
PlayerController playerController;
|
PlayerController playerController;
|
||||||
|
public AbstractPlayer currentPlayer;
|
||||||
//初始化人物位置角度
|
//初始化人物位置角度
|
||||||
private void InitPlayer()
|
private void InitPlayer()
|
||||||
{
|
{
|
||||||
lockView = true;
|
lockView = true;
|
||||||
TrailRenderer trail = player.GetComponent<TrailRenderer>();
|
|
||||||
playerController = player.GetComponent<PlayerController>();
|
|
||||||
Vector2d lastLatLon = Along(recorderData.EndDistance);
|
Vector2d lastLatLon = Along(recorderData.EndDistance);
|
||||||
Vector3 currentPos = map.GeoToWorldPosition(lastLatLon);
|
Vector3 currentPos = map.GeoToWorldPosition(lastLatLon);
|
||||||
currentPos.y += 1f;
|
currentPos.y += 1f;
|
||||||
player.transform.position = currentPos;
|
player.transform.position = currentPos;
|
||||||
playerController.currentPos = currentPos;
|
playerController.currentPos = currentPos;
|
||||||
|
|
||||||
trail.Clear();
|
|
||||||
Vector2d nextLatLon = Along(recorderData.EndDistance + 0.1);
|
Vector2d nextLatLon = Along(recorderData.EndDistance + 0.1);
|
||||||
//设定人物方向
|
//设定人物方向
|
||||||
var s = map.GeoToWorldPosition(lastLatLon);
|
var s = map.GeoToWorldPosition(lastLatLon);
|
||||||
@ -265,7 +321,7 @@ public class CyclingController : DeviceServiceMonoBase
|
|||||||
|
|
||||||
public void GoContinueRide()
|
public void GoContinueRide()
|
||||||
{
|
{
|
||||||
singleUIManager.ContinueRide();
|
singleUIManager.ContinueRide();
|
||||||
}
|
}
|
||||||
|
|
||||||
#region TCP相关
|
#region TCP相关
|
||||||
@ -352,6 +408,37 @@ public class CyclingController : DeviceServiceMonoBase
|
|||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
public void SetUIManager(PFUIPanel mainPanel, PFUIPanel model)
|
||||||
|
{
|
||||||
|
UIManager.Instance.MainPanel = mainPanel;//this.transform.Find("SingleUI/Panel").GetComponent<PFUIPanel>();
|
||||||
|
UIManager.Instance.ModalsPanel = model;// this.transform.Find("SingleUI/ModalPanel").GetComponent<PFUIPanel>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ReSetUIManager()
|
||||||
|
{
|
||||||
|
UIManager.Instance.MainPanel = this.transform.Find("SingleUI/Panel").GetComponent<PFUIPanel>();
|
||||||
|
UIManager.Instance.ModalsPanel = this.transform.Find("SingleUI/ModalPanel").GetComponent<PFUIPanel>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void AddEvent(GameObject sender, EventTriggerType eventType, UnityAction<BaseEventData> unityAction)
|
||||||
|
{
|
||||||
|
UIManager.AddEvent(sender, eventType, unityAction);
|
||||||
|
}
|
||||||
|
public void ShowDevice(PFUIPanel pFUIPanel)
|
||||||
|
{
|
||||||
|
UIManager.Show(UIManager.Instance.DevicePanel, pFUIPanel);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Texture GetCountryImageByCode(string code)
|
||||||
|
{
|
||||||
|
return UIManager.Instance.loginRegOptions.GetCountryImage(code);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Texture GetCountryImageByName(string name)
|
||||||
|
{
|
||||||
|
return UIManager.Instance.loginRegOptions.GetCountryImageByName(name);
|
||||||
|
}
|
||||||
|
|
||||||
#region 视角切换
|
#region 视角切换
|
||||||
|
|
||||||
public AbstractMap map3d;
|
public AbstractMap map3d;
|
||||||
89
Assets/Scripts/Scenes/Ride/Scripts/FinalRankingItemScript.cs
Normal file
89
Assets/Scripts/Scenes/Ride/Scripts/FinalRankingItemScript.cs
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
using Assets.Scripts;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
namespace Assets.Scenes.Ride.Scripts
|
||||||
|
{
|
||||||
|
public class FinalRankingItemScript : MonoBehaviour
|
||||||
|
{
|
||||||
|
private RawImage Head;
|
||||||
|
private RawImage Country;
|
||||||
|
private Text Name;
|
||||||
|
private Text Power;
|
||||||
|
private Text Timer;
|
||||||
|
private Text Ratio;//功体比
|
||||||
|
private Text Ranking;
|
||||||
|
private Text HeartRate;
|
||||||
|
|
||||||
|
private int _userId = 0;
|
||||||
|
public int UserId { get { return _userId; } }
|
||||||
|
private Texture countryTexture;
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
Head = transform.Find("Head").GetComponent<RawImage>();
|
||||||
|
Country = transform.Find("Country").GetComponent<RawImage>();
|
||||||
|
Name = transform.Find("Name").GetComponent<Text>();
|
||||||
|
HeartRate = transform.Find("Heart").GetComponent<Text>();
|
||||||
|
Power = transform.Find("Power").GetComponent<Text>();
|
||||||
|
Timer = transform.Find("Timer").GetComponent<Text>();
|
||||||
|
Ratio = transform.Find("WKG").GetComponent<Text>();
|
||||||
|
Ranking = transform.Find("Ranking").GetComponent<Text>();
|
||||||
|
countryTexture = Resources.Load<Sprite>("Images/flag_China_Person").texture;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRatio(string ratio)
|
||||||
|
{
|
||||||
|
Ratio.text = ratio +"W/KG";
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHead(string url)
|
||||||
|
{
|
||||||
|
Utils.DisplayImage(Head, url, true);
|
||||||
|
var rect = ((RectTransform)Head.transform).rect;
|
||||||
|
Material material = Instantiate(Resources.Load<Material>("UI/Material/RoundedCornersTextureMaterial"));
|
||||||
|
material.SetVector(Shader.PropertyToID("_WidthHeightRadius"), new Vector4(rect.width, rect.height, rect.height, 0));
|
||||||
|
Head.material = material;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCountry(Texture texture)
|
||||||
|
{
|
||||||
|
Country.texture = texture;
|
||||||
|
}
|
||||||
|
public void setName(string name)
|
||||||
|
{
|
||||||
|
Name.text = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPower(string power)
|
||||||
|
{
|
||||||
|
Power.text = power +"W";
|
||||||
|
|
||||||
|
}
|
||||||
|
public void setTimer(string timer)
|
||||||
|
{
|
||||||
|
Timer.text = timer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRanking(string ranking)
|
||||||
|
{
|
||||||
|
Ranking.text = ranking;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHeartRate(string heartRate)
|
||||||
|
{
|
||||||
|
if (!heartRate.Equals("0"))
|
||||||
|
{
|
||||||
|
HeartRate.text = heartRate + "bpm";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
HeartRate.text = "--bpm";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserId(int userId)
|
||||||
|
{
|
||||||
|
_userId = userId;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1e64a5b2fb6d4f3418094195460237d1
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: cab9cf5c3f47cbe498f0cab35b09125e
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -67,7 +67,7 @@ namespace Assets.Scenes.Ride.Scripts.Model.CyclingModels
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual string ShowTime
|
public virtual string ShowTime
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
@ -84,7 +84,7 @@ namespace Assets.Scenes.Ride.Scripts.Model.CyclingModels
|
|||||||
//将当前用户的位置发送到udf服务
|
//将当前用户的位置发送到udf服务
|
||||||
SendUserPositionToServer();
|
SendUserPositionToServer();
|
||||||
//OutModel outData = GetSelfTargetData(targetData);
|
//OutModel outData = GetSelfTargetData(targetData);
|
||||||
//BeforeRunAfterPakcData(targetData);//执行前的函数
|
BeforeRunAfterPakcData();//执行前的函数
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -125,7 +125,7 @@ namespace Assets.Scenes.Ride.Scripts.Model.CyclingModels
|
|||||||
/// 执行前,数据打包后
|
/// 执行前,数据打包后
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="outData"></param>
|
/// <param name="outData"></param>
|
||||||
protected virtual void BeforeRunAfterPakcData(OutModel outData) { }
|
protected virtual void BeforeRunAfterPakcData() { }
|
||||||
protected double SpeedToDistance(double speed)
|
protected double SpeedToDistance(double speed)
|
||||||
{
|
{
|
||||||
return Math.Round(speed / 3600, 5, MidpointRounding.AwayFromZero);
|
return Math.Round(speed / 3600, 5, MidpointRounding.AwayFromZero);
|
||||||
@ -2,6 +2,7 @@
|
|||||||
using Assets.Scripts;
|
using Assets.Scripts;
|
||||||
using Assets.Scripts.Apis;
|
using Assets.Scripts.Apis;
|
||||||
using Assets.Scripts.Apis.Models;
|
using Assets.Scripts.Apis.Models;
|
||||||
|
using Mapbox.Utils;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@ -12,25 +13,28 @@ namespace Assets.Scenes.Ride.Scripts.Model.CyclingModels
|
|||||||
{
|
{
|
||||||
public class CompetitionModel : BaseCycling
|
public class CompetitionModel : BaseCycling
|
||||||
{
|
{
|
||||||
|
private Vector2d firstPoint { get; set; }
|
||||||
|
public CompetitionRankingModel competitionRankingModel { get; set; }
|
||||||
|
|
||||||
private MapCompetitionApi mapCompetitionApi;
|
private MapCompetitionApi mapCompetitionApi;
|
||||||
|
|
||||||
private MapCompetition mapCompetition;
|
public MapCompetition mapCompetition;
|
||||||
|
|
||||||
private List<CompetitionRankingResultModel> mapWorkoutRecordRankings = new List<CompetitionRankingResultModel>();
|
private List<CompetitionRankingResultModel> mapWorkoutRecordRankings = new List<CompetitionRankingResultModel>();
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 第一个到终点的时间
|
/// 第一个到终点的时间
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private DateTime? FirstEndTime;
|
private DateTime? FirstEndTime { get; set; }
|
||||||
|
|
||||||
public override bool CanPause => false;
|
public override bool CanPause => false;
|
||||||
|
|
||||||
protected override string ShowTime
|
public override string ShowTime
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
if (CanStart())
|
if (CanStart())
|
||||||
{
|
{
|
||||||
var second = Math.Ceiling((Now - mapCompetition.StartTime).TotalSeconds);
|
var second = Math.Ceiling((Now - mapCompetition.StartTime.ToLocalTime()).TotalSeconds);
|
||||||
|
|
||||||
var ts = TimeSpan.FromSeconds(second);
|
var ts = TimeSpan.FromSeconds(second);
|
||||||
return $"{ (int)ts.TotalHours }:{ts:mm}:{ts:ss}";
|
return $"{ (int)ts.TotalHours }:{ts:mm}:{ts:ss}";
|
||||||
@ -38,10 +42,11 @@ namespace Assets.Scenes.Ride.Scripts.Model.CyclingModels
|
|||||||
return "00:00:00";
|
return "00:00:00";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
AbstractPlayer currentPlayer;
|
||||||
public CompetitionModel(Route route1, RouteResultParam param)
|
public CompetitionModel(Route route1, RouteResultParam param,AbstractPlayer player)
|
||||||
: base(route1, CyclingModel.Competition)
|
: base(route1, CyclingModel.Competition)
|
||||||
{
|
{
|
||||||
|
currentPlayer = player;//当前选中用户
|
||||||
mapCompetitionApi = new MapCompetitionApi();
|
mapCompetitionApi = new MapCompetitionApi();
|
||||||
//param.EndDistance = 18;
|
//param.EndDistance = 18;
|
||||||
recorderData = new RecorderDataModel()
|
recorderData = new RecorderDataModel()
|
||||||
@ -50,7 +55,7 @@ namespace Assets.Scenes.Ride.Scripts.Model.CyclingModels
|
|||||||
//BelongUserId = PubCommData.CurrentUser.Id,
|
//BelongUserId = PubCommData.CurrentUser.Id,
|
||||||
Competitionid = param.CompetitionId??0,
|
Competitionid = param.CompetitionId??0,
|
||||||
ContinueIndex = param.ContinueIndex == null ? 0 : (int)param.ContinueIndex + 1,
|
ContinueIndex = param.ContinueIndex == null ? 0 : (int)param.ContinueIndex + 1,
|
||||||
ContinueMark = param.ContinueMark == null ? Guid.NewGuid().ToString() : param.ContinueMark,
|
ContinueMark = string.IsNullOrEmpty(param.ContinueMark) ? Guid.NewGuid().ToString() : param.ContinueMark,
|
||||||
EndDistance = param.EndDistance == 0 ? 0 : param.EndDistance,
|
EndDistance = param.EndDistance == 0 ? 0 : param.EndDistance,
|
||||||
IsCompleted = false,
|
IsCompleted = false,
|
||||||
IsNeedRanking = true,
|
IsNeedRanking = true,
|
||||||
@ -80,60 +85,38 @@ namespace Assets.Scenes.Ride.Scripts.Model.CyclingModels
|
|||||||
{
|
{
|
||||||
rider.Point = new GeoJSON.Net.Geometry.GeographicPosition(this.route.RouteInstance.Point[0], this.route.RouteInstance.Point[1]);
|
rider.Point = new GeoJSON.Net.Geometry.GeographicPosition(this.route.RouteInstance.Point[0], this.route.RouteInstance.Point[1]);
|
||||||
}
|
}
|
||||||
riders.Add(rider);
|
//riders.Add(rider);//剔除自己
|
||||||
|
|
||||||
var result = mapCompetitionApi.GetById(param.CompetitionId??0);
|
var result = mapCompetitionApi.GetById(param.CompetitionId??0);
|
||||||
if (result.result == false)
|
if (result.result == false || result.data == null)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
mapCompetition = result.data;
|
||||||
FirstEndTime = mapCompetition.FirstEndTime;
|
FirstEndTime = mapCompetition.FirstEndTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void BeforeRunAfterPakcData(OutModel outData)
|
protected override void BeforeRunAfterPakcData()
|
||||||
{
|
{
|
||||||
outData.CanStart = CanStart();
|
//#region 设置第一名的坐标
|
||||||
outData.StartCountDown = StartCountdown();
|
//if (!FirstEndTime.HasValue)
|
||||||
var endCountDownResult = EndCountDown();
|
|
||||||
outData.EndCountDown = endCountDownResult.Item1;
|
|
||||||
outData.IsClosed = endCountDownResult.Item2;
|
|
||||||
|
|
||||||
|
|
||||||
#region 设置第一名的坐标
|
|
||||||
if (!FirstEndTime.HasValue)
|
|
||||||
{
|
|
||||||
var firstItem = base.realRiders.OrderByDescending(w => w.NextDistance).FirstOrDefault();
|
|
||||||
if (firstItem != null)
|
|
||||||
{
|
|
||||||
outData.FirstPoint = firstItem.Point;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
////如果骑行中,但是已经到结束时间
|
|
||||||
//if (outData.EndCountDown <= 0 && recorderData.CyclingState == CyclingStateEnum.Cycling)
|
|
||||||
//{
|
//{
|
||||||
// base.CacheAnimate();
|
// var firstItem = base.realRiders.OrderByDescending(w => w.NextDistance).FirstOrDefault();
|
||||||
|
// if (firstItem != null)
|
||||||
|
// {
|
||||||
|
// firstPoint = new Vector2d(firstItem.Point.Latitude, firstItem.Point.Longitude);
|
||||||
|
// }
|
||||||
//}
|
//}
|
||||||
var userList = MapUDPService.GetOnlineUsers(recorderData.CurrentRoute.RouteInstance.Id)
|
//#endregion
|
||||||
.Where(d => d.CompetitionId == recorderData.Competitionid)
|
|
||||||
.OrderByDescending(u => u.IsCompleted).ThenByDescending(d => d.EndDistance);
|
|
||||||
|
|
||||||
|
|
||||||
|
var userList = MapUDPService.GetCompetitionOnlineUsers(recorderData.Competitionid).OrderByDescending(u => u.IsCompleted).ThenByDescending(d => d.EndDistance);
|
||||||
riders.RemoveAll(r => r.IsSelf == false);
|
riders.RemoveAll(r => r.IsSelf == false);
|
||||||
int index = 0;
|
int index = 0;
|
||||||
List<CompetitionRankingSortModel> sort = new List<CompetitionRankingSortModel>();
|
List<CompetitionRankingSortModel> sort = new List<CompetitionRankingSortModel>();
|
||||||
|
|
||||||
//标识后面的用户都是比我慢的用户
|
|
||||||
var slowerThenMe = false;
|
|
||||||
if (userList.Any())
|
if (userList.Any())
|
||||||
{
|
{
|
||||||
var point = new double[] { outData.targetData._Lat, outData.targetData._Lon };
|
var currentDistance = currentPlayer.TotalDistance;
|
||||||
var self = userList.SingleOrDefault(r => r.IsSelf);
|
|
||||||
if (self != null)
|
|
||||||
{
|
|
||||||
point = self.Point;
|
|
||||||
}
|
|
||||||
foreach (var item in userList)
|
foreach (var item in userList)
|
||||||
{
|
{
|
||||||
#region 记录第一个冲线的时间
|
#region 记录第一个冲线的时间
|
||||||
@ -157,20 +140,8 @@ namespace Assets.Scenes.Ride.Scripts.Model.CyclingModels
|
|||||||
}
|
}
|
||||||
|
|
||||||
index++;
|
index++;
|
||||||
double near = Math.Round(TurfHelper.GetDistances(point, item.Point), 2);
|
double near = Math.Round(item.EndDistance - currentDistance,2); //Math.Round(TurfHelper.GetDistances(point, item.Point), 2);
|
||||||
if (slowerThenMe)
|
|
||||||
{
|
|
||||||
near = near * -1;
|
|
||||||
}
|
|
||||||
if (item.IsSelf)
|
|
||||||
{
|
|
||||||
near = 0;
|
|
||||||
slowerThenMe = true;
|
|
||||||
}
|
|
||||||
//else if (index == 1)
|
|
||||||
//{
|
|
||||||
// near = near * -1;
|
|
||||||
//}
|
|
||||||
sort.Add(new CompetitionRankingSortModel
|
sort.Add(new CompetitionRankingSortModel
|
||||||
{
|
{
|
||||||
Index = index,
|
Index = index,
|
||||||
@ -229,12 +200,12 @@ namespace Assets.Scenes.Ride.Scripts.Model.CyclingModels
|
|||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
outData.CompetitionRanking = new CompetitionRankingModel
|
competitionRankingModel = new CompetitionRankingModel
|
||||||
{
|
{
|
||||||
Sorts = sort,
|
Sorts = sort,//骑行实时排名
|
||||||
MyRanking = sort.FindIndex(n => n.UserId == recorderData.BelongUserId) + 1,
|
MyRanking = sort.FindIndex(n => n.UserId == currentPlayer.UserId) + 1,//切换人物显示对应人物的排名
|
||||||
Total = sort.Count,
|
Total = sort.Count,//总人数
|
||||||
Results = results
|
Results = results//比赛结果列表
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -244,25 +215,62 @@ namespace Assets.Scenes.Ride.Scripts.Model.CyclingModels
|
|||||||
/// <param name="targetData"></param>
|
/// <param name="targetData"></param>
|
||||||
public override void Run(TargetData targetData)
|
public override void Run(TargetData targetData)
|
||||||
{
|
{
|
||||||
//base.BeforeRun(targetData);
|
|
||||||
if (recorderData.CyclingState == CyclingStateEnum.Prepare)
|
#region 获取当前路线在线用户
|
||||||
|
riders.RemoveAll(r => r.IsSelf == false);
|
||||||
|
var onlineUsers = MapUDPService.GetCompetitionOnlineUsers(mapCompetition.Id).Where(d => d.IsSelf == false)
|
||||||
|
.ToList();
|
||||||
|
foreach (var item in onlineUsers)
|
||||||
{
|
{
|
||||||
if (recorderData.EndDistance != 0)
|
riders.Add(new OnlineRiderModel()
|
||||||
{
|
{
|
||||||
currentDistance = recorderData.EndDistance;
|
NickName = item.Name,
|
||||||
}
|
UserId = item.Id,
|
||||||
else
|
WxHeadImg = item.HeadImage,
|
||||||
{
|
Point = new GeoJSON.Net.Geometry.GeographicPosition(item.Point[0], item.Point[1]),
|
||||||
currentDistance = 0;
|
EndDistance = item.EndDistance,
|
||||||
}
|
PreDistance = item.PreDistance,
|
||||||
}
|
WeightKg = item.WeightKg,
|
||||||
else if (recorderData.CyclingState == CyclingStateEnum.Cycling)
|
});
|
||||||
{
|
|
||||||
currentDistance = recorderData.EndDistance + SpeedToDistance(targetData._Speed);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
//TODO:接力赛
|
||||||
|
////base.BeforeRun(targetData);
|
||||||
|
//if (recorderData.CyclingState == CyclingStateEnum.Prepare)
|
||||||
|
//{
|
||||||
|
// if (recorderData.EndDistance != 0)
|
||||||
|
// {
|
||||||
|
// currentDistance = recorderData.EndDistance;
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// currentDistance = 0;
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
//else if (recorderData.CyclingState == CyclingStateEnum.Cycling)
|
||||||
|
//{
|
||||||
|
// currentDistance = recorderData.EndDistance + SpeedToDistance(targetData._Speed);
|
||||||
|
//}
|
||||||
base.Run(targetData);
|
base.Run(targetData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//显示结果当前用户保存或者产生第一名
|
||||||
|
public bool CanShowResult()
|
||||||
|
{
|
||||||
|
return mapCompetition?.HasRecord ?? false || mapCompetition ?.FirstEndTime != null;
|
||||||
|
}
|
||||||
|
//关门时间到了退出骑行场景
|
||||||
|
public bool CanQuit()
|
||||||
|
{
|
||||||
|
if (mapCompetition?.FirstEndTime.HasValue??false)
|
||||||
|
{
|
||||||
|
var closeDateTime = mapCompetition?.FirstEndTime.Value.ToLocalTime().AddMinutes(mapCompetition?.CloseTime??0 );
|
||||||
|
return Now >= closeDateTime;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
public bool CanStart()
|
public bool CanStart()
|
||||||
{
|
{
|
||||||
if (mapCompetition == null)
|
if (mapCompetition == null)
|
||||||
@ -284,7 +292,7 @@ namespace Assets.Scenes.Ride.Scripts.Model.CyclingModels
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (mapCompetition.StartTime <= Now && mapCompetition.EndTime > Now)
|
if (mapCompetition.StartTime.ToLocalTime() <= Now && mapCompetition.EndTime.ToLocalTime() > Now)
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -295,8 +303,7 @@ namespace Assets.Scenes.Ride.Scripts.Model.CyclingModels
|
|||||||
public int StartCountdown()
|
public int StartCountdown()
|
||||||
{
|
{
|
||||||
if (CanStart()) return 0;
|
if (CanStart()) return 0;
|
||||||
|
return (int)Math.Floor((mapCompetition.StartTime.ToLocalTime() - Now).TotalSeconds);
|
||||||
return (int)Math.Floor((mapCompetition.StartTime - Now).TotalSeconds);
|
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 结束倒计时,bool值为true说明倒计时是关门时间
|
/// 结束倒计时,bool值为true说明倒计时是关门时间
|
||||||
@ -306,7 +313,7 @@ namespace Assets.Scenes.Ride.Scripts.Model.CyclingModels
|
|||||||
{
|
{
|
||||||
if (CanStart() == false) return (0, false);
|
if (CanStart() == false) return (0, false);
|
||||||
//if (recorderData.IsCompleted) return 0;
|
//if (recorderData.IsCompleted) return 0;
|
||||||
var end1 = (int)Math.Floor((mapCompetition.EndTime - Now).TotalSeconds);
|
var end1 = (int)Math.Floor((mapCompetition.EndTime.ToLocalTime() - Now).TotalSeconds);
|
||||||
if (!FirstEndTime.HasValue)
|
if (!FirstEndTime.HasValue)
|
||||||
{
|
{
|
||||||
return (end1, false);
|
return (end1, false);
|
||||||
@ -238,6 +238,7 @@ namespace Assets.Scenes.Ride.Scripts.Model
|
|||||||
if (result.result && Directory.Exists(path))
|
if (result.result && Directory.Exists(path))
|
||||||
{
|
{
|
||||||
Helper.DelectDir(path);
|
Helper.DelectDir(path);
|
||||||
|
Saved = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c7b3cc03af7b19e44b20d0b929a53d45
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
42
Assets/Scripts/Scenes/Ride/Scripts/NearByFactory.cs
Normal file
42
Assets/Scripts/Scenes/Ride/Scripts/NearByFactory.cs
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
using Assets.Scenes.Ride.Scripts.Model;
|
||||||
|
using System.Linq;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace Assets.Scenes.Ride.Scripts
|
||||||
|
{
|
||||||
|
public class NearByFactory : BaseListFactory
|
||||||
|
{
|
||||||
|
protected override void Awake()
|
||||||
|
{
|
||||||
|
base.Awake();
|
||||||
|
cyclingController = FindObjectOfType<CyclingController>();
|
||||||
|
playerController = FindObjectOfType<PlayerController>();
|
||||||
|
nearByItem = Resources.Load<GameObject>("UI/Prefab/Ride/NearbyItem");
|
||||||
|
nearByMajorItem = Resources.Load<GameObject>("UI/Prefab/Ride/NearbyMajorItem");
|
||||||
|
}
|
||||||
|
protected override void CreateList()
|
||||||
|
{
|
||||||
|
var nearList = MapUDPService.GetNearRiderData(pageIndex, pageSize, new double[] { playerController.Currentlatlong.x, playerController.Currentlatlong.y });
|
||||||
|
totalPages = MapUDPService.GetNearRiderCount();
|
||||||
|
for (int i = 0; i < nearList.Count(); i++)
|
||||||
|
{
|
||||||
|
Create(nearList[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void Create(NearRiderModel item)
|
||||||
|
{
|
||||||
|
//创建
|
||||||
|
GameObject prefabItem = item.IsSelf ? nearByMajorItem : nearByItem;
|
||||||
|
GameObject newObj = (GameObject)Instantiate(prefabItem, transform);
|
||||||
|
var nearByItemscript = newObj.GetComponent<NearByItemScript>();
|
||||||
|
nearByItemscript.setUserId(item.Id);
|
||||||
|
nearByItemscript.setName(item.Name);
|
||||||
|
nearByItemscript.setRatio(item.KGWeight+"W/KG");
|
||||||
|
nearByItemscript.setSpeed(item.Speed.ToString() + "KM/H");
|
||||||
|
nearByItemscript.setHead(item.Headimage);
|
||||||
|
nearByItemscript.setCountry(cyclingController.GetCountryImageByName(item.Country));
|
||||||
|
nearByItemscript.setDistance(item.Near.ToString() + "KM");
|
||||||
|
bufferSize++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -14,8 +14,8 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
private Text OnlineUserNum;
|
private Text OnlineUserNum;
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
Title = transform.Find("Title").GetComponent<Text>();
|
//Title = transform.Find("Title").GetComponent<Text>();
|
||||||
OnlineUserNum = transform.Find("NearByView/OnlineUserNum").GetComponent<Text>();
|
//OnlineUserNum = transform.Find("NearByView/OnlineUserNum").GetComponent<Text>();
|
||||||
}
|
}
|
||||||
float t = 1;
|
float t = 1;
|
||||||
private void Update()
|
private void Update()
|
||||||
@ -23,7 +23,7 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
t -= Time.deltaTime;
|
t -= Time.deltaTime;
|
||||||
while (t < 0)
|
while (t < 0)
|
||||||
{
|
{
|
||||||
OnlineUserNum.text = MapUDPService.GetNearRiderCount().ToString();
|
//OnlineUserNum.text = MapUDPService.GetNearRiderCount().ToString();
|
||||||
t = 1;
|
t = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user