赛事逻辑细节调整
This commit is contained in:
parent
b2a527f518
commit
eb1803c9ef
@ -1,5 +1,104 @@
|
|||||||
%YAML 1.1
|
%YAML 1.1
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &4382447086690716054
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5919874311317632104}
|
||||||
|
- component: {fileID: 8200741020039933140}
|
||||||
|
- component: {fileID: 5534840131862683971}
|
||||||
|
- component: {fileID: 3632779539013864088}
|
||||||
|
- component: {fileID: 2706448526702157850}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Head
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 0
|
||||||
|
--- !u!224 &5919874311317632104
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4382447086690716054}
|
||||||
|
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: 6493213265088056322}
|
||||||
|
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: 7.7}
|
||||||
|
m_SizeDelta: {x: 34, y: 34}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &8200741020039933140
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4382447086690716054}
|
||||||
|
m_CullTransparentMesh: 0
|
||||||
|
--- !u!114 &5534840131862683971
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4382447086690716054}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_UVRect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
width: 1
|
||||||
|
height: 1
|
||||||
|
--- !u!114 &3632779539013864088
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4382447086690716054}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: adb30198aa32dd140b5750692dd48104, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
radius: 0
|
||||||
|
--- !u!114 &2706448526702157850
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4382447086690716054}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: adb30198aa32dd140b5750692dd48104, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
radius: 17
|
||||||
--- !u!1 &6493213265088056325
|
--- !u!1 &6493213265088056325
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -31,6 +130,7 @@ RectTransform:
|
|||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 7997588139725775237}
|
- {fileID: 7997588139725775237}
|
||||||
|
- {fileID: 5919874311317632104}
|
||||||
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}
|
||||||
@ -101,7 +201,7 @@ GameObject:
|
|||||||
- component: {fileID: 903010575534991368}
|
- component: {fileID: 903010575534991368}
|
||||||
- component: {fileID: 69121430299213633}
|
- component: {fileID: 69121430299213633}
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: Image
|
m_Name: Back
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
@ -123,8 +223,8 @@ RectTransform:
|
|||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||||
m_AnchoredPosition: {x: 0.14, y: 5.06}
|
m_AnchoredPosition: {x: -0.000014648, y: 7.7}
|
||||||
m_SizeDelta: {x: 32.28424, y: 28.873718}
|
m_SizeDelta: {x: 34, y: 34}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!222 &903010575534991368
|
--- !u!222 &903010575534991368
|
||||||
CanvasRenderer:
|
CanvasRenderer:
|
||||||
@ -153,7 +253,7 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_Sprite: {fileID: 21300000, guid: 38b250357a82cd14c9df5129757f2e58, type: 3}
|
m_Sprite: {fileID: 21300000, guid: d0c64427b3fee1c43b1029096f236331, type: 3}
|
||||||
m_Type: 0
|
m_Type: 0
|
||||||
m_PreserveAspect: 0
|
m_PreserveAspect: 0
|
||||||
m_FillCenter: 1
|
m_FillCenter: 1
|
||||||
|
|||||||
2983
Assets/Resources/UI/Prefab/Match/onlinePlayer.prefab
Normal file
2983
Assets/Resources/UI/Prefab/Match/onlinePlayer.prefab
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,6 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: d89e303a3008b774e87b6ba0a35ea20b
|
guid: 3ce179eef26cbf94ba2bd307690e4beb
|
||||||
folderAsset: yes
|
PrefabImporter:
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
assetBundleName:
|
assetBundleName:
|
||||||
57
Assets/Resources/UI/Prefab/Ride/OnlinePlayerEmpty.prefab
Normal file
57
Assets/Resources/UI/Prefab/Ride/OnlinePlayerEmpty.prefab
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &6205008823505179609
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5943061288920100496}
|
||||||
|
- component: {fileID: 5182925534904330519}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: OnlinePlayer
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &5943061288920100496
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6205008823505179609}
|
||||||
|
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: 0}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!114 &5182925534904330519
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6205008823505179609}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 281c3f68a13a427499876dec554c3223, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
character: {fileID: 6205008823505179609}
|
||||||
|
characterAnimator: {fileID: 0}
|
||||||
|
nextPos: {x: 0, y: 0, z: 0}
|
||||||
|
stopRecord: 0
|
||||||
|
CurrentIndex: 0
|
||||||
|
CurrentDistance: 0
|
||||||
|
NextSlopeTotalDistance: 0
|
||||||
|
PreElevation: 0
|
||||||
|
PreSlope: 0
|
||||||
|
currentRotation: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
currentPos: {x: 0, y: 0, z: 0}
|
||||||
|
_playerController: {fileID: 0}
|
||||||
@ -1,7 +1,6 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 0e8389fe2e69de14ba5b9b48f580dd81
|
guid: 0c03153a91a4d1a49a0b34d13ad04b96
|
||||||
folderAsset: yes
|
PrefabImporter:
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
assetBundleName:
|
assetBundleName:
|
||||||
File diff suppressed because it is too large
Load Diff
@ -45,7 +45,7 @@ public static class App
|
|||||||
public static int firstEnter { get; set; }
|
public static int firstEnter { get; set; }
|
||||||
|
|
||||||
public static IPEndPoint UdpAddress { get; private set; } = new IPEndPoint(IPAddress.Parse("192.168.0.97"), 11000);
|
public static IPEndPoint UdpAddress { get; private set; } = new IPEndPoint(IPAddress.Parse("192.168.0.97"), 11000);
|
||||||
public static IPEndPoint TcpAddress { get; private set; } = new IPEndPoint(IPAddress.Parse("192.168.0.97"), 21001);
|
public static IPEndPoint TcpAddress { get; private set; } = new IPEndPoint(IPAddress.Parse("192.168.0.102"), 21001);
|
||||||
public static UpdateModel UpdateObject { get; set; }
|
public static UpdateModel UpdateObject { get; set; }
|
||||||
public static int CompetionId { get; set; }//比赛id
|
public static int CompetionId { get; set; }//比赛id
|
||||||
//public static string AppDownloadUrl { get; internal set; }
|
//public static string AppDownloadUrl { get; internal set; }
|
||||||
@ -66,17 +66,13 @@ public static class App
|
|||||||
|
|
||||||
static App()
|
static App()
|
||||||
{
|
{
|
||||||
//CultureInfo currentCulture = (CultureInfo)Thread.CurrentThread.CurrentCulture.Clone();
|
#if !UNITY_EDITOR
|
||||||
//currentCulture.NumberFormat.NumberDecimalSeparator = ".";
|
// Host = "http://pf.juze.pro/";
|
||||||
//Thread.CurrentThread.CurrentCulture = currentCulture;
|
// UdpAddress = new IPEndPoint(IPAddress.Parse("47.97.84.8"), 21000);
|
||||||
//System.Globalization.CultureInfo.DefaultThreadCurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
|
// TcpAddress = new IPEndPoint(IPAddress.Parse("47.97.84.8"), 21001);
|
||||||
//#if !UNITY_EDITOR
|
Host = "https://wx.powerfun.com.cn/";
|
||||||
//// Host = "http://pf.juze.pro/";
|
UdpAddress = new IPEndPoint(IPAddress.Parse("47.97.84.8"), 11000);
|
||||||
//// UdpAddress = new IPEndPoint(IPAddress.Parse("47.97.84.8"), 21000);
|
TcpAddress = new IPEndPoint(IPAddress.Parse("47.97.84.8"), 11001);
|
||||||
//// TcpAddress = new IPEndPoint(IPAddress.Parse("47.97.84.8"), 21001);
|
#endif
|
||||||
// Host = "https://wx.powerfun.com.cn/";
|
|
||||||
// UdpAddress = new IPEndPoint(IPAddress.Parse("47.97.84.8"), 11000);
|
|
||||||
// TcpAddress = new IPEndPoint(IPAddress.Parse("47.97.84.8"), 11001);
|
|
||||||
//#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,8 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: fb74a9f48e6075b4098a071b7c41755b
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 7cecb30d95cebeb43b5768b505937c28
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@ -305,14 +305,15 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
Vector3 v = Vector3.Lerp(prePos, nextPos, t);
|
Vector3 v = Vector3.Lerp(prePos, nextPos, t);
|
||||||
currentPos = v;
|
currentPos = v;
|
||||||
transform.localPosition = v;
|
transform.localPosition = v;
|
||||||
if (UserId == mainController.currentPlayer.UserId)
|
//if (UserId == mainController.currentPlayer.UserId)
|
||||||
{
|
//{
|
||||||
yield return new WaitForEndOfFrame();
|
// yield return new WaitForEndOfFrame();
|
||||||
}
|
// }
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
yield return null;
|
// yield return null;
|
||||||
}
|
// }
|
||||||
|
yield return new WaitForEndOfFrame();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
@ -86,7 +86,7 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
protected void SetNextIndex()
|
protected void SetNextIndex()
|
||||||
{
|
{
|
||||||
var p = pageIndex + 1;
|
var p = pageIndex + 1;
|
||||||
if (p * pageSize <= totalPages)
|
if (p <= totalPages)
|
||||||
{
|
{
|
||||||
pageIndex++;
|
pageIndex++;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -222,7 +222,6 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
while (time < 0) {
|
while (time < 0) {
|
||||||
MoveElevationImage();
|
MoveElevationImage();
|
||||||
BindDataSource();
|
BindDataSource();
|
||||||
fps.text = (1 / Time.deltaTime).ToString();
|
|
||||||
time = 1;
|
time = 1;
|
||||||
}
|
}
|
||||||
MoveCamera();
|
MoveCamera();
|
||||||
|
|||||||
@ -11,6 +11,7 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
public class CompetitionRankingFactory : BaseListFactory
|
public class CompetitionRankingFactory : BaseListFactory
|
||||||
{
|
{
|
||||||
private bool isInit = false;
|
private bool isInit = false;
|
||||||
|
private bool isnext = false;
|
||||||
private List<CompetitionRankingSortModel> rankingList {get;set;}
|
private List<CompetitionRankingSortModel> rankingList {get;set;}
|
||||||
private AbstractPlayer currentPlayer { get; set; }
|
private AbstractPlayer currentPlayer { get; set; }
|
||||||
private Text Title { get; set; }
|
private Text Title { get; set; }
|
||||||
@ -45,11 +46,15 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
{
|
{
|
||||||
SetPreIndex();
|
SetPreIndex();
|
||||||
isInit = true;
|
isInit = true;
|
||||||
|
isnext = false;
|
||||||
|
CreateList();
|
||||||
}
|
}
|
||||||
private void NextPage(BaseEventData baseEventData)
|
private void NextPage(BaseEventData baseEventData)
|
||||||
{
|
{
|
||||||
SetNextIndex();
|
SetNextIndex();
|
||||||
isInit = true;
|
isInit = true;
|
||||||
|
isnext = true;
|
||||||
|
CreateList();
|
||||||
}
|
}
|
||||||
protected override void CreateList()
|
protected override void CreateList()
|
||||||
{
|
{
|
||||||
@ -71,10 +76,23 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
}
|
}
|
||||||
Rank.text = $"{pageIndex}/{totalPages}";
|
Rank.text = $"{pageIndex}/{totalPages}";
|
||||||
var pagedList = rankingList.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();
|
var pagedList = rankingList.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();
|
||||||
|
//删除
|
||||||
|
var currentList = FindObjectsOfType<CompetitionRankingItem>();
|
||||||
|
foreach (var item in currentList)
|
||||||
|
{
|
||||||
|
var e = pagedList.Where(c => c.UserId == item.UserId).FirstOrDefault();
|
||||||
|
if (e == null)
|
||||||
|
{
|
||||||
|
item.transform.gameObject.SetActive(false);//TODO:这里暂时不删除,删除对应的图片和脚本依赖这个对象;脚本提供一个dispose
|
||||||
|
bufferSize--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//创建或者新增
|
||||||
for (int i = 0; i < pagedList.Count(); i++)
|
for (int i = 0; i < pagedList.Count(); i++)
|
||||||
{
|
{
|
||||||
CreateOrUpdate(pagedList[i]);
|
CreateOrUpdate(pagedList[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
private void CreateOrUpdate(CompetitionRankingSortModel item)
|
private void CreateOrUpdate(CompetitionRankingSortModel item)
|
||||||
{
|
{
|
||||||
@ -95,7 +113,13 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
//情况二:没有足够的buffer,找到要被淘汰的buffer()最后一名
|
//情况二:没有足够的buffer,找到要被淘汰的buffer()最后一名
|
||||||
competitionRankingItem = rankingList.OrderByDescending(c => c.rank).FirstOrDefault();
|
if (isnext) {
|
||||||
|
competitionRankingItem = rankingList.OrderBy(c => c.rank).FirstOrDefault();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
competitionRankingItem = rankingList.OrderByDescending(c => c.rank).FirstOrDefault();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -106,7 +130,7 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
competitionRankingItem.setSpeed(item.Speed.ToString() + "KM/H");
|
competitionRankingItem.setSpeed(item.Speed.ToString() + "KM/H");
|
||||||
competitionRankingItem.setHead(item.Headimage);
|
competitionRankingItem.setHead(item.Headimage);
|
||||||
competitionRankingItem.setCountry(item.CountryImg);
|
competitionRankingItem.setCountry(item.CountryImg);
|
||||||
competitionRankingItem.setDistance(item.Near.ToString() + "KM");
|
competitionRankingItem.setDistance(currentPlayer.UserId == item.UserId?"0KM": item.Near.ToString() + "KM");
|
||||||
competitionRankingItem.transform.SetSiblingIndex(item.Index);
|
competitionRankingItem.transform.SetSiblingIndex(item.Index);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -74,8 +74,8 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
mainController.SetStart();
|
mainController.SetStart();
|
||||||
countDownPanel.SetActive(false);
|
countDownPanel.SetActive(false);
|
||||||
}
|
}
|
||||||
//显示结果
|
//显示结果(非观战到达终点弹窗)
|
||||||
var ishowResult = (competitionModel.mapCompetition?.HasRecord ?? false) || competitionModel.recorderData.Saved;
|
var ishowResult = !mainController.isWatch && (competitionModel.mapCompetition?.HasRecord ?? false) || competitionModel.recorderData.Saved;
|
||||||
if (ishowResult)
|
if (ishowResult)
|
||||||
{
|
{
|
||||||
ShowResultList();
|
ShowResultList();
|
||||||
|
|||||||
@ -41,20 +41,6 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
}
|
}
|
||||||
private void Create(CompetitionRankingSortModel item)
|
private void Create(CompetitionRankingSortModel item)
|
||||||
{
|
{
|
||||||
////创建
|
|
||||||
//GameObject prefabItem = item.IsSelf ? nearByMajorItem : nearByItem;
|
|
||||||
//GameObject newObj = (GameObject)Instantiate(prefabItem, parent);
|
|
||||||
//var competitionRankingItem = newObj.GetComponent<CompetitionRankingItem>();
|
|
||||||
//competitionRankingItem.setUserId(item.UserId);
|
|
||||||
//competitionRankingItem.setName(item.Name);
|
|
||||||
//competitionRankingItem.setRatio(item.KGWeight+"W/KG");
|
|
||||||
//competitionRankingItem.setSpeed(item.Speed.ToString() + "KM/H");
|
|
||||||
////competitionRankingItem.setHead(item.Headimage);
|
|
||||||
////competitionRankingItem.setCountry(cyclingController.GetCountryImageByName(item.));
|
|
||||||
//competitionRankingItem.setDistance(item.Near.ToString() + "KM");
|
|
||||||
////competitionRankingItem.setTimer(item.ti)
|
|
||||||
//bufferSize++;
|
|
||||||
|
|
||||||
var rankingList = FindObjectsOfType<TopRankingItem>();
|
var rankingList = FindObjectsOfType<TopRankingItem>();
|
||||||
var competitionRankingItem = rankingList.Where(c => c.UserId == item.UserId).FirstOrDefault();
|
var competitionRankingItem = rankingList.Where(c => c.UserId == item.UserId).FirstOrDefault();
|
||||||
//如果当前有这个用户则更新没有则创建并setslibingindex
|
//如果当前有这个用户则更新没有则创建并setslibingindex
|
||||||
|
|||||||
@ -21,6 +21,7 @@ using Assets.Scenes.Ride.Scripts.Model.RiderModels;
|
|||||||
using System.IO;
|
using System.IO;
|
||||||
using ChartAndGraph;
|
using ChartAndGraph;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
|
using System.Diagnostics;
|
||||||
|
|
||||||
public class CyclingController : DeviceServiceMonoBase
|
public class CyclingController : DeviceServiceMonoBase
|
||||||
{
|
{
|
||||||
@ -48,7 +49,7 @@ public class CyclingController : DeviceServiceMonoBase
|
|||||||
public int competitionId { get; set; }
|
public int competitionId { get; set; }
|
||||||
|
|
||||||
private MapApi mapApi;
|
private MapApi mapApi;
|
||||||
public DateTime startTime;
|
public DateTime startTime { get; set; }
|
||||||
public DateTime endTime;
|
public DateTime endTime;
|
||||||
public bool isQuit;
|
public bool isQuit;
|
||||||
public bool isPause;
|
public bool isPause;
|
||||||
@ -100,7 +101,7 @@ public class CyclingController : DeviceServiceMonoBase
|
|||||||
{
|
{
|
||||||
UIManager.Instance.MainPanel = this.transform.Find("SingleUI/Panel").GetComponent<PFUIPanel>();
|
UIManager.Instance.MainPanel = this.transform.Find("SingleUI/Panel").GetComponent<PFUIPanel>();
|
||||||
UIManager.Instance.ModalsPanel = this.transform.Find("SingleUI/ModalPanel").GetComponent<PFUIPanel>();
|
UIManager.Instance.ModalsPanel = this.transform.Find("SingleUI/ModalPanel").GetComponent<PFUIPanel>();
|
||||||
onlineUserPrefab = Resources.Load<GameObject>("UI/Prefab/Ride/OnlinePlayer");
|
onlineUserPrefab = Resources.Load<GameObject>("UI/Prefab/Match/OnlinePlayer");
|
||||||
miniMapPlayerPrefab = Resources.Load<GameObject>("UI/Prefab/Ride/MiniMapPlayer");
|
miniMapPlayerPrefab = Resources.Load<GameObject>("UI/Prefab/Ride/MiniMapPlayer");
|
||||||
watcher = Resources.Load<GameObject>("UI/Prefab/Match/Watcher");
|
watcher = Resources.Load<GameObject>("UI/Prefab/Match/Watcher");
|
||||||
target = transform.Find("Target");
|
target = transform.Find("Target");
|
||||||
@ -298,15 +299,17 @@ public class CyclingController : DeviceServiceMonoBase
|
|||||||
//miniMap.SetActive(true);
|
//miniMap.SetActive(true);
|
||||||
map.OnTileFinished += Map_OnTileFinished;
|
map.OnTileFinished += Map_OnTileFinished;
|
||||||
mapPos = map.transform.position;
|
mapPos = map.transform.position;
|
||||||
//SetCyclingModel(CyclingModel.Competition);
|
//为了解决比赛观看模式下,切换观看用户之前跨度过大导致地图海拔信息不完整的问题
|
||||||
|
RangeAroundTransformTileProviderOptions options = new RangeAroundTransformTileProviderOptions
|
||||||
|
{
|
||||||
|
targetTransform = target,
|
||||||
|
visibleBuffer = 4,
|
||||||
|
disposeBuffer = 4
|
||||||
|
};
|
||||||
|
map.SetExtent(MapExtentType.RangeAroundTransform, options);
|
||||||
|
map.SetExtentOptions(options);
|
||||||
}
|
}
|
||||||
|
|
||||||
//private void Map_OnTileFinished(Mapbox.Unity.MeshGeneration.Data.UnityTile obj)
|
|
||||||
//{
|
|
||||||
// var playerController = player.GetComponent<PlayerController>();
|
|
||||||
// player.transform.position = map.GeoToWorldPosition(playerController.Currentlatlong);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//设置骑行模式
|
//设置骑行模式
|
||||||
public void SetCyclingModel(CyclingModel mode)
|
public void SetCyclingModel(CyclingModel mode)
|
||||||
{
|
{
|
||||||
@ -338,23 +341,14 @@ public class CyclingController : DeviceServiceMonoBase
|
|||||||
if (selectedPlayer != null)
|
if (selectedPlayer != null)
|
||||||
{
|
{
|
||||||
currentPlayer = selectedPlayer;
|
currentPlayer = selectedPlayer;
|
||||||
|
selectedPlayer.transform.localScale = new Vector3(3f, 3f, 3f);
|
||||||
|
}
|
||||||
|
|
||||||
|
var unselectedPlayers = coll.Where(c => c.UserId != userId).ToList();
|
||||||
|
foreach (var item in unselectedPlayers)
|
||||||
|
{
|
||||||
|
item.transform.localScale = new Vector3(0.1f, 0.1f, 0.1f);
|
||||||
}
|
}
|
||||||
//如果是3d地图,显示3d小人
|
|
||||||
//if (Is3dView)
|
|
||||||
//{
|
|
||||||
// player.SetActive(true);
|
|
||||||
// var playerscript = player.GetComponent<AbstractPlayer>();
|
|
||||||
// playerscript = currentPlayer;
|
|
||||||
//}
|
|
||||||
//if (Is3dView)
|
|
||||||
//{
|
|
||||||
// onlinePlayer = Resources.Load<GameObject>("UI/Prefab/Ride/OnlinePlayer11");
|
|
||||||
// var ob = Instantiate(onlinePlayer, transform);
|
|
||||||
// ob.SetActive(true);
|
|
||||||
// ob.transform.position = currentPlayer.currentPos;
|
|
||||||
// //var on = ob.AddComponent<AbstractPlayer>();
|
|
||||||
// //on = currentPlayer;
|
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
public void ChangeRandomPlayer()
|
public void ChangeRandomPlayer()
|
||||||
{
|
{
|
||||||
@ -447,7 +441,7 @@ public class CyclingController : DeviceServiceMonoBase
|
|||||||
|
|
||||||
onlinePlayerController.UserId = onlineRider.UserId;
|
onlinePlayerController.UserId = onlineRider.UserId;
|
||||||
|
|
||||||
onlinePlayerController.SetDataSource(onlineTotalDistance, onlineDistance, onlineRider.NickName, onlineRider.WeightKg, index);
|
onlinePlayerController.SetDataSource(onlineTotalDistance, onlineDistance, onlineRider.NickName, onlineRider.WeightKg, new Vector2d(onlineRider.Point.Latitude, onlineRider.Point.Longitude),index);
|
||||||
onlinePlayerController.SetHead(onlineRider.WxHeadImg);
|
onlinePlayerController.SetHead(onlineRider.WxHeadImg);
|
||||||
//小地图人物
|
//小地图人物
|
||||||
GameObject miniPlayer = (GameObject)Instantiate(miniMapPlayerPrefab, transform);
|
GameObject miniPlayer = (GameObject)Instantiate(miniMapPlayerPrefab, transform);
|
||||||
@ -460,7 +454,7 @@ public class CyclingController : DeviceServiceMonoBase
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
currentUser.SetDataSource(onlineTotalDistance, onlineDistance, onlineRider.NickName, onlineRider.WeightKg, index);
|
currentUser.SetDataSource(onlineTotalDistance, onlineDistance, onlineRider.NickName, onlineRider.WeightKg, new Vector2d(onlineRider.Point.Latitude, onlineRider.Point.Longitude), index);
|
||||||
}
|
}
|
||||||
//如果是观察者且当前第一此进入场景(TODO:这样切换会闪一下待解决)
|
//如果是观察者且当前第一此进入场景(TODO:这样切换会闪一下待解决)
|
||||||
if (isWatch && currentPlayer is PlayerController)
|
if (isWatch && currentPlayer is PlayerController)
|
||||||
@ -488,8 +482,8 @@ public class CyclingController : DeviceServiceMonoBase
|
|||||||
{
|
{
|
||||||
item.IsShowInfo = false;
|
item.IsShowInfo = false;
|
||||||
}
|
}
|
||||||
var frontPlayer = others.Where(c => c.TotalDistance - playerController.TotalDistance < 0.25 && c.TotalDistance - playerController.TotalDistance >= 0 && !(c is PlayerController)).OrderBy(c=>c.TotalDistance).FirstOrDefault();
|
var frontPlayer = others.Where(c => c.TotalDistance - currentPlayer.TotalDistance < 0.25 && c.TotalDistance - currentPlayer.TotalDistance >= 0 && c.UserId != currentPlayer.UserId).OrderBy(c=>c.TotalDistance).FirstOrDefault();
|
||||||
var bakePlayer = others.Where(c => c.TotalDistance - playerController.TotalDistance >-0.25 && c.TotalDistance - playerController.TotalDistance < 0 && !(c is PlayerController)).OrderByDescending(c=>c.TotalDistance).FirstOrDefault();
|
var bakePlayer = others.Where(c => c.TotalDistance - currentPlayer.TotalDistance >-0.25 && c.TotalDistance - currentPlayer.TotalDistance < 0 && c.UserId != currentPlayer.UserId).OrderByDescending(c=>c.TotalDistance).FirstOrDefault();
|
||||||
if(frontPlayer != null)
|
if(frontPlayer != null)
|
||||||
frontPlayer.IsShowInfo = true;
|
frontPlayer.IsShowInfo = true;
|
||||||
if (bakePlayer != null)
|
if (bakePlayer != null)
|
||||||
@ -631,6 +625,7 @@ public class CyclingController : DeviceServiceMonoBase
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 游戏状态控制
|
#region 游戏状态控制
|
||||||
|
Stopwatch sw { get; set; }
|
||||||
//开始骑行
|
//开始骑行
|
||||||
public void SetStart()
|
public void SetStart()
|
||||||
{
|
{
|
||||||
@ -638,6 +633,9 @@ public class CyclingController : DeviceServiceMonoBase
|
|||||||
{
|
{
|
||||||
isStart = true;
|
isStart = true;
|
||||||
startTime = UIManager.Now.GetDateTime();
|
startTime = UIManager.Now.GetDateTime();
|
||||||
|
//骑行累计毫秒
|
||||||
|
sw = new Stopwatch();
|
||||||
|
sw.Start();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -659,6 +657,11 @@ public class CyclingController : DeviceServiceMonoBase
|
|||||||
//退出或者完成骑行
|
//退出或者完成骑行
|
||||||
public void SetQuit()
|
public void SetQuit()
|
||||||
{
|
{
|
||||||
|
//耗时巨大的代码
|
||||||
|
sw.Stop();
|
||||||
|
TimeSpan ts2 = sw.Elapsed;
|
||||||
|
UnityEngine.Debug.Log(string.Format("Stopwatch总共花费{0}ms.", ts2.TotalMilliseconds));
|
||||||
|
//TODO后算接口需要增加累计毫秒字段
|
||||||
isStart = false;
|
isStart = false;
|
||||||
isQuit = true;
|
isQuit = true;
|
||||||
}
|
}
|
||||||
@ -789,28 +792,25 @@ public class CyclingController : DeviceServiceMonoBase
|
|||||||
return new Vector2d(0,0);
|
return new Vector2d(0,0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/// <summary>
|
private double CurrentMaxAp = 0;//当前最大AP
|
||||||
/// 海拔图数据
|
public void ComputeMaxAP(double power,int ticks)
|
||||||
/// </summary>
|
|
||||||
public float[] GetRealTimeLineChartData(int index)
|
|
||||||
{
|
{
|
||||||
List<float> dist = new List<float>();
|
//计算当前最大AP
|
||||||
var list = mapData.List.Select(c => (float) c.Elevation ).ToArray();
|
if (power > CurrentMaxAp)
|
||||||
var count = list.Count();
|
|
||||||
for (int i = 0; i < count; i++)
|
|
||||||
{
|
{
|
||||||
if (i > index)
|
CurrentMaxAp = power;
|
||||||
{
|
}
|
||||||
dist.Add(list[i]);
|
//分段记录MaxAp
|
||||||
}
|
switch (ticks)
|
||||||
|
{
|
||||||
|
case 5: recorderData.FiveSecondsMaxAP = CurrentMaxAp; break;
|
||||||
|
case 10: recorderData.TenSecondsMaxAP = CurrentMaxAp; break;
|
||||||
|
case 60: recorderData.OneMinuteMaxAP = CurrentMaxAp; break;
|
||||||
|
case 300: recorderData.FiveMinutesMaxAp = CurrentMaxAp; break;
|
||||||
|
case 1200: recorderData.TwentyMinutesMaxAP = CurrentMaxAp; break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return dist.ToArray();
|
|
||||||
}
|
|
||||||
|
|
||||||
public float[] GetLineChartData()
|
|
||||||
{
|
|
||||||
var list = mapData.List.Select(c => (float)c.Elevation).ToArray();
|
|
||||||
return list;
|
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
|||||||
32
Assets/Scripts/Scenes/Ride/Scripts/FpsController.cs
Normal file
32
Assets/Scripts/Scenes/Ride/Scripts/FpsController.cs
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
namespace Assets.Scenes.Ride.Scripts
|
||||||
|
{
|
||||||
|
public class FpsController : MonoBehaviour
|
||||||
|
{
|
||||||
|
public float showTime = 1f;
|
||||||
|
public Text tvFpsInfo;
|
||||||
|
private int count = 0;
|
||||||
|
private float deltaTime = 0f;
|
||||||
|
// Update is called once per frame
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
tvFpsInfo = GetComponent<Text>();
|
||||||
|
}
|
||||||
|
private void Update()
|
||||||
|
{
|
||||||
|
count++;
|
||||||
|
deltaTime += Time.deltaTime;
|
||||||
|
if (deltaTime >= showTime)
|
||||||
|
{
|
||||||
|
float fps = count / deltaTime;
|
||||||
|
//float milliSecond = deltaTime * 1000 / count;
|
||||||
|
string strFpsInfo = string.Format("{0:0.}FPS", fps);
|
||||||
|
tvFpsInfo.text = strFpsInfo;
|
||||||
|
count = 0;
|
||||||
|
deltaTime = 0f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Assets/Scripts/Scenes/Ride/Scripts/FpsController.cs.meta
Normal file
11
Assets/Scripts/Scenes/Ride/Scripts/FpsController.cs.meta
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1991677607237434c8b4a5acebccc6bf
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -111,6 +111,12 @@ namespace Assets.Scenes.Ride.Scripts.Model
|
|||||||
|
|
||||||
public int GlobalCyclingId { get; set; }
|
public int GlobalCyclingId { get; set; }
|
||||||
|
|
||||||
|
public double? TwentyMinutesMaxAP { get; set; }
|
||||||
|
public double? FiveSecondsMaxAP { get; set; }
|
||||||
|
public double? TenSecondsMaxAP { get; set; }
|
||||||
|
public double? OneMinuteMaxAP { get; set; }
|
||||||
|
public double? FiveMinutesMaxAp { get; set; }
|
||||||
|
|
||||||
public void SaveWithLocalRecordAysnc(CyclingModel cyclingModel, RouteResultParam selectParam, string imageName,string recordId,string path)
|
public void SaveWithLocalRecordAysnc(CyclingModel cyclingModel, RouteResultParam selectParam, string imageName,string recordId,string path)
|
||||||
{
|
{
|
||||||
Dictionary<MapInterruptRecord, List<string>> recordData = new Dictionary<MapInterruptRecord, List<string>>();
|
Dictionary<MapInterruptRecord, List<string>> recordData = new Dictionary<MapInterruptRecord, List<string>>();
|
||||||
|
|||||||
@ -38,18 +38,6 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
}
|
}
|
||||||
private void Create(NearRiderModel item)
|
private void Create(NearRiderModel item)
|
||||||
{
|
{
|
||||||
////创建
|
|
||||||
//GameObject prefabItem = item.IsSelf ? nearByMajorItem : nearByItem;
|
|
||||||
//GameObject newObj = (GameObject)Instantiate(prefabItem, parent);
|
|
||||||
//var nearByItemscript = newObj.GetComponent<NearByItemScript>();
|
|
||||||
//nearByItemscript.setUserId(item.Id);
|
|
||||||
//nearByItemscript.setName(item.Name);
|
|
||||||
//nearByItemscript.setRatio(item.KGWeight+"W/KG");
|
|
||||||
//nearByItemscript.setSpeed(item.Speed.ToString() + "KM/H");
|
|
||||||
//nearByItemscript.setHead(item.Headimage);
|
|
||||||
//nearByItemscript.setCountry(cyclingController.GetCountryImageByName(item.Country));
|
|
||||||
//nearByItemscript.setDistance(item.Near.ToString() + "KM");
|
|
||||||
//bufferSize++;
|
|
||||||
var rankingList = FindObjectsOfType<NearByItemScript>();
|
var rankingList = FindObjectsOfType<NearByItemScript>();
|
||||||
var nearByItemscript = rankingList.Where(c => c.UserId == item.Id).FirstOrDefault();
|
var nearByItemscript = rankingList.Where(c => c.UserId == item.Id).FirstOrDefault();
|
||||||
//如果当前有这个用户则更新没有则创建并setslibingindex
|
//如果当前有这个用户则更新没有则创建并setslibingindex
|
||||||
|
|||||||
@ -278,13 +278,15 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
//比赛中的人只能看到当前比赛的人
|
//比赛中的人只能看到当前比赛的人
|
||||||
public static List<OnlineUser> GetCompetitionOnlineUsers(int competitionId)
|
public static List<OnlineUser> GetCompetitionOnlineUsers(int competitionId)
|
||||||
{
|
{
|
||||||
var result = onlineUserHelper.OnlineUsers.Where(u => u.CompetitionId == competitionId && !u.IsWatcher).ToList();
|
//var result = onlineUserHelper.OnlineUsers.Where(u => u.CompetitionId == competitionId && !u.IsWatcher).ToList();
|
||||||
|
var result = onlineUserHelper.OnlineUsers.Where(u =>!u.IsWatcher).ToList();
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
//当前比赛观察者
|
//当前比赛观察者
|
||||||
public static List<OnlineUser> GetCompetitionWatchers(int competitionId,int size = 5)
|
public static List<OnlineUser> GetCompetitionWatchers(int competitionId,int size = 5)
|
||||||
{
|
{
|
||||||
var result = onlineUserHelper.OnlineUsers.Where(u => u.CompetitionId == competitionId && u.IsWatcher).Take(size).ToList();
|
//var result = onlineUserHelper.OnlineUsers.Where(u => u.CompetitionId == competitionId && u.IsWatcher).Take(size).ToList();
|
||||||
|
var result = onlineUserHelper.OnlineUsers.Where(u =>u.IsWatcher).Take(size).ToList();
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -7,6 +7,7 @@ using System;
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using Mapbox.Utils;
|
||||||
|
|
||||||
namespace Assets.Scenes.Ride.Scripts
|
namespace Assets.Scenes.Ride.Scripts
|
||||||
{
|
{
|
||||||
@ -31,6 +32,13 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
if (mainController.cyclingController.Mode == CyclingModel.Competition)
|
if (mainController.cyclingController.Mode == CyclingModel.Competition)
|
||||||
{
|
{
|
||||||
arrowImage = Instantiate(Resources.Load<Image>("UI/Prefab/Match/CompetitionArrow"), uiObject);
|
arrowImage = Instantiate(Resources.Load<Image>("UI/Prefab/Match/CompetitionArrow"), uiObject);
|
||||||
|
//比赛模式
|
||||||
|
if (!string.IsNullOrEmpty(headUrl))
|
||||||
|
{
|
||||||
|
var rawImge = arrowImage.transform.Find("Head").GetComponent<RawImage>();
|
||||||
|
Utils.DisplayImage(rawImge, headUrl, true);
|
||||||
|
rawImge.gameObject.SetActive(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -55,7 +63,7 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
double diff = 0;
|
double diff = 0;
|
||||||
public void SetDataSource(double _totalDistance, double _distance,string Name,double weightKg,int index=0)
|
public void SetDataSource(double _totalDistance, double _distance,string Name,double weightKg,Vector2d point,int index=0)
|
||||||
{
|
{
|
||||||
totalDistance = _totalDistance;
|
totalDistance = _totalDistance;
|
||||||
distance = _distance;
|
distance = _distance;
|
||||||
@ -63,8 +71,12 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
nickName = Name;
|
nickName = Name;
|
||||||
weightKgStr = weightKg.ToString("f2") + "W/KG";
|
weightKgStr = weightKg.ToString("f2") + "W/KG";
|
||||||
CurrentIndex = index;
|
CurrentIndex = index;
|
||||||
|
//Point = point;
|
||||||
|
currentlatlong = point;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Vector2d Point { get; set; }
|
||||||
|
|
||||||
private string headUrl;
|
private string headUrl;
|
||||||
public void SetHead(string url )
|
public void SetHead(string url )
|
||||||
{
|
{
|
||||||
@ -108,6 +120,8 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
infoPanel?.Destroy();
|
infoPanel?.Destroy();
|
||||||
transform.gameObject.Destroy();
|
transform.gameObject.Destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TrailRenderer trailRenderer { get; set; }
|
||||||
|
|
||||||
protected override void AfterExcute()
|
protected override void AfterExcute()
|
||||||
{
|
{
|
||||||
@ -117,9 +131,34 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
{
|
{
|
||||||
playerScreenPos.y += 10f;
|
playerScreenPos.y += 10f;
|
||||||
}
|
}
|
||||||
//如果观察的是当前用户
|
//如果观察的是当前用户 隐藏UI 添加trailrender
|
||||||
var iscurrentUser = mainController.currentPlayer.UserId == UserId;
|
var iscurrentUser = mainController.currentPlayer.UserId == UserId;
|
||||||
arrowImage.gameObject.SetActive(!iscurrentUser);
|
arrowImage.gameObject.SetActive(!iscurrentUser);
|
||||||
|
if (iscurrentUser && trailRenderer == null)
|
||||||
|
{
|
||||||
|
trailRenderer = gameObject.AddComponent<TrailRenderer>();
|
||||||
|
trailRenderer = FindObjectOfType<TrailRenderer>();
|
||||||
|
//var color7 = Resources.Load<Material>("UI/Material/color7");
|
||||||
|
var Graph2 = Resources.Load<Material>("UI/Material/3dGraph2");
|
||||||
|
trailRenderer.materials = new Material[] { Graph2 };
|
||||||
|
trailRenderer.time = 30;
|
||||||
|
trailRenderer.startWidth = 1f;
|
||||||
|
trailRenderer.endWidth = 1f;
|
||||||
|
trailRenderer.startColor = new Color(0.9764706f, 0.1882353f, 0.5254902f, 1f);
|
||||||
|
trailRenderer.endColor = new Color(0.9764706f, 0.1882353f, 0.5254902f, 1f);
|
||||||
|
trailRenderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
|
||||||
|
trailRenderer.allowOcclusionWhenDynamic = false;
|
||||||
|
trailRenderer.textureMode = LineTextureMode.Tile;
|
||||||
|
trailRenderer.motionVectorGenerationMode = MotionVectorGenerationMode.ForceNoMotion;
|
||||||
|
trailRenderer.receiveShadows = false;
|
||||||
|
trailRenderer.rayTracingMode = UnityEngine.Experimental.Rendering.RayTracingMode.Off;
|
||||||
|
}
|
||||||
|
//如果不是当前用户则销毁轨迹效果
|
||||||
|
if (!iscurrentUser)
|
||||||
|
{
|
||||||
|
trailRenderer?.Destroy();
|
||||||
|
}
|
||||||
|
|
||||||
((RectTransform)arrowImage.transform).position = playerScreenPos;
|
((RectTransform)arrowImage.transform).position = playerScreenPos;
|
||||||
|
|
||||||
if (IsShowInfo)
|
if (IsShowInfo)
|
||||||
@ -197,10 +236,31 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
headPanel.transform.position = new Vector3(itemPosition.x, itemPosition.y, 0);
|
if (UserId != mainController.currentPlayer.UserId)
|
||||||
|
{
|
||||||
|
headPanel.transform.position = new Vector3(itemPosition.x, itemPosition.y, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int nextIndex = CurrentIndex;
|
||||||
|
var viewIndex = chartDataSourceScript.GetViewIndex(nextIndex);
|
||||||
|
//人物移动 停止条件 到中间且线未加载完
|
||||||
|
if (GetStart() && chartDataSourceScript.ReachMid(viewIndex) && !chartDataSourceScript.ReachEnd())
|
||||||
|
{
|
||||||
|
var currentDistance = CurrentDistance;
|
||||||
|
var distance = Distance;
|
||||||
|
var offset = currentDistance > 0 ? distance * 1000 / currentDistance : 1;
|
||||||
|
graph.HorizontalScrolling += offset;
|
||||||
|
headPanel.transform.position = new Vector3(headPanel.transform.position.x, itemPosition.y, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
headPanel.transform.position = new Vector3(itemPosition.x, itemPosition.y, 0);
|
||||||
|
//headPanel.transform.DOMove(new Vector3(nextPosition.x, nextPosition.y, 0), 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
//headPanel.transform.DOMove(new Vector3(itemPosition.x, itemPosition.y, 0), 1);
|
//headPanel.transform.DOMove(new Vector3(itemPosition.x, itemPosition.y, 0), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (head == null)
|
if (head == null)
|
||||||
{
|
{
|
||||||
head = headPanel.GetComponentInChildren<RawImage>();
|
head = headPanel.GetComponentInChildren<RawImage>();
|
||||||
@ -219,13 +279,21 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
{
|
{
|
||||||
MoveHead();
|
MoveHead();
|
||||||
var rect = ((RectTransform)(headPanel.transform));
|
var rect = ((RectTransform)(headPanel.transform));
|
||||||
//如果切换到当前用户,当前用户头像变大
|
//如果切换到当前用户,当前用户头像变大,并且只显示当前用户
|
||||||
if (mainController.currentPlayer.UserId == UserId)
|
if (mainController.currentPlayer.UserId == UserId)
|
||||||
{
|
{
|
||||||
|
headPanel.SetActive(true);
|
||||||
rect.DOScale(new Vector3(1.5f, 1.5f, 1.5f), 0.5f);
|
rect.DOScale(new Vector3(1.5f, 1.5f, 1.5f), 0.5f);
|
||||||
|
//移动海拔图
|
||||||
|
var currentDistance = CurrentDistance;
|
||||||
|
var distance = Distance;
|
||||||
|
var offset = currentDistance > 0 ? distance * 1000 / currentDistance : 1;
|
||||||
|
graph.HorizontalScrolling += offset;
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
headPanel.SetActive(false);
|
||||||
rect.DOScale(new Vector3(1f, 1f, 1f), 0.5f);
|
rect.DOScale(new Vector3(1f, 1f, 1f), 0.5f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -116,6 +116,8 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
recorderData.PreDistance = Math.Round(preDistance,6,MidpointRounding.AwayFromZero);
|
recorderData.PreDistance = Math.Round(preDistance,6,MidpointRounding.AwayFromZero);
|
||||||
recorderData.EndDistance = Math.Round(targetData._Distance,6,MidpointRounding.AwayFromZero);
|
recorderData.EndDistance = Math.Round(targetData._Distance,6,MidpointRounding.AwayFromZero);
|
||||||
recorderData.RiderDatas.Add(targetData);
|
recorderData.RiderDatas.Add(targetData);
|
||||||
|
//实时计算MaxAp
|
||||||
|
mainController.ComputeMaxAP(Power, ticks);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -158,7 +160,10 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
var currentDistance = CurrentDistance;
|
var currentDistance = CurrentDistance;
|
||||||
var distance = Distance;
|
var distance = Distance;
|
||||||
var offset = currentDistance > 0 ? distance * 1000 / currentDistance : 1;
|
var offset = currentDistance > 0 ? distance * 1000 / currentDistance : 1;
|
||||||
graph.HorizontalScrolling += offset;
|
if (UserId == mainController.currentPlayer.UserId)
|
||||||
|
{
|
||||||
|
graph.HorizontalScrolling += offset;
|
||||||
|
}
|
||||||
headPanel.transform.DOMove(new Vector3(oldPos.x, nextPosition.y, 0), 1);
|
headPanel.transform.DOMove(new Vector3(oldPos.x, nextPosition.y, 0), 1);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@ -47,8 +47,8 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
}
|
}
|
||||||
private void Update()
|
private void Update()
|
||||||
{
|
{
|
||||||
if(!vector3s.Contains(playerController.currentPos))
|
if(!vector3s.Contains(cyclingCotroller.currentPlayer.currentPos))
|
||||||
vector3s.Add(playerController.currentPos);
|
vector3s.Add(cyclingCotroller.currentPlayer.currentPos);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void _map_OnUpdated()
|
private void _map_OnUpdated()
|
||||||
@ -106,7 +106,7 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
var path = new List<Vector3>();
|
var path = new List<Vector3>();
|
||||||
|
|
||||||
var mapData = cyclingCotroller.GetMapData();
|
var mapData = cyclingCotroller.GetMapData();
|
||||||
if (mapData != null && playerController != null)
|
if (mapData != null && cyclingCotroller.currentPlayer != null)
|
||||||
{
|
{
|
||||||
//foreach (var mapDataItem in mapData.List)
|
//foreach (var mapDataItem in mapData.List)
|
||||||
for (int i = 0; i < mapData.List.Count; i++)
|
for (int i = 0; i < mapData.List.Count; i++)
|
||||||
@ -123,7 +123,7 @@ namespace Assets.Scenes.Ride.Scripts
|
|||||||
// dat.Add(item);
|
// dat.Add(item);
|
||||||
//}
|
//}
|
||||||
//前后取50个点
|
//前后取50个点
|
||||||
decimal diff = i - playerController.CurrentIndex;
|
decimal diff = i - cyclingCotroller.currentPlayer.CurrentIndex;
|
||||||
decimal diffAbs = Math.Abs(diff);
|
decimal diffAbs = Math.Abs(diff);
|
||||||
if (diffAbs <= 200)
|
if (diffAbs <= 200)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -106,7 +106,7 @@ public class HomeController : PFUIPanel
|
|||||||
|
|
||||||
#region 测试比赛
|
#region 测试比赛
|
||||||
App.CompetionId = 1048;
|
App.CompetionId = 1048;
|
||||||
App.RouteIdParam = 3386;
|
App.RouteIdParam = 5054;
|
||||||
SceneManager.LoadScene("Ride");
|
SceneManager.LoadScene("Ride");
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user