新版本动画:上下滑动切换有箭头

This commit is contained in:
CaiYanPeng 2022-04-11 17:24:36 +08:00
parent 7780dc5ee5
commit 874dec5ec6
7 changed files with 6316 additions and 3357 deletions

View File

@ -2288,12 +2288,12 @@ PrefabInstance:
- target: {fileID: 1592441871873768741, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchorMax.y
value: 1
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1592441871873768741, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchorMin.y
value: 1
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1592441871873768741, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
@ -2313,12 +2313,12 @@ PrefabInstance:
- target: {fileID: 2004396901057112773, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchorMax.y
value: 1
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2004396901057112773, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchorMin.y
value: 1
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2004396901057112773, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
@ -2328,12 +2328,12 @@ PrefabInstance:
- target: {fileID: 2054923810110871857, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchorMax.y
value: 1
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2054923810110871857, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchorMin.y
value: 1
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2054923810110871857, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
@ -2470,6 +2470,11 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2857858179394088567, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_Material
value:
objectReference: {fileID: 0}
- target: {fileID: 3068819108013337933, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchorMax.y
@ -2490,6 +2495,21 @@ PrefabInstance:
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3092721066492637211, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3092721066492637211, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3092721066492637211, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 20
objectReference: {fileID: 0}
- target: {fileID: 3319170174453971756, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_Material
@ -2498,12 +2518,12 @@ PrefabInstance:
- target: {fileID: 3511827664771645704, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchorMax.y
value: 1
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3511827664771645704, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchorMin.y
value: 1
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3511827664771645704, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
@ -2513,12 +2533,12 @@ PrefabInstance:
- target: {fileID: 3991752987403741024, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchorMax.y
value: 1
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3991752987403741024, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchorMin.y
value: 1
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3991752987403741024, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
@ -2570,6 +2590,21 @@ PrefabInstance:
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4449183833974762062, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4449183833974762062, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4449183833974762062, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 20
objectReference: {fileID: 0}
- target: {fileID: 4586126367539938617, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_SizeDelta.x
@ -2578,27 +2613,47 @@ PrefabInstance:
- target: {fileID: 4834968900665809806, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchorMax.y
value: 1
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4834968900665809806, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchorMin.y
value: 1
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4834968900665809806, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 20
objectReference: {fileID: 0}
- target: {fileID: 5235423208383503620, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5235423208383503620, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5235423208383503620, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5235423208383503620, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5249748558008090706, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchorMax.y
value: 1
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5249748558008090706, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchorMin.y
value: 1
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5249748558008090706, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
@ -2653,12 +2708,12 @@ PrefabInstance:
- target: {fileID: 6172683569922498945, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchorMax.y
value: 1
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6172683569922498945, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchorMin.y
value: 1
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6172683569922498945, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
@ -2673,12 +2728,12 @@ PrefabInstance:
- target: {fileID: 6347209353323850145, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchorMax.y
value: 1
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6347209353323850145, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchorMin.y
value: 1
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6347209353323850145, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
@ -2690,21 +2745,51 @@ PrefabInstance:
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6913823502350419793, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6913823502350419793, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6913823502350419793, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6913823502350419793, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7245597125348948259, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8197454007437855745, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchorMax.y
value: 1
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8197454007437855745, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchorMin.y
value: 1
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8197454007437855745, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 20
objectReference: {fileID: 0}
- target: {fileID: 8347606906924376950, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8382612560249065530, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchorMax.y
@ -2728,12 +2813,12 @@ PrefabInstance:
- target: {fileID: 8526344065104504758, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchorMax.y
value: 1
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8526344065104504758, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchorMin.y
value: 1
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8526344065104504758, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
@ -2743,7 +2828,7 @@ PrefabInstance:
- target: {fileID: 8526344065104504758, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}
propertyPath: m_AnchoredPosition.y
value: -2
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8719966614707449432, guid: 240a4465e4dc90848a0efc1a9520c658,
type: 3}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -154,10 +154,10 @@ RectTransform:
m_Father: {fileID: 1366463779}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_SizeDelta: {x: 200, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &62373054
MonoBehaviour:
@ -228,11 +228,11 @@ RectTransform:
m_Children:
- {fileID: 101218848}
m_Father: {fileID: 1678571401}
m_RootOrder: 0
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: -138}
m_AnchoredPosition: {x: -134, y: -138}
m_SizeDelta: {x: 160, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &100414011
@ -384,7 +384,7 @@ MonoBehaviour:
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Button
m_Text: "\u4E0B"
--- !u!222 &101218850
CanvasRenderer:
m_ObjectHideFlags: 0
@ -652,6 +652,84 @@ Transform:
m_Father: {fileID: 0}
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1022905764
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1022905765}
- component: {fileID: 1022905767}
- component: {fileID: 1022905766}
m_Layer: 5
m_Name: Text
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1022905765
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1022905764}
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: 1083730967}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1022905766
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1022905764}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_RaycastTarget: 1
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 14
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: "\u4E0A"
--- !u!222 &1022905767
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1022905764}
m_CullTransparentMesh: 0
--- !u!1 &1079865532
GameObject:
m_ObjectHideFlags: 0
@ -695,6 +773,125 @@ Transform:
m_Father: {fileID: 0}
m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1083730966
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1083730967}
- component: {fileID: 1083730970}
- component: {fileID: 1083730969}
- component: {fileID: 1083730968}
m_Layer: 5
m_Name: BtnUp
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1083730967
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1083730966}
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: 1022905765}
m_Father: {fileID: 1678571401}
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: 129, y: -138}
m_SizeDelta: {x: 160, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1083730968
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1083730966}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 1083730969}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!114 &1083730969
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1083730966}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!222 &1083730970
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1083730966}
m_CullTransparentMesh: 0
--- !u!1 &1362042230
GameObject:
m_ObjectHideFlags: 0
@ -772,7 +969,7 @@ RectTransform:
- {fileID: 62373053}
- {fileID: 1426317966}
m_Father: {fileID: 1678571401}
m_RootOrder: 1
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}
@ -824,14 +1021,14 @@ RectTransform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1426317965}
m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}
m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: -0.7071068}
m_LocalPosition: {x: 0, y: 0, z: 50}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 381630236}
m_Father: {fileID: 1366463779}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
m_LocalEulerAnglesHint: {x: 270, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 1}
m_AnchorMax: {x: 0.5, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
@ -966,6 +1163,7 @@ RectTransform:
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0, y: 0, z: 0}
m_Children:
- {fileID: 1083730967}
- {fileID: 100414010}
- {fileID: 1366463779}
m_Father: {fileID: 0}

View File

@ -14,7 +14,7 @@ public class RowerMultiModeScript : MonoBehaviour
{
// Start is called before the first frame update
[SerializeField]
GameObject rank;
GameObject rank,trace;
Transform scroll,m2;
Vector3 startPosition,boatStartPosition;
@ -65,22 +65,23 @@ public class RowerMultiModeScript : MonoBehaviour
AddTouchEvent();
m2 = transform.Find("Rower/Modes/Scroll/M2");
caches = new Dictionary<string, Texture>();
traceList = new List<Trace>()
{
new Trace{ userId=0, trace=m2.Find("Track/T1") },
new Trace{ userId=0, trace=m2.Find("Track/T2") },
new Trace{ userId=0, trace=m2.Find("Track/T3") },
new Trace{ userId=0, trace=m2.Find("Track/T4") },
new Trace{ userId=0, trace=m2.Find("Track/T5") },
};
initialPosYList = new List<float>
{
m2.Find("Track/T1").localPosition.y,
m2.Find("Track/T2").localPosition.y,
m2.Find("Track/T3").localPosition.y,
m2.Find("Track/T4").localPosition.y,
m2.Find("Track/T5").localPosition.y,
};
traceList = new List<Trace>();
//traceList = new List<Trace>()
//{
// new Trace{ userId=0, trace=m2.Find("Track/T1") },
// new Trace{ userId=0, trace=m2.Find("Track/T2") },
// new Trace{ userId=0, trace=m2.Find("Track/T3") },
// new Trace{ userId=0, trace=m2.Find("Track/T4") },
// new Trace{ userId=0, trace=m2.Find("Track/T5") },
//};
//initialPosYList = new List<float>
//{
// m2.Find("Track/T1").localPosition.y,
// m2.Find("Track/T2").localPosition.y,
// m2.Find("Track/T3").localPosition.y,
// m2.Find("Track/T4").localPosition.y,
// m2.Find("Track/T5").localPosition.y,
//};
scrollRank = transform.Find("Rower/Modes/Scroll/M2/Rank/Scroll View").GetComponent<ScrollRect>();
var countryJson = Resources.Load<TextAsset>("UI/flags-mini").text;
countryList = JsonConvert.DeserializeObject<List<CountryModel>>(countryJson);
@ -130,6 +131,14 @@ public class RowerMultiModeScript : MonoBehaviour
{
rankDiffDict[userId].rank = rank;
rankDiffDict[userId].diff = userList[i].currentRank - rank;
if (currentSecond % 2 == 0)
{
rankDiffDict[userId].sumdiff = rankDiffDict[userId].diff;
}
else
{
rankDiffDict[userId].sumdiff += rankDiffDict[userId].diff;
}
}
userList[i].currentRank = rank;
}
@ -160,6 +169,7 @@ public class RowerMultiModeScript : MonoBehaviour
{
public int rank { get; set; }
public int diff { get; set; }
public int sumdiff { get; set; }
}
public Dictionary<int, RankDiff> rankDiffDict;
public async void GetShadowList(RowerTaskPanel.RowerType rowerType)
@ -168,11 +178,11 @@ public class RowerMultiModeScript : MonoBehaviour
currentSecond = -1;
var res = await ConfigHelper.rowerApi.GetShadowList(rowerType);
shadowList = res.data;
foreach (var t in traceList)
{
t.userId = 0;
t.trace.gameObject.SetActive(false);
}
//foreach (var t in traceList)
//{
// t.userId = 0;
// t.trace.gameObject.SetActive(false);
//}
var _tmpList = shadowList.Select(x => new TraceData
{
list = x.list,
@ -191,7 +201,8 @@ public class RowerMultiModeScript : MonoBehaviour
myData.Avatar = App.CurrentUser.WxHeadImg;
myData.isMine = true;
myData.Country = App.CurrentUser.Country;
_tmpList.Add(myData);
_tmpList.Insert(_tmpList.Count / 2, myData);
//_tmpList.Add(myData);
userList = _tmpList.OrderByDescending(x => x.currentDistance).ToList();
rankDiffDict = new Dictionary<int, RankDiff>();
for (int i = 0; i < userList.Count; i++)
@ -200,186 +211,417 @@ public class RowerMultiModeScript : MonoBehaviour
rankDiffDict.Add(userList[i].UserId, new RankDiff { rank = userList[i].currentRank, diff = 0 });
}
DisplayUserRanks(true);
DisplayTraces();
DisplayTraces(true);
}
private void DisplayTraces()
private void DisplayTrace(Transform t,TraceData data,TraceData mineData,bool isAni = false)
{
var list = HandleData();
//CompareTraceList(traceList, list);
int i = 0;
var mineData = list.FirstOrDefault(x => x.isMine);
for (i = 0; i < list.Count;i++)
if (string.IsNullOrEmpty(data.Avatar))
{
var sq = DOTween.Sequence();
var item = traceList[i];
var data = list[i];
var t = item.trace.Find("p2");
TweenCallback callback = () =>
{
if (string.IsNullOrEmpty(data.Avatar))
{
t.Find("Left/Avatar").GetComponent<RawImage>().texture = null;
}
else
{
Utils.DisplayImageTempDict(t.Find("Left/Avatar").GetComponent<RawImage>(), data.Avatar, caches);
}
var _c = countryList.SingleOrDefault(x => x.country == data.Country);
if (_c != null)
{
t.Find("Left/Avatar/Country").GetComponent<Image>().sprite = Resources.Load<Sprite>(_c.source);
}
t.Find("Left/NickName").GetComponent<Text>().text = data.NickName;
t.Find("Left/Avatar").GetComponent<RawImage>().texture = null;
}
else
{
Utils.DisplayImageTempDict(t.Find("Left/Avatar").GetComponent<RawImage>(), data.Avatar, caches);
}
var _c = countryList.SingleOrDefault(x => x.country == data.Country);
if (_c != null)
{
t.Find("Left/Avatar/Country").GetComponent<Image>().sprite = Resources.Load<Sprite>(_c.source);
}
t.Find("Left/NickName").GetComponent<Text>().text = data.NickName;
if (data.list.Count == 0)
{
t.Find("Left/Time").GetComponent<Text>().text = TimeSpan.FromSeconds(0).ToString(@"mm\:ss");
}
else if (currentSecond >= 0 && currentSecond < data.list.Count)
{
var _d = data.list[currentSecond];
t.Find("Left/Time").GetComponent<Text>().text = TimeSpan.FromSeconds(_d.Pace).ToString(@"mm\:ss");
}
else
{
var _d = data.list[data.list.Count - 1];
t.Find("Left/Time").GetComponent<Text>().text = TimeSpan.FromSeconds(_d.Pace).ToString(@"mm\:ss");
}
var diff = data.currentDistance - mineData.currentDistance;
if (diff > 0)
{
t.Find("Main/Diff").GetComponent<Text>().text = diff.ToString("+#0M");
}
else if (diff == 0)
{
t.Find("Main/Diff").GetComponent<Text>().text = data.isMine ? "" : diff.ToString("#0M");
}
else
{
t.Find("Main/Diff").GetComponent<Text>().text = diff.ToString("#0M");
}
if (data.isMine)
{
t.transform.Find("Left/Time").GetComponent<Text>().color = Utils.HexToColorHtml("#f93086");
t.transform.Find("Left/NickName").GetComponent<Text>().color = Utils.HexToColorHtml("#f93086");
}
else
{
t.transform.Find("Left/Time").GetComponent<Text>().color = Utils.HexToColorHtml("#ffffff");
t.transform.Find("Left/NickName").GetComponent<Text>().color = Utils.HexToColorHtml("#ffffff");
}
};
if (!item.trace.gameObject.activeInHierarchy)
if (data.list.Count == 0)
{
t.Find("Left/Time").GetComponent<Text>().text = TimeSpan.FromSeconds(0).ToString(@"mm\:ss");
}
else if (currentSecond >= 0 && currentSecond < data.list.Count)
{
var _d = data.list[currentSecond];
t.Find("Left/Time").GetComponent<Text>().text = TimeSpan.FromSeconds(_d.Pace).ToString(@"mm\:ss");
}
else
{
var _d = data.list[data.list.Count - 1];
t.Find("Left/Time").GetComponent<Text>().text = TimeSpan.FromSeconds(_d.Pace).ToString(@"mm\:ss");
}
var diff = data.currentDistance - mineData.currentDistance;
if (diff > 0)
{
t.Find("Main/Diff").GetComponent<Text>().text = diff.ToString("+#0M");
}
else if (diff == 0)
{
if (data.isMine)
{
t = item.trace.Find("p1");
item.trace.gameObject.SetActive(true);
callback();
continue;
}
//var rotatesq = item.trace.GetComponent<RowerTraceAnimated>().startAnimation(0.8f, callback);
//if (rotatesq != null)
//{
// sq.Join(rotatesq);
//}
var isRotate = item.userId != data.UserId;
if (isRotate)
{
t = item.trace.Find("p2");
var rotatesq = item.trace.GetComponent<RowerTraceAnimated>().startAnimation(0.8f, callback);
if (rotatesq != null)
var originstr = $"<color=#f93086>{userList.FindIndex(x => x.isMine) + 1}</color> / {userList.Count}";
var str = originstr;
var mytxt = t.Find("Main/Diff").GetComponent<Text>();
if (rankDiffDict[data.UserId].diff != 0)
{
sq.Join(rotatesq);
}
}
else
{
t = item.trace.Find("p1");
sq.AppendCallback(callback);
}
item.userId = data.UserId;
if (currentSecond >= 0 && currentSecond < list[i].list.Count)
{
var _d = data.list[currentSecond];
if (currentSecond > 0)
{
var _pred = data.list[currentSecond - 1];
if (_pred.StrokeCount != _d.StrokeCount)
var myranksq = DOTween.Sequence();
myranksq.AppendCallback(() =>
{
//上次划桨次数和这次不一样 说明需要划桨一次
var spDict = GetComponent<RowerHomeScript>().spriteDict;
int spDictIndex = 0;
sq.Join(DOTween.To(() => spDictIndex, x => t.Find("Main/Boat").GetComponent<Image>().sprite = spDict[x], 14, 0.3f));
sq.AppendCallback(() =>
{
int spDictIndex2 = 14;
DOTween.To(() => spDictIndex2, x => t.Find("Main/Boat").GetComponent<Image>().sprite = spDict[x], 0, 0.6f);
});
}
}
}
var width = t.Find("Main").GetComponent<RectTransform>().sizeDelta.x - t.Find("Main/Boat").GetComponent<RectTransform>().sizeDelta.x;
var diffWidth = data.currentDistance - mineData.currentDistance + 50;
if (data.currentDistance <= 50)
{
diffWidth = data.currentDistance;
}
else if (rowerType.type == 1 && rowerType.value - data.currentDistance <= 50)
{
diffWidth = 100 - ((int)rowerType.value - data.currentDistance);
}
//if (data.isMine)
//{
// print("diff:" + diffWidth + ";"+ rowerType.type);
//}
if (diffWidth >= 0 && diffWidth <= 100)
{
var tWidth = (diffWidth / 100f) * width;
t.Find("Main/Boat").gameObject.SetActive(true);
//t.Find("Main/Boat").localPosition = new Vector3(25 + tWidth, t.Find("Main/Boat").localPosition.y, t.Find("Main/Boat").localPosition.z);
if (isRotate)
{
t.Find("Main/Boat").localPosition = new Vector3(21.5f + tWidth, t.Find("Main/Boat").localPosition.y, t.Find("Main/Boat").localPosition.z);
mytxt.DOFade(0, 0);
if (rankDiffDict[data.UserId].diff > 0) str = "<color=#f93086>↑</color>";
else if (rankDiffDict[data.UserId].diff < 0) str = "<color=#2fb95b>↓</color>";
mytxt.text = str;
});
myranksq.Append(mytxt.DOFade(1, 0.2f));
myranksq.AppendInterval(0.3f);
myranksq.Append(mytxt.DOFade(0, 0.2f));
myranksq.AppendCallback(() =>
{
mytxt.text = originstr;
});
myranksq.Append(mytxt.DOFade(1, 0.2f));
myranksq.Play();
}
else
{
sq.Join(t.Find("Main/Boat").DOLocalMoveX(21.5f + tWidth, 0.9f));
}
mytxt.text = originstr;
}
}
else
{
t.Find("Main/Boat").localPosition = new Vector3(-21.5f, t.Find("Main/Boat").localPosition.y, t.Find("Main/Boat").localPosition.z);
t.Find("Main/Boat").gameObject.SetActive(false);
t.Find("Main/Diff").GetComponent<Text>().text = diff.ToString("#0M");
}
//排名变化
var diffTransfrom = transform.Find("Rower/Modes/Scroll/M2/Track/RankDiff"+item.trace.name).GetComponent<Text>();
if (rankDiffDict[data.UserId].diff > 0)
{
diffTransfrom.text = "+" + rankDiffDict[data.UserId].diff;
var rankDiffSQ = DOTween.Sequence();
rankDiffSQ.Append(diffTransfrom.DOColor(Utils.HexToColorHtml("#bd362bff"), 0.3f));
rankDiffSQ.AppendInterval(0.4f);
rankDiffSQ.Append(diffTransfrom.DOColor(Utils.HexToColorHtml("#ffffff00"), 0.3f));
sq.Join(rankDiffSQ);
}
else if (rankDiffDict[data.UserId].diff < 0)
{
diffTransfrom.text = "" + rankDiffDict[data.UserId].diff;
var rankDiffSQ = DOTween.Sequence();
rankDiffSQ.Append(diffTransfrom.DOColor(Utils.HexToColorHtml("#27bac0ff"), 0.3f));
rankDiffSQ.AppendInterval(0.4f);
rankDiffSQ.Append(diffTransfrom.DOColor(Utils.HexToColorHtml("#ffffff00"), 0.3f));
sq.Join(rankDiffSQ);
}
sq.Play();
}
for (; i < traceList.Count; i++)
else
{
traceList[i].userId = 0;
traceList[i].trace.gameObject.SetActive(false);
t.Find("Main/Diff").GetComponent<Text>().text = diff.ToString("#0M");
}
if (data.isMine)
{
t.transform.Find("Left/Time").GetComponent<Text>().color = Utils.HexToColorHtml("#f93086");
t.transform.Find("Left/NickName").GetComponent<Text>().color = Utils.HexToColorHtml("#f93086");
}
else
{
t.transform.Find("Left/Time").GetComponent<Text>().color = Utils.HexToColorHtml("#ffffff");
t.transform.Find("Left/NickName").GetComponent<Text>().color = Utils.HexToColorHtml("#ffffff");
}
var width = t.Find("Main").GetComponent<RectTransform>().sizeDelta.x - t.Find("Main/Boat").GetComponent<RectTransform>().sizeDelta.x;
var diffWidth = data.currentDistance - mineData.currentDistance + 50;
if (data.currentDistance <= 50)
{
diffWidth = data.currentDistance;
}
else if (rowerType.type == 1 && rowerType.value - data.currentDistance <= 50)
{
diffWidth = 100 - ((int)rowerType.value - data.currentDistance);
}
if (diffWidth >= 0 && diffWidth <= 100)
{
var tWidth = (diffWidth / 100f) * width;
t.Find("Main/Boat").gameObject.SetActive(true);
if (isAni)
{
t.Find("Main/Boat").DOLocalMoveX(21.5f + tWidth, 0.6f);
}
else
{
t.Find("Main/Boat").localPosition = new Vector3(21.5f + tWidth, t.Find("Main/Boat").localPosition.y, t.Find("Main/Boat").localPosition.z);
}
}
else
{
t.Find("Main/Boat").localPosition = new Vector3(-21.5f, t.Find("Main/Boat").localPosition.y, t.Find("Main/Boat").localPosition.z);
t.Find("Main/Boat").gameObject.SetActive(false);
}
if (isAni && currentSecond >= 0 && currentSecond < data.list.Count)
{
var ani = DOTween.Sequence();
var _d = data.list[currentSecond];
if (currentSecond > 0)
{
var _pred = data.list[currentSecond - 1];
if (_pred.StrokeCount != _d.StrokeCount)
{
//上次划桨次数和这次不一样 说明需要划桨一次
var spDict = GetComponent<RowerHomeScript>().spriteDict;
int spDictIndex = 0;
ani.Join(DOTween.To(() => spDictIndex, x => t.Find("Main/Boat").GetComponent<Image>().sprite = spDict[x], 14, 0.2f));
ani.AppendCallback(() =>
{
int spDictIndex2 = 14;
DOTween.To(() => spDictIndex2, x => t.Find("Main/Boat").GetComponent<Image>().sprite = spDict[x], 0, 0.4f);
});
ani.Play();
}
}
}
}
private int getStartIndexByMineData()
{
var list = userList;
var mineIndex = list.FindIndex(x => x.isMine);
if (mineIndex < 2) return 0;
else if (mineIndex >= list.Count - 2)
{
mineIndex = list.Count - 5;
if (mineIndex < 0) mineIndex = 0;
return mineIndex;
}
else
{
return mineIndex - 2;
}
}
private int[] getStartRangeByMineData()
{
var list = userList;
var mineIndex = list.FindIndex(x => x.isMine);
if (mineIndex < 2)
{
int sindex = 0,eIndex = 4;
if (eIndex > list.Count - 1) eIndex = list.Count - 1;
return new int[] { sindex, eIndex };
}
else if (mineIndex >= list.Count - 2)
{
mineIndex = list.Count - 5;
if (mineIndex < 0) mineIndex = 0;
return new int[] { mineIndex, list.Count - 1 };
}
else
{
return new int[] { mineIndex - 2, mineIndex + 2 };
}
}
private void DisplayTraces(bool isRefresh = false)
{
var list = userList;
var listc = transform.Find("Rower/Modes/Scroll/M2/Track/Container/List");
print(listc.localPosition.ToString());
var mineData = list.FirstOrDefault(x => x.isMine);
var sindex = getStartIndexByMineData();
int i = 0;
if (isRefresh)
{
traceList.Clear();
listc.DestroyChildren();
for (i = 0; i < list.Count; i++)
{
var data = list[i];
var g = Instantiate<GameObject>(trace);
g.name = i.ToString();
DisplayTrace(g.transform.Find("T1/p1"), data, mineData);
g.transform.SetParent(listc);
g.SetActive(true);
g.transform.localScale = Vector3.one;
traceList.Add(new Trace { userId = data.UserId, trace = g.transform.Find("T1") });
}
listc.DOLocalMoveY(47 * sindex + 115.5f, 0.8f);
return;
}
var allsq = DOTween.Sequence();
if (currentSecond % 2 == 1)
{
allsq.Append(listc.DOLocalMoveY(47 * sindex + 115.5f, 0.5f).SetEase(Ease.InBounce));
var indexRange = getStartRangeByMineData();
var sq = DOTween.Sequence();
for (i = 0; i < list.Count; i++)
{
var sq1 = DOTween.Sequence();
var data = list[i];
var t = traceList[i].trace;
if (i >= indexRange[0] && i <= indexRange[1])
{
//需要做动画
if (data.UserId != traceList[i].userId)
{
var mysq = DOTween.Sequence();
if (traceList[i].userId == App.CurrentUser.Id)
{
mysq.Join(t.GetComponent<CanvasGroup>().DOFade(0, 0.5f).SetEase(Ease.OutSine));
}
if (data.UserId != App.CurrentUser.Id)
{
sq1.Append(t.GetComponent<CanvasGroup>().DOFade(0.68f, 0.45f).SetEase(Ease.InSine));
sq1.AppendCallback(() =>
{
DisplayTrace(t.Find("p1"), data, mineData);
});
sq1.Append(t.GetComponent<CanvasGroup>().DOFade(1, 0.45f));
}
else
{
mysq.Join(t.GetComponent<RowerTraceAnimated>().startAnimation(0.5f, () =>
{
DisplayTrace(t.Find("p2"), data, mineData);
}, rankDiffDict[data.UserId].sumdiff >= 0 ? 1 : 0));
allsq.Append(mysq);
}
}
else
{
sq1.AppendCallback(() =>
{
DisplayTrace(t.Find("p1"), data, mineData, true);
});
}
traceList[i].userId = data.UserId;
}
else
{
DisplayTrace(t.Find("p1"), data, mineData);
}
sq.Join(sq1);
}
allsq.Append(sq);
allsq.Play();
}
else
{
for (i = 0; i < list.Count; i++)
{
var data = list[i];
var _trace = traceList.FirstOrDefault(x=>x.userId == data.UserId);
if (_trace != null)
{
DisplayTrace(_trace.trace.Find("p1"), data, mineData, true);
}
}
}
//for (i = 0; i < list.Count; i++)
//{
// var sq = DOTween.Sequence();
// var item = traceList[i];
// var data = list[i];
// var t = item.trace.Find("p2");
//}
return;
//var list = HandleData();
//CompareTraceList(traceList, list);
//for (i = 0; i < list.Count;i++)
//{
// var sq = DOTween.Sequence();
// var item = traceList[i];
// var data = list[i];
// var t = item.trace.Find("p2");
// TweenCallback callback = () =>
// {
// };
// if (!item.trace.gameObject.activeInHierarchy)
// {
// t = item.trace.Find("p1");
// item.trace.gameObject.SetActive(true);
// callback();
// continue;
// }
// //var rotatesq = item.trace.GetComponent<RowerTraceAnimated>().startAnimation(0.8f, callback);
// //if (rotatesq != null)
// //{
// // sq.Join(rotatesq);
// //}
// var isRotate = item.userId != data.UserId;
// if (isRotate)
// {
// t = item.trace.Find("p2");
// var rotatesq = item.trace.GetComponent<RowerTraceAnimated>().startAnimation(0.8f, callback);
// if (rotatesq != null)
// {
// sq.Join(rotatesq);
// }
// }
// else
// {
// t = item.trace.Find("p1");
// sq.AppendCallback(callback);
// }
// item.userId = data.UserId;
// if (currentSecond >= 0 && currentSecond < list[i].list.Count)
// {
// var _d = data.list[currentSecond];
// if (currentSecond > 0)
// {
// var _pred = data.list[currentSecond - 1];
// if (_pred.StrokeCount != _d.StrokeCount)
// {
// //上次划桨次数和这次不一样 说明需要划桨一次
// var spDict = GetComponent<RowerHomeScript>().spriteDict;
// int spDictIndex = 0;
// sq.Join(DOTween.To(() => spDictIndex, x => t.Find("Main/Boat").GetComponent<Image>().sprite = spDict[x], 14, 0.3f));
// sq.AppendCallback(() =>
// {
// int spDictIndex2 = 14;
// DOTween.To(() => spDictIndex2, x => t.Find("Main/Boat").GetComponent<Image>().sprite = spDict[x], 0, 0.6f);
// });
// }
// }
// }
// var width = t.Find("Main").GetComponent<RectTransform>().sizeDelta.x - t.Find("Main/Boat").GetComponent<RectTransform>().sizeDelta.x;
// var diffWidth = data.currentDistance - mineData.currentDistance + 50;
// if (data.currentDistance <= 50)
// {
// diffWidth = data.currentDistance;
// }
// else if (rowerType.type == 1 && rowerType.value - data.currentDistance <= 50)
// {
// diffWidth = 100 - ((int)rowerType.value - data.currentDistance);
// }
// //if (data.isMine)
// //{
// // print("diff:" + diffWidth + ";"+ rowerType.type);
// //}
// if (diffWidth >= 0 && diffWidth <= 100)
// {
// var tWidth = (diffWidth / 100f) * width;
// t.Find("Main/Boat").gameObject.SetActive(true);
// //t.Find("Main/Boat").localPosition = new Vector3(25 + tWidth, t.Find("Main/Boat").localPosition.y, t.Find("Main/Boat").localPosition.z);
// if (isRotate)
// {
// t.Find("Main/Boat").localPosition = new Vector3(21.5f + tWidth, t.Find("Main/Boat").localPosition.y, t.Find("Main/Boat").localPosition.z);
// }
// else
// {
// sq.Join(t.Find("Main/Boat").DOLocalMoveX(21.5f + tWidth, 0.9f));
// }
// }
// else
// {
// t.Find("Main/Boat").localPosition = new Vector3(-21.5f, t.Find("Main/Boat").localPosition.y, t.Find("Main/Boat").localPosition.z);
// t.Find("Main/Boat").gameObject.SetActive(false);
// }
//排名变化
//var diffTransfrom = transform.Find("Rower/Modes/Scroll/M2/Track/RankDiff"+item.trace.name).GetComponent<Text>();
//if (rankDiffDict[data.UserId].diff > 0)
//{
// diffTransfrom.text = "+" + rankDiffDict[data.UserId].diff;
// var rankDiffSQ = DOTween.Sequence();
// rankDiffSQ.Append(diffTransfrom.DOColor(Utils.HexToColorHtml("#bd362bff"), 0.3f));
// rankDiffSQ.AppendInterval(0.4f);
// rankDiffSQ.Append(diffTransfrom.DOColor(Utils.HexToColorHtml("#ffffff00"), 0.3f));
// sq.Join(rankDiffSQ);
//}
//else if (rankDiffDict[data.UserId].diff < 0)
//{
// diffTransfrom.text = "" + rankDiffDict[data.UserId].diff;
// var rankDiffSQ = DOTween.Sequence();
// rankDiffSQ.Append(diffTransfrom.DOColor(Utils.HexToColorHtml("#27bac0ff"), 0.3f));
// rankDiffSQ.AppendInterval(0.4f);
// rankDiffSQ.Append(diffTransfrom.DOColor(Utils.HexToColorHtml("#ffffff00"), 0.3f));
// sq.Join(rankDiffSQ);
//}
//sq.Play();
//}
//for (; i < traceList.Count; i++)
//{
// traceList[i].userId = 0;
// traceList[i].trace.gameObject.SetActive(false);
//}
}
private void CompareTraceList(List<Trace> traceList, List<TraceData> list)
@ -586,87 +828,87 @@ public class RowerMultiModeScript : MonoBehaviour
TouchKit.removeAllGestureRecognizers();
}
//交换A,B索引的赛道
void ChangeTrace(int indexA, int indexB)
{
if (indexA >= traceList.Count || indexB >= traceList.Count)
{
return;
}
if (traceList.Count(x => x.trace.gameObject.activeInHierarchy) == 0) return;
Trace a = traceList[indexA], b = traceList[indexB];
//2个排名
//先视觉交换
float aniTime = 0.3f;
Vector3 aloc = a.trace.localPosition;
var sq = DOTween.Sequence();
sq.Join(a.trace.DOLocalMoveY(b.trace.localPosition.y, aniTime));
sq.Join(b.trace.DOLocalMoveY(aloc.y, aniTime));
//逻辑交换
var tmp = traceList[indexA];
traceList[indexA] = traceList[indexB];
traceList[indexB] = tmp;
//void ChangeTrace(int indexA, int indexB)
//{
// if (indexA >= traceList.Count || indexB >= traceList.Count)
// {
// return;
// }
// if (traceList.Count(x => x.trace.gameObject.activeInHierarchy) == 0) return;
// Trace a = traceList[indexA], b = traceList[indexB];
// //2个排名
// //先视觉交换
// float aniTime = 0.3f;
// Vector3 aloc = a.trace.localPosition;
// var sq = DOTween.Sequence();
// sq.Join(a.trace.DOLocalMoveY(b.trace.localPosition.y, aniTime));
// sq.Join(b.trace.DOLocalMoveY(aloc.y, aniTime));
// //逻辑交换
// var tmp = traceList[indexA];
// traceList[indexA] = traceList[indexB];
// traceList[indexB] = tmp;
var sq1 = DOTween.Sequence();
if (traceList.Count(x => x.trace.gameObject.activeInHierarchy) != 5) return;
if (indexA == 1 && indexB == 2)
{
for (int i = 0; i < 5; i++)
{
if (i == 4)
{
sq1.Join(traceList[i].trace.DOLocalMoveY(initialPosYList[4] - 50.4f, aniTime));
}
else
{
sq1.Join(traceList[i].trace.DOLocalMoveY(initialPosYList[i + 1], aniTime));
}
}
sq1.AppendCallback(() =>
{
traceList[4].trace.localPosition = new Vector3(traceList[0].trace.localPosition.x, initialPosYList[0] + 49.5f, traceList[0].trace.localPosition.z);
});
sq1.Append(traceList[4].trace.DOLocalMoveY(initialPosYList[0], aniTime));
sq.Append(sq1);
sq.Play().onComplete = () =>
{
tmp = traceList[4];
for (int i = 4; i >= 1; i--)
{
traceList[i] = traceList[i - 1];
}
traceList[0] = tmp;
};
}
else if (indexA == 2 && indexB == 3)
{
for (int i = 0; i < 5; i++)
{
if (i == 0)
{
sq1.Join(traceList[i].trace.DOLocalMoveY(initialPosYList[0] + 50.4f, aniTime));
}
else
{
sq1.Join(traceList[i].trace.DOLocalMoveY(initialPosYList[i - 1], aniTime));
}
}
sq1.AppendCallback(() =>
{
traceList[0].trace.localPosition = new Vector3(traceList[0].trace.localPosition.x, initialPosYList[4] - 49.5f, traceList[0].trace.localPosition.z);
});
sq1.Append(traceList[0].trace.DOLocalMoveY(initialPosYList[4], aniTime));
sq.Append(sq1);
sq.Play().onComplete = () =>
{
tmp = traceList[0];
for (int i = 0; i < 4; i++)
{
traceList[i] = traceList[i + 1];
}
traceList[4] = tmp;
};
}
}
// var sq1 = DOTween.Sequence();
// if (traceList.Count(x => x.trace.gameObject.activeInHierarchy) != 5) return;
// if (indexA == 1 && indexB == 2)
// {
// for (int i = 0; i < 5; i++)
// {
// if (i == 4)
// {
// sq1.Join(traceList[i].trace.DOLocalMoveY(initialPosYList[4] - 50.4f, aniTime));
// }
// else
// {
// sq1.Join(traceList[i].trace.DOLocalMoveY(initialPosYList[i + 1], aniTime));
// }
// }
// sq1.AppendCallback(() =>
// {
// traceList[4].trace.localPosition = new Vector3(traceList[0].trace.localPosition.x, initialPosYList[0] + 49.5f, traceList[0].trace.localPosition.z);
// });
// sq1.Append(traceList[4].trace.DOLocalMoveY(initialPosYList[0], aniTime));
// sq.Append(sq1);
// sq.Play().onComplete = () =>
// {
// tmp = traceList[4];
// for (int i = 4; i >= 1; i--)
// {
// traceList[i] = traceList[i - 1];
// }
// traceList[0] = tmp;
// };
// }
// else if (indexA == 2 && indexB == 3)
// {
// for (int i = 0; i < 5; i++)
// {
// if (i == 0)
// {
// sq1.Join(traceList[i].trace.DOLocalMoveY(initialPosYList[0] + 50.4f, aniTime));
// }
// else
// {
// sq1.Join(traceList[i].trace.DOLocalMoveY(initialPosYList[i - 1], aniTime));
// }
// }
// sq1.AppendCallback(() =>
// {
// traceList[0].trace.localPosition = new Vector3(traceList[0].trace.localPosition.x, initialPosYList[4] - 49.5f, traceList[0].trace.localPosition.z);
// });
// sq1.Append(traceList[0].trace.DOLocalMoveY(initialPosYList[4], aniTime));
// sq.Append(sq1);
// sq.Play().onComplete = () =>
// {
// tmp = traceList[0];
// for (int i = 0; i < 4; i++)
// {
// traceList[i] = traceList[i + 1];
// }
// traceList[4] = tmp;
// };
// }
//}
float timer = 1f;
int currentSecond = -1;
private List<CountryModel> countryList;

View File

@ -12,7 +12,21 @@ public class RowerTraceAnimated : MonoBehaviour
{
//print(v1.Value.ToString() + v2.Value.ToString() + v3.Value.ToString());
}
public Sequence startAnimation(float time, TweenCallback callback)
private void Awake()
{
if (!v1.HasValue) v1 = transform.localPosition;
if (!v2.HasValue) v2 = transform.Find("p1").localPosition;
if (!v3.HasValue) v3 = transform.Find("p2").localPosition;
}
/// <summary>
///
/// </summary>
/// <param name="time"></param>
/// <param name="callback"></param>
/// <param name="type"></param>
/// <returns></returns>
public Sequence startAnimation(float time, TweenCallback callback, int type = 0)
{
//if (sq != null && sq.IsPlaying())
//{
@ -20,19 +34,22 @@ public class RowerTraceAnimated : MonoBehaviour
//}
Transform c = transform, c1 = c.Find("p1"), c2 = c.Find("p2");
var rect = c.GetComponent<RectTransform>();
var dirOffset = 0f;
if (type == 1) dirOffset = -1f * rect.sizeDelta.y;
var offset = rect.sizeDelta.y / 2;
var sq = DOTween.Sequence();
sq.AppendCallback(() =>
{
if (!v1.HasValue) v1 = transform.localPosition;
if (!v2.HasValue) v2 = transform.Find("p1").localPosition;
if (!v3.HasValue) v3 = transform.Find("p2").localPosition;
c2.localPosition = v3.Value + new Vector3(0, dirOffset, 0);
c2.localRotation = Quaternion.Euler(new Vector3(type == 1 ? 270 : 90, 0, 0));
callback();
//print(c.localPosition.ToString() + c.Find("p1").localPosition.ToString() + c.Find("p2").localPosition.ToString());
});
var sq1 = DOTween.Sequence();
sq1.Join(c.DORotate(new Vector3(-90, 0, 0), time));
sq1.Join(c.DOLocalMoveY(v1.Value.y - offset, time));
sq1.Join(c.DORotate(new Vector3(type == 1 ? 90 : -90, 0, 0), time));
sq1.Join(c.DOLocalMoveY(v1.Value.y + (type == 0 ? -offset : offset), time));
sq1.Join(c.DOLocalMoveZ(v1.Value.z + offset, time));
//var sq2 = DOTween.Sequence();
//sq2.Append(c.DOLocalMoveZ(v1.Value.z + offset*0.14f, time * 0.5f));
@ -48,10 +65,10 @@ public class RowerTraceAnimated : MonoBehaviour
c2.name = "p2";
c.localPosition = v1.Value;
c1.localPosition = v2.Value;
c2.localPosition = v3.Value;
c2.localPosition = v3.Value + new Vector3(0, dirOffset, 0);
c.localRotation = Quaternion.Euler(Vector3.zero);
c1.localRotation = Quaternion.Euler(Vector3.zero);
c2.localRotation = Quaternion.Euler(new Vector3(90, 0, 0));
c2.localRotation = Quaternion.Euler(new Vector3(type == 1 ? 270 : 90, 0, 0));
});
sq.Play();
return sq;

View File

@ -12,6 +12,11 @@ public class test : MonoBehaviour
{
transform.Find("Container").GetComponent<RowerTraceAnimated>().startAnimation(0.5f, () => { }).Play();
});
UIManager.AddEvent(transform.Find("BtnUp").gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, b =>
{
transform.Find("Container").GetComponent<RowerTraceAnimated>().startAnimation(0.5f, () => { },1).Play();
});
}
// Update is called once per frame