海拔图区间微调,消息面板&线路等微调

This commit is contained in:
lishuo 2021-05-13 17:48:28 +08:00
parent b694a69f16
commit 46cc231fe7
19 changed files with 3604 additions and 3034 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@ -0,0 +1,104 @@
fileFormatVersion: 2
guid: fef96814635c8b54b8621d82278649b3
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -100
wrapU: 1
wrapV: 1
wrapW: -1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,100 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: 3
m_Shader: {fileID: 4800000, guid: 818b0e872599e3948b6cceff71a30540, type: 3}
m_ShaderKeywords: _EMISSION
m_LightmapFlags: 1
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: 9959c8d64e68c9b49a96dd9de08c4315, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _Ramp:
m_Texture: {fileID: 2800000, guid: a4cdca73d61814d33ac1587f6c163bca, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ToonShade:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _Angle: 180
- _BumpScale: 1
- _ChartTiling: 1
- _ColorMask: 15
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Outline: 0.005
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _Stencil: 0
- _StencilComp: 0
- _StencilOp: 0
- _StencilReadMask: 255
- _StencilWriteMask: 255
- _Tiling: 1
- _UVSec: 0
- _UseUIAlphaClip: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 0}
- _ColorFrom: {r: 1, g: 1, b: 1, a: 0.6509804}
- _ColorTo: {r: 1, g: 1, b: 1, a: 0.6509804}
- _Combine: {r: 1, g: 1, b: 1, a: 0.6509804}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _OutlineColor: {r: 0, g: 0, b: 0, a: 1}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: bfb3e428f0c851243974e41761833fb2
timeCreated: 1500387811
licenseType: Store
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -31,6 +31,7 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: m_Children:
- {fileID: 515512715492064071} - {fileID: 515512715492064071}
- {fileID: 959555308160526461}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -174,3 +175,91 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
radius: 10.5 radius: 10.5
--- !u!1 &7858757397756306534
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 959555308160526461}
- component: {fileID: 1725904223754157555}
- component: {fileID: 4218035729129685602}
- component: {fileID: 7077266334615153541}
m_Layer: 5
m_Name: DefaultHead
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!224 &959555308160526461
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7858757397756306534}
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: 515512715299283612}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 2.0000305, y: 2.0000143}
m_SizeDelta: {x: 21, y: 21}
m_Pivot: {x: 0, y: 0}
--- !u!222 &1725904223754157555
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7858757397756306534}
m_CullTransparentMesh: 0
--- !u!114 &4218035729129685602
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7858757397756306534}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: adb30198aa32dd140b5750692dd48104, type: 3}
m_Name:
m_EditorClassIdentifier:
radius: 10.5
--- !u!114 &7077266334615153541
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7858757397756306534}
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: 21300000, guid: d0c64427b3fee1c43b1029096f236331, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1

View File

@ -119,8 +119,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0} m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 0} m_AnchorMax: {x: 1, y: 0}
m_AnchoredPosition: {x: -57.02, y: 14} m_AnchoredPosition: {x: -59.91, y: 14}
m_SizeDelta: {x: 59.95099, y: 17} m_SizeDelta: {x: 65.732025, y: 17}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8527166219890014554 --- !u!222 &8527166219890014554
CanvasRenderer: CanvasRenderer:
@ -162,7 +162,7 @@ MonoBehaviour:
m_HorizontalOverflow: 0 m_HorizontalOverflow: 0
m_VerticalOverflow: 0 m_VerticalOverflow: 0
m_LineSpacing: 1 m_LineSpacing: 1
m_Text: 0k/w m_Text: 00.00W/KG
--- !u!1 &4351825891595637247 --- !u!1 &4351825891595637247
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@ -145,10 +145,10 @@ MonoBehaviour:
m_Alignment: 5 m_Alignment: 5
m_AlignByGeometry: 0 m_AlignByGeometry: 0
m_RichText: 1 m_RichText: 1
m_HorizontalOverflow: 0 m_HorizontalOverflow: 1
m_VerticalOverflow: 0 m_VerticalOverflow: 0
m_LineSpacing: 1 m_LineSpacing: 1
m_Text: 0k/w m_Text: 0W/KG
--- !u!1 &4351825891595637247 --- !u!1 &4351825891595637247
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@ -31,6 +31,7 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: m_Children:
- {fileID: 515512715492064071} - {fileID: 515512715492064071}
- {fileID: 685146294485746414}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -174,3 +175,91 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
radius: 10.5 radius: 10.5
--- !u!1 &2069465055297021882
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 685146294485746414}
- component: {fileID: 6964437383665311935}
- component: {fileID: 3864835530241863395}
- component: {fileID: 532451459818130565}
m_Layer: 5
m_Name: DefaultHead
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!224 &685146294485746414
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2069465055297021882}
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: 515512715299283612}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 2.0000305, y: 2.0000143}
m_SizeDelta: {x: 21, y: 21}
m_Pivot: {x: 0, y: 0}
--- !u!222 &6964437383665311935
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2069465055297021882}
m_CullTransparentMesh: 0
--- !u!114 &3864835530241863395
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2069465055297021882}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: adb30198aa32dd140b5750692dd48104, type: 3}
m_Name:
m_EditorClassIdentifier:
radius: 10.5
--- !u!114 &532451459818130565
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2069465055297021882}
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: 21300000, guid: d0c64427b3fee1c43b1029096f236331, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1

View File

@ -34,8 +34,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1} m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 182, y: -33} m_AnchoredPosition: {x: 185.41, y: -33}
m_SizeDelta: {x: 48, y: 14} m_SizeDelta: {x: 54.83954, y: 14}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6689447652737097173 --- !u!222 &6689447652737097173
CanvasRenderer: CanvasRenderer:

File diff suppressed because it is too large Load Diff

View File

@ -133,19 +133,7 @@ namespace Assets.Scenes.Ride.Scripts
//开始骑行 //开始骑行
if (GetStart()) if (GetStart())
{ {
//计算累计爬升
if (index > 0)
{
totalClimb = 0;
for (int i = 1; i <= index; i++)
{
var diff = mapData.List[i].Elevation - mapData.List[i - 1].Elevation;
if (diff > 0)
{
totalClimb += diff;
}
}
}
ticks++; ticks++;
Compute();//接受蓝牙设备数据计算 Compute();//接受蓝牙设备数据计算
@ -164,7 +152,7 @@ namespace Assets.Scenes.Ride.Scripts
prePos = transform.localPosition;//当前点 prePos = transform.localPosition;//当前点
thisRotation = transform.localRotation; thisRotation = transform.localRotation;
//移动动画控制 //移动动画控制
//if (distance > 0) if (distance > 0)
{ {
StartCoroutine(MoveTo());//移动 StartCoroutine(MoveTo());//移动
} }
@ -234,7 +222,7 @@ namespace Assets.Scenes.Ride.Scripts
nextSlope = pointList[nextIndex].Grade; nextSlope = pointList[nextIndex].Grade;
nextSlopeDistance = sumDistance - totalDistance * 1000; nextSlopeDistance = sumDistance - totalDistance * 1000;
NextSlopeTotalDistance = pointList[nextIndex].Distance; NextSlopeTotalDistance = pointList[nextIndex].Distance;
currentSlopeDistance = CurrentDistance-( totalDistance * 1000 - (sumDistance - pointList[index].Distance)); currentSlopeDistance = (totalDistance * 1000 - (sumDistance - pointList[index].Distance));// CurrentDistance-( totalDistance * 1000 - (sumDistance - pointList[index].Distance));
} }
public double PreElevation; public double PreElevation;
public double PreSlope; public double PreSlope;
@ -280,11 +268,11 @@ namespace Assets.Scenes.Ride.Scripts
t += Time.deltaTime; t += Time.deltaTime;
Vector3 v = Vector3.Lerp(prePos, nextPos, t); Vector3 v = Vector3.Lerp(prePos, nextPos, t);
Vector3 nextPosition = new Vector3((float)Math.Round(v.x, 2), (float)Math.Round(v.y, 2), (float)Math.Round(v.z, 2)); //Vector3 nextPosition = new Vector3((float)Math.Round(v.x, 2), (float)Math.Round(v.y, 2), (float)Math.Round(v.z, 2));
if (!nextPosition.Equals(transform.localPosition)) //if (!nextPosition.Equals(transform.localPosition))
{ {
currentPos = nextPosition; currentPos = v;
transform.localPosition = nextPosition; transform.localPosition = v;
//Camera.main.transform.localPosition = nextPosition; //Camera.main.transform.localPosition = nextPosition;
} }
yield return new WaitForEndOfFrame(); yield return new WaitForEndOfFrame();

View File

@ -36,7 +36,7 @@ public class CyclingController : DeviceServiceMonoBase
private MapRoute mapRoute;//当前路书数据 private MapRoute mapRoute;//当前路书数据
private MapDataModel mapData;//当前路书数据 private MapDataModel mapData;//当前路书数据
private Route route;//当前路书综合数据 private Route route;//当前路书综合数据
public List<MapRouteRanking> mapRouteRankingList; public List<MapRouteRanking> mapRouteRankingList { get; set; }
private Vector2d coordiantes;//当前地图中心 private Vector2d coordiantes;//当前地图中心
public bool isStart;//当前游戏是否开始 public bool isStart;//当前游戏是否开始
@ -176,9 +176,14 @@ public class CyclingController : DeviceServiceMonoBase
var list = mapApi.GetRouteRanking(App.RouteIdParam, "1", 0, 10, ""); var list = mapApi.GetRouteRanking(App.RouteIdParam, "1", 0, 10, "");
if (list.result) if (list.result)
{ {
mapRouteRankingList = list.data.list; loadingController.CreateRankingList(list.data.list);
loadingController.CreateRankingList(mapRouteRankingList); loadingController.AddProcess(5);
loadingController.AddProcess(10); }
var shaowList = mapApi.GetShadowList(App.RouteIdParam, "", 0, 10);
if (shaowList.result)
{
mapRouteRankingList = shaowList.data.list;
loadingController.AddProcess(5);
} }
} }
//加载人物和地图以及UI界面 //加载人物和地图以及UI界面
@ -264,11 +269,11 @@ public class CyclingController : DeviceServiceMonoBase
GameObject onlineUserPrefab; GameObject onlineUserPrefab;
GameObject miniMapPlayerPrefab; GameObject miniMapPlayerPrefab;
int messageIndex = 0;
private void ShowOnlineUsers() private void ShowOnlineUsers()
{ {
var onlineRiders = cyclingController.riders; var onlineRiders = cyclingController.riders;
List<OnlinePlayerController> currentOnlineUserList = new List<OnlinePlayerController>(); var currentOnlineUserList = FindObjectsOfType<OnlinePlayerController>();
currentOnlineUserList.AddRange(FindObjectsOfType<OnlinePlayerController>());
//新增或者更新 //新增或者更新
foreach (var item in onlineRiders) foreach (var item in onlineRiders)
{ {
@ -276,30 +281,35 @@ public class CyclingController : DeviceServiceMonoBase
var currentUser = currentOnlineUserList.Where(c => c.UserId == item.UserId).FirstOrDefault(); var currentUser = currentOnlineUserList.Where(c => c.UserId == item.UserId).FirstOrDefault();
var onlineDistance = onlineRider.EndDistance - onlineRider.PreDistance; var onlineDistance = onlineRider.EndDistance - onlineRider.PreDistance;
var onlineTotalDistance = onlineRider.EndDistance; var onlineTotalDistance = onlineRider.EndDistance;
if (currentUser == null) if (currentUser == null)
{ {
//for (int i = 0; i < 100; i++)
//大地图人物 //大地图人物
GameObject otherPlayerObj = (GameObject)Instantiate(onlineUserPrefab, transform); GameObject otherPlayerObj = (GameObject)Instantiate(onlineUserPrefab, transform);
otherPlayerObj.transform.position = map.GeoToWorldPosition(Along(onlineTotalDistance)); otherPlayerObj.transform.position = map.GeoToWorldPosition(Along(onlineTotalDistance));
var onlinePlayerController = otherPlayerObj.GetComponent<OnlinePlayerController>(); var onlinePlayerController = otherPlayerObj.GetComponent<OnlinePlayerController>();
otherList.Add(onlinePlayerController); otherList.Add(onlinePlayerController);
onlinePlayerController.UserId = onlineRider.UserId; onlinePlayerController.UserId = onlineRider.UserId;
//onlinePlayerController.SetDistance(onlineDistance);
onlinePlayerController.SetDataSource(onlineTotalDistance, onlineDistance, onlineRider.NickName, onlineRider.WeightKg); onlinePlayerController.SetDataSource(onlineTotalDistance, onlineDistance, onlineRider.NickName, onlineRider.WeightKg);
onlinePlayerController.SetHead(onlineRider.WxHeadImg); onlinePlayerController.SetHead(onlineRider.WxHeadImg);
//小地图人物 //小地图人物
GameObject miniPlayer = (GameObject)Instantiate(miniMapPlayerPrefab, transform); GameObject miniPlayer = (GameObject)Instantiate(miniMapPlayerPrefab, transform);
var miniController = miniPlayer.GetComponent<MiniMapPlayerController>(); var miniController = miniPlayer.GetComponent<MiniMapPlayerController>();
miniController.SetController(onlinePlayerController); miniController.SetController(onlinePlayerController);
EventQueueSystem.QueueEvent(new JoinMessageEvent(onlineRider.NickName, onlineRider.WxHeadImg)); //发消息xx进入路书
if(messageIndex > 0)
EventQueueSystem.QueueEvent(new JoinMessageEvent(onlineRider.NickName, onlineRider.WxHeadImg));
} }
else else
{ {
currentUser.SetDataSource(onlineTotalDistance, onlineDistance, onlineRider.NickName, onlineRider.WeightKg); currentUser.SetDataSource(onlineTotalDistance, onlineDistance, onlineRider.NickName, onlineRider.WeightKg);
} }
} }
if(onlineRiders.Count > 0)
messageIndex++;
//移除 //移除
foreach (var item in currentOnlineUserList) foreach (var item in currentOnlineUserList)
{ {

View File

@ -28,7 +28,7 @@ namespace Assets.Scenes.Ride.Scripts
Name = e.name; Name = e.name;
url = e.url; url = e.url;
} }
float timer = 1f; float timer = 2f;
private void Update() private void Update()
{ {
timer -= Time.deltaTime; timer -= Time.deltaTime;
@ -37,27 +37,19 @@ namespace Assets.Scenes.Ride.Scripts
if (!string.IsNullOrEmpty(Name)) if (!string.IsNullOrEmpty(Name))
{ {
text.text = Name; text.text = Name;
canvas.DOFade(1, 1); canvas.DOFade(1, 2);
Name = string.Empty; Name = string.Empty;
} }
else else
{ {
canvas.DOFade(0, 1); canvas.DOFade(0, 2);
} }
if (!string.IsNullOrEmpty(url)) if (!string.IsNullOrEmpty(url))
{ {
Utils.DisplayImage(head, url, false); Utils.DisplayImage(head, url, false);
url = string.Empty; url = string.Empty;
} }
//dic. timer = 2.0f;
//foreach (var item in dic)
//{
// text.text = item.Key;
// Utils.DisplayImage(head, item.Value, true);
// dic.Remove(item.Key);
// break;
//}
timer = 1.0f;
} }
} }
} }

View File

@ -1,5 +1,6 @@
using DG.Tweening; using DG.Tweening;
using System; using System;
using System.Collections;
using System.Linq; using System.Linq;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
@ -28,24 +29,27 @@ namespace Assets.Scenes.Ride.Scripts
{ {
text.text = string.Format(format, totalDistance); text.text = string.Format(format, totalDistance);
index = currentIndex; index = currentIndex;
mOldScore = 0; process.fillAmount = 1;
process.fillAmount = 0; StartCoroutine(CompleteFill(process));
} }
else else
{ {
mScoreSequence.Append(DOTween.To(delegate (float value) mScoreSequence.Append(DOTween.To(delegate (float value)
{ {
//if (value != newScore) temp = Math.Round(value, digit);
{ process.fillAmount = (float)(value / totalDistance);
temp = Math.Round(value, digit); //向Text组件赋值
process.fillAmount = ((float)temp / (float)totalDistance); text.text = string.Format(format, temp);
//向Text组件赋值
text.text = string.Format(format, temp);
}
}, mOldScore, newScore, 1f)); }, mOldScore, newScore, 1f));
//将更新后的值记录下来, 用于下一次滚动动画 //将更新后的值记录下来, 用于下一次滚动动画
mOldScore = newScore; mOldScore = newScore;
} }
} }
IEnumerator CompleteFill(Image process)
{
yield return new WaitForSeconds(0.3f);
mOldScore = 0;
process.fillAmount = 0;
}
} }
} }

View File

@ -48,13 +48,10 @@ namespace Assets.Scenes.Ride.Scripts
protected override void Compute() protected override void Compute()
{ {
currentlatlong = mainController.Along(totalDistance);//下一个坐标 currentlatlong = mainController.Along(totalDistance);//下一个坐标
//var currentUser = cyclingExcutor?.riders.Where(c => c.UserId == UserId).FirstOrDefault();
//if (currentUser == null)
//{
// RemoveSelf();
//}
}
diff = Math.Round((totalDistance - _playerController.TotalDistance) * 1000, 0);
}
double diff = 0;
public void SetDataSource(double _totalDistance, double _distance,string Name,double weightKg) public void SetDataSource(double _totalDistance, double _distance,string Name,double weightKg)
{ {
totalDistance = _totalDistance; totalDistance = _totalDistance;
@ -108,6 +105,10 @@ namespace Assets.Scenes.Ride.Scripts
{ {
Utils.DisplayImage(head, headUrl, true); Utils.DisplayImage(head, headUrl, true);
} }
else
{
headPanel.transform.Find("DefaultHead").gameObject.SetActive(true);
}
} }
headPanel.transform.DOMove(new Vector3(itemPosition.x, itemPosition.y, 0), 1); headPanel.transform.DOMove(new Vector3(itemPosition.x, itemPosition.y, 0), 1);
@ -119,7 +120,7 @@ namespace Assets.Scenes.Ride.Scripts
{ {
infoPanel = Instantiate(Resources.Load<GameObject>("UI/Prefab/Ride/OnlineInfoPanel"), uiObject); infoPanel = Instantiate(Resources.Load<GameObject>("UI/Prefab/Ride/OnlineInfoPanel"), uiObject);
} }
var infoPos = playerScreenPos + new Vector3(100f, 60f, 0f); var infoPos = playerScreenPos + new Vector3(150f, 60f, 0f);
((RectTransform)infoPanel.transform).position = infoPos; ((RectTransform)infoPanel.transform).position = infoPos;
CreateInfoLine(playerScreenPos, infoPos); CreateInfoLine(playerScreenPos, infoPos);
var infoHead = infoPanel.transform.Find("Head").GetComponent<RawImage>(); var infoHead = infoPanel.transform.Find("Head").GetComponent<RawImage>();
@ -133,7 +134,7 @@ namespace Assets.Scenes.Ride.Scripts
var infoDistance = infoPanel.transform.Find("Distance").GetComponent<Text>(); var infoDistance = infoPanel.transform.Find("Distance").GetComponent<Text>();
if (_playerController != null) if (_playerController != null)
{ {
infoDistance.text = ((totalDistance - _playerController.TotalDistance ) * 1000).ToString("f0") + "M"; infoDistance.text = diff > 0? $"+{diff}M" : $"{diff}M";
} }
var infoWKG = infoPanel.transform.Find("WKG").GetComponent<Text>(); var infoWKG = infoPanel.transform.Find("WKG").GetComponent<Text>();
infoWKG.text = weightKgStr; infoWKG.text = weightKgStr;
@ -144,9 +145,12 @@ namespace Assets.Scenes.Ride.Scripts
public void RemoveSelf() public void RemoveSelf()
{ {
headPanel?.SetActive(false); //headPanel?.SetActive(false);
//transform.gameObject.SetActive(false); arrowImage.gameObject.SetActive(false);
infoPanel?.SetActive(false); headPanel?.Destroy();
infoPanel?.Destroy();
transform.gameObject.Destroy();
//infoPanel?.SetActive(false);
//transform.DestroyChildren(); //transform.DestroyChildren();
} }
@ -179,7 +183,7 @@ namespace Assets.Scenes.Ride.Scripts
_directionsGO.Destroy(); _directionsGO.Destroy();
} }
startPos = Camera.main.ScreenToWorldPoint(startPos); startPos = Camera.main.ScreenToWorldPoint(startPos);
endPos.x -= 50f; endPos.x -= 120f;
endPos = Camera.main.ScreenToWorldPoint(endPos); endPos = Camera.main.ScreenToWorldPoint(endPos);
_directionsGO = new GameObject("InfoLinerender"); _directionsGO = new GameObject("InfoLinerender");

View File

@ -36,6 +36,8 @@ namespace Assets.Scenes.Ride.Scripts
arrowImage = Instantiate(Resources.Load<Image>("UI/Prefab/Ride/ReviewArrow"), uiObject); arrowImage = Instantiate(Resources.Load<Image>("UI/Prefab/Ride/ReviewArrow"), uiObject);
} }
double diff = 0;
protected override void Compute() protected override void Compute()
{ {
if (tickOffset + ticks < record.Length) if (tickOffset + ticks < record.Length)
@ -55,7 +57,7 @@ namespace Assets.Scenes.Ride.Scripts
totalDistance = data._Distance; totalDistance = data._Distance;
} }
currentlatlong = mainController.Along(totalDistance);//下一个坐标 currentlatlong = mainController.Along(totalDistance);//下一个坐标
var diff = Math.Round(totalDistance - _playerController.TotalDistance, 3) * 1000; diff = Math.Round((totalDistance - _playerController.TotalDistance) *1000, 0);
_reviewItemScript.SetDistance(diff); _reviewItemScript.SetDistance(diff);
} }
@ -86,7 +88,7 @@ namespace Assets.Scenes.Ride.Scripts
{ {
infoPanel = Instantiate(Resources.Load<GameObject>("UI/Prefab/Ride/OnlineInfoPanel"), uiObject); infoPanel = Instantiate(Resources.Load<GameObject>("UI/Prefab/Ride/OnlineInfoPanel"), uiObject);
} }
var infoPos = playerScreenPos + new Vector3(100f, 60f, 0f); var infoPos = playerScreenPos + new Vector3(150f, 60f, 0f);
((RectTransform)infoPanel.transform).position = infoPos; ((RectTransform)infoPanel.transform).position = infoPos;
CreateInfoLine(playerScreenPos, infoPos); CreateInfoLine(playerScreenPos, infoPos);
var infoHead = infoPanel.transform.Find("Head").GetComponent<RawImage>(); var infoHead = infoPanel.transform.Find("Head").GetComponent<RawImage>();
@ -100,7 +102,7 @@ namespace Assets.Scenes.Ride.Scripts
var infoDistance = infoPanel.transform.Find("Distance").GetComponent<Text>(); var infoDistance = infoPanel.transform.Find("Distance").GetComponent<Text>();
if (_playerController != null) if (_playerController != null)
{ {
infoDistance.text = ((totalDistance - _playerController.TotalDistance) * 1000).ToString("f0") + "M"; infoDistance.text = diff >0? $"+{diff}M" : $"{diff}M";
} }
var infoWKG = infoPanel.transform.Find("WKG").GetComponent<Text>(); var infoWKG = infoPanel.transform.Find("WKG").GetComponent<Text>();
if (Weight + BikeWeight != 0) { if (Weight + BikeWeight != 0) {
@ -120,7 +122,7 @@ namespace Assets.Scenes.Ride.Scripts
_directionsGO.Destroy(); _directionsGO.Destroy();
} }
startPos = Camera.main.ScreenToWorldPoint(startPos); startPos = Camera.main.ScreenToWorldPoint(startPos);
endPos.x -= 80f; endPos.x -= 120f;
endPos = Camera.main.ScreenToWorldPoint(endPos); endPos = Camera.main.ScreenToWorldPoint(endPos);
_directionsGO = new GameObject("InfoLinerender"); _directionsGO = new GameObject("InfoLinerender");

View File

@ -11,10 +11,6 @@ namespace Assets.Scenes.Ride.Scripts
{ {
#region #region
TrailRenderer trail; TrailRenderer trail;
//前面的人
public double frontOffset { set; get; } = double.NegativeInfinity;
//后面的人
public double backOffset { set; get; } = double.MaxValue;
protected override void Init() protected override void Init()
{ {
@ -52,12 +48,29 @@ namespace Assets.Scenes.Ride.Scripts
weight = App.CurrentUser.Weight; weight = App.CurrentUser.Weight;
bicycleWeight = App.CurrentUser.BicycleWeight; bicycleWeight = App.CurrentUser.BicycleWeight;
#if UNITY_EDITOR #if UNITY_EDITOR
power = 3000;//测试功率 power = 500;//测试功率
#endif #endif
mainController.TrackResistance(currentSlope * App.rideSetting.sensitivity / 100); mainController.TrackResistance(currentSlope * App.rideSetting.sensitivity / 100);
speed = Helper.CalculateSpeed(elevation, currentSlope, power, weight, bicycleWeight); if (power > 0)
distance = mainController.UpdateDistance(speed); {
totalDistance += distance; speed = Helper.CalculateSpeed(elevation, currentSlope, power, weight, bicycleWeight);
distance = mainController.UpdateDistance(speed);
totalDistance += distance;
}
//计算累计爬升
if (CurrentIndex > 0)
{
totalClimb = 0;
for (int i = 1; i <= CurrentIndex; i++)
{
var diff = mapData.List[i].Elevation - mapData.List[i - 1].Elevation;
if (diff > 0)
{
totalClimb += diff;
}
}
}
if (!stopRecord) if (!stopRecord)
{ {

View File

@ -127,13 +127,13 @@ namespace Assets.Scenes.Ride.Scripts
decimal diffAbs = Math.Abs(diff); decimal diffAbs = Math.Abs(diff);
if (diffAbs <= 200) if (diffAbs <= 200)
{ {
if (!dat.Contains(item)) //if (!dat.Contains(item))
dat.Add(item); dat.Add(item);
} }
if (diff <= 0 && diff > -200) if (diff <= 0 && diff > -200)
{ {
item.y += 0.15f; item.y += 0.15f;
if (!dat.Contains(item)) //if (!dat.Contains(item))
path.Add(item); path.Add(item);
} }
} }
@ -201,20 +201,20 @@ namespace Assets.Scenes.Ride.Scripts
_directionsGO.transform.parent = transform; _directionsGO.transform.parent = transform;
var lineRender = _directionsGO.AddComponent<LineRenderer>(); var lineRender = _directionsGO.AddComponent<LineRenderer>();
//lineRender.material = new Material(Shader.Find("Sprites/Default")); //lineRender.material = new Material(Shader.Find("Sprites/Default"));
lineRender.material = Resources.Load<Material>("UI/Material/color8"); lineRender.material = Resources.Load<Material>("UI/Material/3");
var dat = feat.Points[0]; var dat = feat.Points[0];
ColorUtility.TryParseHtmlString("#FF2742", out Color c); ColorUtility.TryParseHtmlString("#FF2742", out Color c);
lineRender.endColor = new Color(1,1,1,0.65f); lineRender.endColor = new Color(1,1,1,0.65f);
lineRender.startColor = new Color(1, 1, 1, 0.65f); lineRender.startColor = new Color(1, 1, 1, 0.65f);
//设置宽度 //设置宽度
lineRender.startWidth = 1f; lineRender.startWidth = 1.5f;
lineRender.endWidth = 1f; lineRender.endWidth = 1.5f;
lineRender.positionCount = dat.Count; lineRender.positionCount = dat.Count;
lineRender.SetPositions(feat.Points[0].ToArray()); lineRender.SetPositions(feat.Points[0].ToArray());
lineRender.loop = false; lineRender.loop = false;
lineRender.numCapVertices = 10; lineRender.numCapVertices = 10;
lineRender.numCornerVertices = 10; //lineRender.numCornerVertices = 30;
} }
@ -229,9 +229,9 @@ namespace Assets.Scenes.Ride.Scripts
_pathRoute.transform.parent = transform; _pathRoute.transform.parent = transform;
var lineRender = _pathRoute.AddComponent<LineRenderer>(); var lineRender = _pathRoute.AddComponent<LineRenderer>();
//lineRender.material = new Material(Shader.Find("Sprites/Default")); //lineRender.material = new Material(Shader.Find("Sprites/Default"));
var color7 = Resources.Load<Material>("UI/Material/color7"); //var color7 = Resources.Load<Material>("UI/Material/color7");
var Graph2 = Resources.Load<Material>("UI/Material/3dGraph2"); var Graph2 = Resources.Load<Material>("UI/Material/3dGraph2");
lineRender.materials = new Material[] { color7, Graph2 }; lineRender.materials = new Material[] { Graph2 };
lineRender.endColor = new Color(0.9764706f, 0.1882353f, 0.5254902f, 0.65f); lineRender.endColor = new Color(0.9764706f, 0.1882353f, 0.5254902f, 0.65f);
lineRender.startColor = new Color(0.9764706f, 0.1882353f, 0.5254902f, 0.65f); lineRender.startColor = new Color(0.9764706f, 0.1882353f, 0.5254902f, 0.65f);
@ -242,7 +242,7 @@ namespace Assets.Scenes.Ride.Scripts
lineRender.SetPositions(feat.ToArray()); lineRender.SetPositions(feat.ToArray());
lineRender.loop = false; lineRender.loop = false;
lineRender.numCapVertices = 10; lineRender.numCapVertices = 10;
lineRender.numCornerVertices = 10; //lineRender.numCornerVertices = 10;
// //
lineRender.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off; lineRender.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
lineRender.allowOcclusionWhenDynamic = false; lineRender.allowOcclusionWhenDynamic = false;

View File

@ -65,6 +65,7 @@ namespace Assets.Scenes.Ride.Scripts
RawImage altitudeGraph;//海拔图 RawImage altitudeGraph;//海拔图
Image leftImage; Image leftImage;
Image rightImage; Image rightImage;
Image area;
#endregion #endregion
#region #region
@ -166,6 +167,7 @@ namespace Assets.Scenes.Ride.Scripts
altitudeGraph = transform.Find("Panel/TitlePanel/AltitudeGraph").GetComponent<RawImage>(); altitudeGraph = transform.Find("Panel/TitlePanel/AltitudeGraph").GetComponent<RawImage>();
leftImage = transform.Find("Panel/TitlePanel/Left").GetComponent<Image>(); leftImage = transform.Find("Panel/TitlePanel/Left").GetComponent<Image>();
rightImage = transform.Find("Panel/TitlePanel/Right").GetComponent<Image>(); rightImage = transform.Find("Panel/TitlePanel/Right").GetComponent<Image>();
area = transform.Find("Panel/TitlePanel/Area").GetComponent<Image>();
settingPanel = transform.Find("Panel/SettingPanel").gameObject; settingPanel = transform.Find("Panel/SettingPanel").gameObject;
preSlopeText = transform.Find("Panel/PreSlopePanel/PreSlopeText").GetComponent<Text>(); preSlopeText = transform.Find("Panel/PreSlopePanel/PreSlopeText").GetComponent<Text>();
@ -307,14 +309,16 @@ namespace Assets.Scenes.Ride.Scripts
{ {
if (mainController.routeResult != null) if (mainController.routeResult != null)
{ {
if (mainController.routeResult.Mode == CyclingModel.Review.ToString()) #region
{ //if (mainController.routeResult.Mode == CyclingModel.Review.ToString())
mainController.SetCyclingModel(CyclingModel.Review); //{
selectPanel.SetActive(false); // mainController.SetCyclingModel(CyclingModel.Review);
var reviewFactory = reviewPanel.transform.GetComponent<ReviewFactory>(); // selectPanel.SetActive(false);
reviewFactory.Refresh(); // var reviewFactory = reviewPanel.transform.GetComponent<ReviewFactory>();
} // reviewFactory.Refresh();
else if (mainController.routeResult.Mode == CyclingModel.Single.ToString()) //}
#endregion
if (mainController.routeResult.Mode == CyclingModel.Single.ToString())
{ {
mainController.SetCyclingModel(CyclingModel.Single); mainController.SetCyclingModel(CyclingModel.Single);
selectPanel.SetActive(false); selectPanel.SetActive(false);
@ -398,7 +402,7 @@ namespace Assets.Scenes.Ride.Scripts
//nextSlopeDistanceText.GetComponent<NumberDotween>().AnimateNum((float)playerController.NextSlopeDistance, 0, "-{0}M"); //nextSlopeDistanceText.GetComponent<NumberDotween>().AnimateNum((float)playerController.NextSlopeDistance, 0, "-{0}M");
nextSlopeDistanceText.text = $"{Math.Round(playerController.NextSlopeTotalDistance, 0)}M"; nextSlopeDistanceText.text = $"{Math.Round(playerController.NextSlopeTotalDistance, 0)}M";
currentSlopeText.text = Math.Round(playerController.CurrentSlope, 1).ToString() + "%"; currentSlopeText.text = Math.Round(playerController.CurrentSlope, 1).ToString() + "%";
currentSlopeDistanceText.GetComponent<NumberDotween>().AnimateNum((float)playerController.CurrentDistance - (float)playerController.CurrentSlopeDistance, Math.Round(playerController.CurrentDistance, 0), playerController.CurrentIndex, 0, "{0}M", currentSlopeProcess); currentSlopeDistanceText.GetComponent<NumberDotween>().AnimateNum((float)playerController.CurrentSlopeDistance, Math.Round(playerController.CurrentDistance, 0), playerController.CurrentIndex, 0, "{0}M", currentSlopeProcess);
totalClimb.text = Math.Round(playerController.TotalClimb, 0).ToString(); totalClimb.text = Math.Round(playerController.TotalClimb, 0).ToString();
//小地图进度 //小地图进度
var process = (float)(playerController.TotalDistance / routeInstance.Distance); var process = (float)(playerController.TotalDistance / routeInstance.Distance);
@ -670,18 +674,23 @@ namespace Assets.Scenes.Ride.Scripts
leftImage.gameObject.SetActive(false); leftImage.gameObject.SetActive(false);
rightImage.gameObject.SetActive(false); rightImage.gameObject.SetActive(false);
altitudeGraph.gameObject.SetActive(false); altitudeGraph.gameObject.SetActive(false);
area.gameObject.SetActive(false);
} }
else else
{ {
var m = Screen.width / 1600D;
var start = chartDataSourceScript.GetRealTimeStart(); var start = chartDataSourceScript.GetRealTimeStart();
var end = chartDataSourceScript.GetRealTimeEnd(); var end = chartDataSourceScript.GetRealTimeEnd();
var originWith = Screen.width / 1600D * 30D; var originWith = m * 30D;
var with = Screen.width / 1600D * 286D; var with = m * 286D;
var left = start * with + originWith; var left = start * with + originWith;
var right = end * with + originWith; var right = end * with + originWith;
var rectTransform = area.gameObject.GetComponent<RectTransform>();
var width = m *(float)(right - left);
rectTransform.sizeDelta = new Vector2((float)width, 40);
rectTransform.DOMoveX((float)(left), 1);
leftImage.transform.DOMoveX((float)left, 1); leftImage.transform.DOMoveX((float)left, 1);
rightImage.transform.DOMoveX((float)right, 1); rightImage.transform.DOMoveX((float)right, 1);
} }