在线用户和影子选手信息面板,小地图已经骑行路线

This commit is contained in:
lishuo 2021-05-12 18:51:03 +08:00
parent 53ec9c60ac
commit 87d581291b
25 changed files with 4332 additions and 3675 deletions

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: 2
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: 0.9764706, g: 0.1882353, b: 0.5254902, a: 1}
- _ColorTo: {r: 0.9764706, g: 0.1882353, b: 0.5254902, a: 1}
- _Combine: {r: 0.9764706, g: 0.1882353, b: 0.5254902, a: 1}
- _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: 7f2773194b00f914b8e41b6cc678a6d7
timeCreated: 1500387811
licenseType: Store
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,5 +1,83 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1310746568155608328
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 201379500827278731}
- component: {fileID: 6689447652737097173}
- component: {fileID: 8496478426843251599}
m_Layer: 5
m_Name: WKG
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &201379500827278731
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1310746568155608328}
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: 8877223148509276862}
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 182, y: -33}
m_SizeDelta: {x: 48, y: 14}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6689447652737097173
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1310746568155608328}
m_CullTransparentMesh: 0
--- !u!114 &8496478426843251599
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1310746568155608328}
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.43137255, g: 0.43137255, b: 0.49019608, 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: 10
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 1
m_MaxSize: 40
m_Alignment: 3
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text:
--- !u!1 &8877223148508069543
GameObject:
m_ObjectHideFlags: 0
@ -90,6 +168,7 @@ GameObject:
- component: {fileID: 8877223148509276859}
- component: {fileID: 8877223148509276860}
- component: {fileID: 8877223148509276861}
- component: {fileID: 1538477679825685925}
m_Layer: 5
m_Name: OnlineInfoPanel
m_TagString: Untagged
@ -112,6 +191,7 @@ RectTransform:
- {fileID: 8877223148939721186}
- {fileID: 8877223148508069542}
- {fileID: 8877223149740740656}
- {fileID: 201379500827278731}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -170,6 +250,18 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
radius: 24
--- !u!225 &1538477679825685925
CanvasGroup:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8877223148509276863}
m_Enabled: 1
m_Alpha: 1
m_Interactable: 1
m_BlocksRaycasts: 1
m_IgnoreParentGroups: 0
--- !u!1 &8877223148630784880
GameObject:
m_ObjectHideFlags: 0
@ -345,7 +437,7 @@ GameObject:
- component: {fileID: 8877223149740740654}
- component: {fileID: 8877223149740740655}
m_Layer: 5
m_Name: WKG
m_Name: Speed
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0

View File

@ -29,7 +29,7 @@ Transform:
m_GameObject: {fileID: 1056360222971152080}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1.5, y: 1.5, z: 1.5}
m_LocalScale: {x: 0.5, y: 0.5, z: 0.5}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
@ -118,3 +118,4 @@ MonoBehaviour:
currentRotation: {x: 0, y: 0, z: 0, w: 0}
currentPos: {x: 0, y: 0, z: 0}
_playerController: {fileID: 0}
isShowInfo: 0

View File

@ -1,5 +1,83 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &705579626968878068
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7145357651862437592}
- component: {fileID: 7219548319158812587}
- component: {fileID: 2521118596606373240}
m_Layer: 5
m_Name: WKG
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7145357651862437592
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 705579626968878068}
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: 7819578903637061022}
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 204.8, y: -33}
m_SizeDelta: {x: 48, y: 14}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7219548319158812587
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 705579626968878068}
m_CullTransparentMesh: 0
--- !u!114 &2521118596606373240
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 705579626968878068}
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.43137255, g: 0.43137255, b: 0.49019608, 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: 10
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 1
m_MaxSize: 40
m_Alignment: 3
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text:
--- !u!1 &7819578903072407235
GameObject:
m_ObjectHideFlags: 0
@ -34,7 +112,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 134.00006, y: -17.5}
m_AnchoredPosition: {x: 114.00002, y: -17.5}
m_SizeDelta: {x: 136.00003, y: 19}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7819578903072407232
@ -113,7 +191,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
m_AnchoredPosition: {x: 45, y: 0}
m_AnchoredPosition: {x: 25, y: 0}
m_SizeDelta: {x: 30, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7819578903506910284
@ -197,7 +275,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 87.5, y: -33}
m_AnchoredPosition: {x: 67.5, y: -33}
m_SizeDelta: {x: 43, y: 14}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7819578903631722884
@ -253,6 +331,7 @@ GameObject:
- component: {fileID: 7819578903637061019}
- component: {fileID: 7819578903637061020}
- component: {fileID: 7819578903637061021}
- component: {fileID: 4396502583628743174}
m_Layer: 5
m_Name: ReviewInfoPanel
m_TagString: Untagged
@ -275,13 +354,14 @@ RectTransform:
- {fileID: 7819578903072407234}
- {fileID: 7819578903631722886}
- {fileID: 7819578904410199824}
- {fileID: 7145357651862437592}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 202, y: 48}
m_SizeDelta: {x: 255, y: 48}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7819578903637061019
CanvasRenderer:
@ -333,6 +413,18 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
radius: 24
--- !u!225 &4396502583628743174
CanvasGroup:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7819578903637061023}
m_Enabled: 1
m_Alpha: 1
m_Interactable: 1
m_BlocksRaycasts: 1
m_IgnoreParentGroups: 0
--- !u!1 &7819578904410199825
GameObject:
m_ObjectHideFlags: 0
@ -345,7 +437,7 @@ GameObject:
- component: {fileID: 7819578904410199822}
- component: {fileID: 7819578904410199823}
m_Layer: 5
m_Name: WKG
m_Name: Speed
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@ -407,7 +499,7 @@ MonoBehaviour:
m_Alignment: 3
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_HorizontalOverflow: 1
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text:

View File

@ -29,7 +29,7 @@ Transform:
m_GameObject: {fileID: 1056360222971152080}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1.5, y: 1.5, z: 1.5}
m_LocalScale: {x: 0.5, y: 0.5, z: 0.5}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
@ -108,11 +108,16 @@ MonoBehaviour:
m_EditorClassIdentifier:
character: {fileID: 1056360222971152080}
characterAnimator: {fileID: 0}
nextPos: {x: 0, y: 0, z: 0}
stopRecord: 0
CurrentIndex: 0
CurrentDistance: 0
NextSlopeTotalDistance: 0
PreElevation: 0
PreSlope: 0
record: []
currentRotation: {x: 0, y: 0, z: 0, w: 0}
currentPos: {x: 0, y: 0, z: 0}
_reviewItemScript: {fileID: 0}
_playerController: {fileID: 0}
tickOffset: 0
isShowInfo: 0

File diff suppressed because it is too large Load Diff

View File

@ -24,7 +24,7 @@ namespace Assets.Scenes.Ride.Scripts
protected AbstractMap map;
//AbstractMap map;
public bool IsShowInfo { get; set; }
#region
public Vector3 nextPos;
Vector3 prePos = Vector3.zero;

View File

@ -28,6 +28,8 @@ public class CyclingController : DeviceServiceMonoBase
public RouteResultParam selectParamModel;
public RouteResult routeResult;
public Dictionary<int, SeletedPlayerScript> selectPlayerDic { set; get; } = new Dictionary<int, SeletedPlayerScript>();
public int preticks;
#region
@ -212,12 +214,13 @@ public class CyclingController : DeviceServiceMonoBase
AutoStart();
InitPlayer();
}
PlayerController playerController;
//初始化人物位置角度
private void InitPlayer()
{
lockView = true;
TrailRenderer trail = player.GetComponent<TrailRenderer>();
PlayerController playerController = player.GetComponent<PlayerController>();
playerController = player.GetComponent<PlayerController>();
Vector2d lastLatLon = Along(recorderData.EndDistance);
Vector3 currentPos = map.GeoToWorldPosition(lastLatLon);
currentPos.y += 1f;
@ -284,7 +287,7 @@ public class CyclingController : DeviceServiceMonoBase
otherList.Add(onlinePlayerController);
onlinePlayerController.UserId = onlineRider.UserId;
//onlinePlayerController.SetDistance(onlineDistance);
onlinePlayerController.SetTotalDistance(onlineTotalDistance, onlineDistance);
onlinePlayerController.SetDataSource(onlineTotalDistance, onlineDistance, onlineRider.NickName, onlineRider.WeightKg);
onlinePlayerController.SetHead(onlineRider.WxHeadImg);
//小地图人物
GameObject miniPlayer = (GameObject)Instantiate(miniMapPlayerPrefab, transform);
@ -294,19 +297,31 @@ public class CyclingController : DeviceServiceMonoBase
}
else
{
//currentUser.SetDistance(onlineDistance);
currentUser.SetTotalDistance(onlineTotalDistance, onlineDistance);
currentUser.SetDataSource(onlineTotalDistance, onlineDistance, onlineRider.NickName, onlineRider.WeightKg);
}
}
////移除
//foreach (var item in currentOnlineUserList)
//{
// var currentItem = onlineRiders.Where(c => c.UserId == item.UserId).FirstOrDefault();
// if (currentItem == null)
// {
// item.RemoveSelf();
// }
//}
//移除
foreach (var item in currentOnlineUserList)
{
var currentItem = onlineRiders.Where(c => c.UserId == item.UserId).FirstOrDefault();
if (currentItem == null)
{
item.RemoveSelf();
}
var s = playerController.TotalDistance - item.TotalDistance;
}
//显示面板信息
var others = FindObjectsOfType<AbstractPlayer>();
foreach (var item in others)
{
item.IsShowInfo = false;
}
var frontPlayer = others.Where(c => c.TotalDistance - playerController.TotalDistance < 0.5 && c.TotalDistance - playerController.TotalDistance >= 0 && !(c is PlayerController)).OrderBy(c=>c.TotalDistance).FirstOrDefault();
var bakePlayer = others.Where(c => c.TotalDistance - playerController.TotalDistance >-0.5 && c.TotalDistance - playerController.TotalDistance < 0 && !(c is PlayerController)).OrderByDescending(c=>c.TotalDistance).FirstOrDefault();
if(frontPlayer != null)
frontPlayer.IsShowInfo = true;
if (bakePlayer != null)
bakePlayer.IsShowInfo = true;
}
#endregion
@ -461,6 +476,7 @@ public class CyclingController : DeviceServiceMonoBase
CaptureCamera(Camera.main, new Rect(Screen.width * 0f, Screen.height * 0f, Screen.width * 0.5f, Screen.height * 0.5f), imageFileName);
cyclingController.recorderData.StartTime = startTime;
cyclingController.recorderData.EndTime = UIManager.Now.GetDateTime();
cyclingController.recorderData.IsCompleted = totalDistance == mapData.TotalDistance;
cyclingController.recorderData.EndDistance = totalDistance;
cyclingController.recorderData.AntModelId = AntModelId;

View File

@ -42,6 +42,7 @@ namespace Assets.Scenes.Ride.Scripts
}
}
}
float timer = 0;
private void Update()
{
if (playerController != null)
@ -51,8 +52,44 @@ namespace Assets.Scenes.Ride.Scripts
((RectTransform)tr.transform).position = _minicamera.WorldToScreenPoint(_player.transform.localPosition);
//((RectTransform)tr).localPosition = _minicamera.WorldToViewportPoint(_player.transform.localPosition);
}
timer += Time.deltaTime;
while (timer>=1)
{
CreateMiniPath();
timer = 0;
}
}
private bool init = false;
void CreateMiniPath()
{
if (playerController == null)
return;
var dat = new List<Vector3>();
var mapData = cyclingCotroller.GetMapData();
if (mapData != null)
{
var count = mapData.List.Count;
var interval = Math.Max(Math.Ceiling(count / 100D), 1f);
for (int i = 0; i < mapData.List.Count; i++)
{
if (i % interval == 0)
{
var point = mapData.List[i].Point;
Vector3 item = _map.GeoToWorldPosition(new Vector2d(point[0], point[1]));
item.y += 5f;
if (playerController.CurrentIndex >= i-1)
{
dat.Add(item);
}
}
}
var feat = new VectorFeatureUnity();
feat.Points.Add(dat);
CreateRedLineRender(feat);//创建小地图路线
}
}
private bool init = false;
private void _map_OnInitialized()
{
init = true;
@ -161,6 +198,31 @@ namespace Assets.Scenes.Ride.Scripts
lineRender.loop = false;
_mipMapRoute.layer = 9;
}
#endregion
}
GameObject _mipMapPath;
void CreateRedLineRender(VectorFeatureUnity feat)
{
if (_mipMapPath != null)
{
_mipMapPath.Destroy();
}
_mipMapPath = new GameObject("MiniMapPath");
_mipMapPath.transform.parent = transform;
var lineRender = _mipMapPath.AddComponent<LineRenderer>();
lineRender.material = Instantiate(Resources.Load<Material>("UI/Material/2"));
var dat = feat.Points[0];
lineRender.endColor = Color.red;
lineRender.startColor = Color.red;
//设置宽度
lineRender.startWidth = 10f;
lineRender.endWidth = 10f;
lineRender.positionCount = dat.Count;
lineRender.SetPositions(feat.Points[0].ToArray());
lineRender.numCornerVertices = 20;
lineRender.numCapVertices = 20;
lineRender.loop = false;
_mipMapPath.layer = 9;
}
#endregion
}
}

View File

@ -37,7 +37,7 @@ namespace Assets.Scenes.Ride.Scripts
if (!string.IsNullOrEmpty(Name))
{
text.text = Name;
canvas.alpha = 1;
canvas.DOFade(1, 1);
Name = string.Empty;
}
else

View File

@ -78,6 +78,7 @@ namespace Assets.Scenes.Ride.Scripts.Model.CyclingModels
Point = new GeoJSON.Net.Geometry.GeographicPosition(item.Point[0], item.Point[1]),
EndDistance = item.EndDistance,
PreDistance = item.PreDistance,
WeightKg = item.WeightKg,
});
}

View File

@ -27,8 +27,8 @@ namespace Assets.Scenes.Ride.Scripts.Model.CyclingModels
CyclingState = CyclingStateEnum.Prepare,
CurrentRoute = route,
CurrentRouteStartDistance = 0,
StartTime = DateTime.Now
};
StartTime = UIManager.Now.GetDateTime(),//DateTime.Now
};
if (param != null)
{
@ -78,6 +78,7 @@ namespace Assets.Scenes.Ride.Scripts.Model.CyclingModels
Point = new GeoJSON.Net.Geometry.GeographicPosition(item.Point[0], item.Point[1]),
EndDistance = item.EndDistance,
PreDistance = item.PreDistance,
WeightKg = item.WeightKg,
});
}

View File

@ -100,6 +100,8 @@ namespace Assets.Scenes.Ride.Scripts.Model
public double CurrentRouteStartDistance { get; set; }
public DateTime StartTime { get; set; }
public DateTime EndTime { get; set; }
/// <summary>
/// 是否已经保存成功
/// </summary>
@ -159,7 +161,7 @@ namespace Assets.Scenes.Ride.Scripts.Model
ManufacturerId = ManufacturerId,
AntModelId = AntModelId,
StartTime = StartTime,
CreateTime = StartTime.AddSeconds(ticks),
CreateTime = EndTime, //StartTime.AddSeconds(ticks),
Ticks = ticks,
Mode = cyclingModel.ToString(),
Param = Newtonsoft.Json.JsonConvert.SerializeObject(selectParam),

View File

@ -12,6 +12,7 @@ namespace Assets.Scenes.Ride.Scripts.Model.RiderModels
public override RiderType riderType => RiderType.Online;
public double PreDistance { get; set; } = 0;
public double WeightKg { get; set; } = 0;
/// <summary>
///
/// </summary>

View File

@ -17,12 +17,15 @@ namespace Assets.Scenes.Ride.Scripts
GameObject headPanel;
Image arrowImage;
GameObject reviewInfoPanel;
GameObject infoPanel;
Transform uiObject;
GraphChartBase graph;
ChartDataSourceScript chartDataSourceScript;
string nickName;
string weightKgStr;
protected override void Init()
{
base.Init();
@ -45,21 +48,20 @@ namespace Assets.Scenes.Ride.Scripts
protected override void Compute()
{
currentlatlong = mainController.Along(totalDistance);//下一个坐标
//var currentUser = cyclingExcutor.riders.Where(c => c.UserId == UserId).FirstOrDefault();
//var currentUser = cyclingExcutor?.riders.Where(c => c.UserId == UserId).FirstOrDefault();
//if (currentUser == null)
//{
// RemoveSelf();
//}
}
public void SetDistance(double _distance)
{
}
public void SetTotalDistance(double _totalDistance, double _distance)
public void SetDataSource(double _totalDistance, double _distance,string Name,double weightKg)
{
totalDistance = _totalDistance;
distance = _distance;
speed = distance*3600;
nickName = Name;
weightKgStr = weightKg.ToString("f2") + "W/KG";
}
public int GetCurrentIndex(double endistance,MapDataModel mapDataModel)
@ -111,15 +113,91 @@ namespace Assets.Scenes.Ride.Scripts
headPanel.transform.DOMove(new Vector3(itemPosition.x, itemPosition.y, 0), 1);
}
public void ShowInfoPanel(Vector3 playerScreenPos)
{
if (infoPanel == null)
{
infoPanel = Instantiate(Resources.Load<GameObject>("UI/Prefab/Ride/OnlineInfoPanel"), uiObject);
}
var infoPos = playerScreenPos + new Vector3(100f, 60f, 0f);
((RectTransform)infoPanel.transform).position = infoPos;
CreateInfoLine(playerScreenPos, infoPos);
var infoHead = infoPanel.transform.Find("Head").GetComponent<RawImage>();
if (head != null)
{
infoHead.texture = head.texture;
}
var infoName = infoPanel.transform.Find("Name").GetComponent<Text>();
infoName.text = nickName;
var infoDistance = infoPanel.transform.Find("Distance").GetComponent<Text>();
if (_playerController != null)
{
infoDistance.text = ((totalDistance - _playerController.TotalDistance ) * 1000).ToString("f0") + "M";
}
var infoWKG = infoPanel.transform.Find("WKG").GetComponent<Text>();
infoWKG.text = weightKgStr;
var speedText = infoPanel.transform.Find("Speed").GetComponent<Text>();
speedText.text = speed.ToString("f1")+"KM/H";
}
public void RemoveSelf()
{
transform.gameObject.Destroy();
headPanel.Destroy();
headPanel?.SetActive(false);
//transform.gameObject.SetActive(false);
infoPanel?.SetActive(false);
//transform.DestroyChildren();
}
protected override void AfterExcute()
{
((RectTransform)arrowImage.transform).position = Camera.main.WorldToScreenPoint(transform.position);
var playerScreenPos = Camera.main.WorldToScreenPoint(transform.position);
((RectTransform)arrowImage.transform).position = playerScreenPos;
MoveHead(graph.transform);
if (IsShowInfo)
{
ShowInfoPanel(playerScreenPos);
}
else
{
if (infoPanel == null)
return;
infoPanel.transform.GetComponent<CanvasGroup>().DOFade(0, 1).onComplete += () => {
IsShowInfo = false;
infoPanel?.Destroy();
_directionsGO?.Destroy();
};
}
}
GameObject _directionsGO;
void CreateInfoLine(Vector3 startPos,Vector3 endPos)
{
if (_directionsGO != null)
{
_directionsGO.Destroy();
}
startPos = Camera.main.ScreenToWorldPoint(startPos);
endPos.x -= 50f;
endPos = Camera.main.ScreenToWorldPoint(endPos);
_directionsGO = new GameObject("InfoLinerender");
_directionsGO.transform.SetParent(transform);
var lineRender = _directionsGO.AddComponent<LineRenderer>();
lineRender.material = new Material(Shader.Find("Sprites/Default"));
//lineRender.material = Resources.Load<Material>("UI/Material/color8");
lineRender.endColor = new Color(0.1529412f, 0.8745098f, 0.8901961f, 1f);
lineRender.startColor = new Color(0.1529412f, 0.8745098f, 0.8901961f, 1f);
//设置宽度
lineRender.startWidth = 0.2f;
lineRender.endWidth = 0.2f;
lineRender.positionCount = 2;
lineRender.SetPositions(new Vector3[] { startPos, endPos });
lineRender.loop = false;
lineRender.numCapVertices = 10;
lineRender.numCornerVertices = 10;
}
}
}

View File

@ -9,16 +9,23 @@ namespace Assets.Scenes.Ride.Scripts
{
public class OtherPlayerController : AbstractPlayer
{
public string[] record;
public string[] record { set; get; }
public ReviewItemScript _reviewItemScript;
public PlayerController _playerController;
RawImage head;
GameObject headPanel;
GameObject infoPanel;
public int tickOffset = 0;
Image arrowImage;
GameObject reviewInfoPanel;
Transform uiObject;
string nickName;
string weightKgStr;
public double Weight { get; set; }
public double BikeWeight { get; set; }
protected override void Init()
{
base.Init();
@ -34,22 +41,28 @@ namespace Assets.Scenes.Ride.Scripts
if (tickOffset + ticks < record.Length)
{
var data = TargetData.Read(record[tickOffset + ticks - 1]);
power = data._Power;
speed = data._Speed;
distance = data._Speed/3600;
totalDistance = data._Distance;
}
else
{
var data = TargetData.Read(record[record.Length - 1]);
power = data._Power;
speed = data._Speed;
distance = data._Speed / 3600;
totalDistance = data._Distance;
}
currentlatlong = mainController.Along(totalDistance);//下一个坐标
var diff = Math.Round(totalDistance - _playerController.TotalDistance, 3) * 1000;
_reviewItemScript.SetDistance(diff);
}
public void SetController(ReviewItemScript reviewItemScript)
{
_reviewItemScript = reviewItemScript;
nickName = _reviewItemScript.GetName();
}
public void MoveHead(Transform parent,Vector3 nextPosition)
{
@ -66,9 +79,86 @@ namespace Assets.Scenes.Ride.Scripts
}
headPanel.transform.DOMove(new Vector3(nextPosition.x, nextPosition.y, 0), 1);
}
public void ShowInfoPanel(Vector3 playerScreenPos)
{
if (infoPanel == null)
{
infoPanel = Instantiate(Resources.Load<GameObject>("UI/Prefab/Ride/OnlineInfoPanel"), uiObject);
}
var infoPos = playerScreenPos + new Vector3(100f, 60f, 0f);
((RectTransform)infoPanel.transform).position = infoPos;
CreateInfoLine(playerScreenPos, infoPos);
var infoHead = infoPanel.transform.Find("Head").GetComponent<RawImage>();
if (head != null)
{
infoHead.texture = head.texture;
}
var infoName = infoPanel.transform.Find("Name").GetComponent<Text>();
infoName.text = nickName;
var infoDistance = infoPanel.transform.Find("Distance").GetComponent<Text>();
if (_playerController != null)
{
infoDistance.text = ((totalDistance - _playerController.TotalDistance) * 1000).ToString("f0") + "M";
}
var infoWKG = infoPanel.transform.Find("WKG").GetComponent<Text>();
if (Weight + BikeWeight != 0) {
weightKgStr = (power / (Weight + BikeWeight)).ToString("f2")+"W/KG";
infoWKG.text = weightKgStr;
}
var speedText = infoPanel.transform.Find("Speed").GetComponent<Text>();
speedText.text = speed.ToString("f1") + "KM/H";
}
GameObject _directionsGO;
void CreateInfoLine(Vector3 startPos, Vector3 endPos)
{
if (_directionsGO != null)
{
_directionsGO.Destroy();
}
startPos = Camera.main.ScreenToWorldPoint(startPos);
endPos.x -= 80f;
endPos = Camera.main.ScreenToWorldPoint(endPos);
_directionsGO = new GameObject("InfoLinerender");
_directionsGO.transform.SetParent(transform);
var lineRender = _directionsGO.AddComponent<LineRenderer>();
lineRender.material = new Material(Shader.Find("Sprites/Default"));
//lineRender.material = Resources.Load<Material>("UI/Material/color8");
lineRender.endColor = new Color(1, 1f, 1f, 0.65f);
lineRender.startColor = new Color(1, 1f, 1f, 0.65f);
//设置宽度
lineRender.startWidth = 0.2f;
lineRender.endWidth = 0.2f;
lineRender.positionCount = 2;
lineRender.SetPositions(new Vector3[] { startPos, endPos });
lineRender.loop = false;
lineRender.numCapVertices = 10;
lineRender.numCornerVertices = 10;
}
protected override void AfterExcute()
{
((RectTransform)arrowImage.transform).position = Camera.main.WorldToScreenPoint(transform.position);
var playerScreenPos = Camera.main.WorldToScreenPoint(transform.position);
((RectTransform)arrowImage.transform).position = playerScreenPos;//Camera.main.WorldToScreenPoint(transform.position);
if (IsShowInfo)
{
ShowInfoPanel(playerScreenPos);
}
else
{
if (infoPanel == null)
return;
infoPanel.transform.GetComponent<CanvasGroup>().DOFade(0, 1).onComplete += () => {
IsShowInfo = false;
infoPanel?.Destroy();
_directionsGO?.Destroy();
};
}
}
}
}

View File

@ -11,7 +11,10 @@ namespace Assets.Scenes.Ride.Scripts
{
#region
TrailRenderer trail;
//前面的人
public double frontOffset { set; get; } = double.NegativeInfinity;
//后面的人
public double backOffset { set; get; } = double.MaxValue;
protected override void Init()
{
@ -49,7 +52,7 @@ namespace Assets.Scenes.Ride.Scripts
weight = App.CurrentUser.Weight;
bicycleWeight = App.CurrentUser.BicycleWeight;
#if UNITY_EDITOR
power = 300;//测试功率
power = 3000;//测试功率
#endif
mainController.TrackResistance(currentSlope * App.rideSetting.sensitivity / 100);
speed = Helper.CalculateSpeed(elevation, currentSlope, power, weight, bicycleWeight);

View File

@ -98,6 +98,10 @@ namespace Assets.Scenes.Ride.Scripts
var otherPlayerController = otherPlayerObj.GetComponent<OtherPlayerController>();
otherList.Add(otherPlayerController);
otherPlayerController.record = item.record;
otherPlayerController.Weight = cyclingController.selectPlayerDic[item.UserId].Weight;
otherPlayerController.BikeWeight = cyclingController.selectPlayerDic[item.UserId].BikeWeight;
otherPlayerController.SetController(reviewItemScript);
GameObject miniPlayer = (GameObject)Instantiate(miniMapPlayer, transform.parent.parent.parent);
var miniController = miniPlayer.GetComponent<MiniMapPlayerController>();

View File

@ -30,7 +30,10 @@ namespace Assets.Scenes.Ride.Scripts
{
Name.text = name;
}
public string GetName()
{
return Name.text;
}
public Texture GetHead()
{
return Head.texture;

View File

@ -161,6 +161,7 @@ namespace Assets.Scenes.Ride.Scripts
if (seletedPlayerScript.isUsed)
{
cyclingController.selectParamModel.RankingsId.Add(seletedPlayerScript.GetRankingId());
cyclingController.selectPlayerDic.Add(seletedPlayerScript.UserId, seletedPlayerScript);
}
}
//查询选中人员的骑行记录
@ -221,14 +222,6 @@ namespace Assets.Scenes.Ride.Scripts
}
private void CreateGameObject(List<MapRouteRanking> list)
{
//if (list.Count == 0)
//{
// noRecord.SetActive(true);
//}
//else
//{
// noRecord.SetActive(false);
//}
var parent = transform.Find("Panel/PlayerList/Scroll View/Viewport/Content");
int index = 0;
foreach (var item in list)
@ -241,6 +234,9 @@ namespace Assets.Scenes.Ride.Scripts
selectPlayerItemScript.SetTimer(item.TotalTime);
selectPlayerItemScript.SetWeightKg(item.WeightKg.ToString());
selectPlayerItemScript.SetHeadImage(item.WxHeadImg);
selectPlayerItemScript.Weight = item.Weight;
selectPlayerItemScript.BikeWeight = item.BicycleWeight;
selectPlayerItemScript.UserId = item.UserId;
selectPlayerItemScripts.Add(selectPlayerItemScript);
//UIManager.AddEventWithoutCursor(selectPlayerItemScript.GetButton().gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, OnSelectClick);
selectPlayerItemScript.GetButton().onClick.AddListener(delegate () { this.OnSelectClick(selectPlayerItemScript); });
@ -258,6 +254,9 @@ namespace Assets.Scenes.Ride.Scripts
seletedPlayerScript.SetHead(selectPlayerItemScript.GetImageTexture(), true);
seletedPlayerScript.SetName(selectPlayerItemScript.GetName());
seletedPlayerScript.SetRankingId(selectPlayerItemScript.GetRankingId());
seletedPlayerScript.UserId = selectPlayerItemScript.UserId;
seletedPlayerScript.Weight = selectPlayerItemScript.Weight;
seletedPlayerScript.BikeWeight = selectPlayerItemScript.BikeWeight;
UIManager.AddEvent(seletedPlayerScript.GetButton().gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, OnCloseClick);
selectPlayerItemScript.isSelected = true;
}
@ -273,7 +272,7 @@ namespace Assets.Scenes.Ride.Scripts
}
seletedPlayerScript.Reset();
}
//TODO BUG
private void OnEndDrag(BaseEventData arg0)
{
var scrollrect = scroll.GetComponent<ScrollRect>();

View File

@ -17,6 +17,11 @@ namespace Assets.Scenes.Ride.Scripts
private Text WeightKg;
private Button selectbutton;
public bool isSelected;
public double Weight { get; set; }
public double BikeWeight { get; set; }
public int UserId { get; set; }
private void Awake()
{
selectbutton = transform.GetComponent<Button>();

View File

@ -16,6 +16,11 @@ namespace Assets.Scenes.Ride.Scripts
private string RankingId = string.Empty;
public bool isUsed = false;
public double Weight { get; set; }
public double BikeWeight { get; set; }
public int UserId { get; set; }
private void Awake()
{
Head = transform.GetComponent<RawImage>();

View File

@ -23,5 +23,7 @@ namespace Assets.Scripts.Apis.Models
public string WxHeadImg { get; set; }
public string NickName { get; set; }
public double WeightKg { get; set; }
}
}

View File

@ -84,5 +84,9 @@ namespace Assets.Scripts.Apis.Models
/// 国家编号
/// </summary>
public string CountryCode { get; set; }
public double BicycleWeight { get; set; }
public double Weight { get; set; }
}
}