AR骑行loading页面&附近的人距离延迟问题

This commit is contained in:
lishuo 2022-04-19 18:47:26 +08:00
parent 8150b99411
commit 3532978762
8 changed files with 3072 additions and 3348 deletions

View File

@ -18226,7 +18226,7 @@ GameObject:
- component: {fileID: 4544646319704206804} - component: {fileID: 4544646319704206804}
- component: {fileID: -6554056549816092667} - component: {fileID: -6554056549816092667}
m_Layer: 0 m_Layer: 0
m_Name: OnlineVideoPlayer1 m_Name: OnlineVideoPlayer
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
@ -18240,7 +18240,7 @@ Transform:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7920966205500188480} m_GameObject: {fileID: 7920966205500188480}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: -1, z: 3} m_LocalPosition: {x: 0, y: -1, z: 0}
m_LocalScale: {x: 0.75, y: 0.75, z: 0.75} m_LocalScale: {x: 0.75, y: 0.75, z: 0.75}
m_Children: m_Children:
- {fileID: 3808671237483285868} - {fileID: 3808671237483285868}
@ -18596,6 +18596,8 @@ MonoBehaviour:
distance: 0 distance: 0
totalClimb: 0 totalClimb: 0
currentIndex: 0 currentIndex: 0
bearing: 0
target: {fileID: 0}
diff: 0 diff: 0
frames: 0 frames: 0
--- !u!1 &7930809532632780446 --- !u!1 &7930809532632780446

View File

@ -7,24 +7,26 @@
2800~2942:3 2800~2942:3
3058~3171:-3 3058~3171:-3
3300~3390:35 3300~3390:35
6000~6150:10 6000~6150:5
7708~7793:2 7708~7793:3
7793~7911:-3 7793~7911:-3
8610~8707:3 8610~8707:3
8842~8920:2 8842~8920:3
8920~9165:-2 8920~9165:-3
9272~9461:3 9272~9461:3
9494~9641:-3 9494~9641:-3
9295~9460:2 9295~9460:3
9510~9600:-2 9510~9600:-3
11822~12064:-2 11400~11600:3
12200~12514:2 11822~12064:-3
12514~12644:-2 12200~12514:3
13072~13388:2 12514~12644:-3
13400~13600:8 13072~13388:3
14000~14090:8 13400~13600:5
14524~14660:8 14000~14100:5
14839~14920:8 14524~14660:5
16350~16440:-8 14839~14920:5
16563~16700:-8 15600~15650:-3
18250~18310:2 16350~16440:-5
16563~16700:-5
18250~18310:3

File diff suppressed because it is too large Load Diff

View File

@ -81,7 +81,6 @@ namespace Assets.Scripts.Scenes.VideoRide
{ {
try try
{ {
ComputeAnimator();//控制动画
ComputeNextSlope();//计算下一个坡度 ComputeNextSlope();//计算下一个坡度
ComputePlayer();//计算人物属性 ComputePlayer();//计算人物属性
if (GetStart()) if (GetStart())
@ -93,7 +92,7 @@ namespace Assets.Scripts.Scenes.VideoRide
RayCastHit(); RayCastHit();
Turn(); Turn();
} }
ComputeAnimator();//控制动画
timer += 1f; timer += 1f;
} }
catch (Exception e) catch (Exception e)

View File

@ -72,6 +72,7 @@ namespace Assets.Scripts.Scenes.VideoRide
//var currenList = FindObjectsOfType<ListItem>();//当前列表 //var currenList = FindObjectsOfType<ListItem>();//当前列表
var currenList = GetComponentsInChildren<ListItem>(true); var currenList = GetComponentsInChildren<ListItem>(true);
var list = MapUDPService.GetOnlineUsers(App.RouteIdParam);//最新列表 var list = MapUDPService.GetOnlineUsers(App.RouteIdParam);//最新列表
var currentPlayerInfo = list.Where(c => c.Id.ToString() == manager.CurrentPlayer.UserId.ToString()).FirstOrDefault();
list = list.Where(c => c.Id != App.CurrentUser.Id).ToList(); list = list.Where(c => c.Id != App.CurrentUser.Id).ToList();
if (currenList.Count() == 0 && list.Count() > 0) if (currenList.Count() == 0 && list.Count() > 0)
{ {
@ -91,9 +92,9 @@ namespace Assets.Scripts.Scenes.VideoRide
if (currentPlayer.UserId.ToString() == o.Id) if (currentPlayer.UserId.ToString() == o.Id)
continue; continue;
var needUpdate = list.Where(c => c.Id.ToString() == o.Id).FirstOrDefault(); var needUpdate = list.Where(c => c.Id.ToString() == o.Id).FirstOrDefault();
if (needUpdate != null) if (needUpdate != null && currentPlayerInfo != null)
{ {
var left = Math.Round((needUpdate.EndDistance - manager.CurrentPlayer.totalDistance) * 1000); var left = Math.Round((needUpdate.EndDistance - currentPlayerInfo.EndDistance) * 1000);
o.UpdateItem(needUpdate.Name, left.ToString() + "M", needUpdate.Id.ToString()); o.UpdateItem(needUpdate.Name, left.ToString() + "M", needUpdate.Id.ToString());
o.gameObject.SetActive(true); o.gameObject.SetActive(true);
} }

View File

@ -10,6 +10,7 @@ namespace Assets.Scripts.Scenes.VideoRide
{ {
public class OnlineVideoPlayer : AbstractVideoPlayer public class OnlineVideoPlayer : AbstractVideoPlayer
{ {
public Transform target;
public double diff; public double diff;
public int frames; public int frames;
protected override void Update() protected override void Update()
@ -37,14 +38,14 @@ namespace Assets.Scripts.Scenes.VideoRide
{ {
base.Turn(); base.Turn();
var current = manager.CurrentPlayer; var current = manager.CurrentPlayer;
var z = current.transform.position.z + diff * 0.5f; var z = current.transform.position.z + diff*1000 * 0.5f;
transform.DOMoveZ((float)z, 1f); transform.DOMoveZ((float)z, 1f);
//x轴位移 //x轴位移
//var x = bearing + current.bearing;
//z轴位移 //transform.DOMove(new Vector3(x, transform.position.y, (float)z), 1); // ((float)z, 1f);
//人物转向 //人物转向
//transform.Rotate(new Vector3(0,1,0), bearing);
//z轴位移
//try //try
//{ //{
@ -108,7 +109,7 @@ namespace Assets.Scripts.Scenes.VideoRide
} }
//设置当前玩家属性 //设置当前玩家属性
public void SetPlayer(string name, double distance, double totalDistance, double cadance,double heartRate, double wkg, int userId,double power) public void SetPlayer(string name, double distance, double totalDistance, double cadance,double heartRate, double wkg, int userId,double power,double currentPlayerDistance)
{ {
this.wkg = wkg; this.wkg = wkg;
this.UserName = name; this.UserName = name;
@ -118,6 +119,7 @@ namespace Assets.Scripts.Scenes.VideoRide
this.UserId = userId; this.UserId = userId;
this.power = power; this.power = power;
this.speed = distance * 3600; this.speed = distance * 3600;
this.diff = currentPlayerDistance - totalDistance;
} }
} }
} }

View File

@ -121,7 +121,7 @@ namespace Assets.Scripts.Scenes.VideoRide
} }
VideoLoading videoLoading { get; set; } VideoLoading videoLoading { get; set; }
// Update is called once per frame // Update is called once per frame
float timer = 1f; float timer = 0.5f;
void Update() void Update()
{ {
timer -= Time.deltaTime; timer -= Time.deltaTime;
@ -137,7 +137,7 @@ namespace Assets.Scripts.Scenes.VideoRide
{ {
Debug.Log(e.Message); Debug.Log(e.Message);
} }
timer += 1f; timer += 0.5f;
} }
} }
MapRouteRankingList rankingList; MapRouteRankingList rankingList;
@ -165,13 +165,15 @@ namespace Assets.Scripts.Scenes.VideoRide
var onlineRider = currentPlayer as OnlineRiderModel; var onlineRider = currentPlayer as OnlineRiderModel;
var obj = Instantiate(OnlinePlayer, transform); var obj = Instantiate(OnlinePlayer, transform);
var online = obj.GetComponent<OnlineVideoPlayer>(); var online = obj.GetComponent<OnlineVideoPlayer>();
online.SetPlayer(onlineRider.NickName, onlineRider.EndDistance-onlineRider.PreDistance, onlineRider.EndDistance, onlineRider.Cadence, onlineRider.HeartRate, onlineRider.TotalTicks, onlineRider.UserId, onlineRider.Power); online.SetPlayer(onlineRider.NickName, onlineRider.EndDistance-onlineRider.PreDistance, onlineRider.EndDistance, onlineRider.Cadence, onlineRider.HeartRate, onlineRider.TotalTicks, onlineRider.UserId, onlineRider.Power, onlineRider.EndDistance);
obj.transform.DOMoveX(0, 1); obj.transform.DOMoveX(0, 1);
ChangePlayer(currentPlayer.UserId); ChangePlayer(currentPlayer.UserId);
CurrentPlayer = online; CurrentPlayer = online;
} }
} }
//list = list.Where(c => c.UserId != CurrentPlayer?.UserId).ToList(); //list = list.Where(c => c.UserId != CurrentPlayer?.UserId).ToList();
var onlinelist = MapUDPService.GetOnlineUsers(App.RouteIdParam);//最新列表
var currentPlayerInfo = onlinelist.Where(c => c.Id == CurrentPlayer.UserId).FirstOrDefault();
var players = FindObjectsOfType<OnlineVideoPlayer>(); var players = FindObjectsOfType<OnlineVideoPlayer>();
//移除 //移除
@ -196,22 +198,25 @@ namespace Assets.Scripts.Scenes.VideoRide
{ {
var online = exsit.GetComponent<OnlineVideoPlayer>(); var online = exsit.GetComponent<OnlineVideoPlayer>();
online.SetPlayer(onlineRider.NickName, onlineRider.EndDistance - onlineRider.PreDistance, onlineRider.EndDistance, item.Cadence, item.HeartRate, onlineRider.WeightKg, item.UserId, onlineRider.Power); online.SetPlayer(onlineRider.NickName, onlineRider.EndDistance - onlineRider.PreDistance, onlineRider.EndDistance, item.Cadence, item.HeartRate, onlineRider.WeightKg, item.UserId, onlineRider.Power, currentPlayerInfo.EndDistance);
} }
else else
{ {
var diff = item.EndDistance % mapData.TotalDistance - CurrentPlayer.totalDistance % mapData.TotalDistance; if (currentPlayerInfo != null)
if (Math.Abs(diff*1000) <= 50) {
var diff = item.EndDistance % mapData.TotalDistance - currentPlayerInfo.EndDistance % mapData.TotalDistance;
if (Math.Abs(diff * 1000) <= 50)
{ {
var obj = Instantiate(OnlinePlayer, transform); var obj = Instantiate(OnlinePlayer, transform);
var online = obj.GetComponent<OnlineVideoPlayer>(); var online = obj.GetComponent<OnlineVideoPlayer>();
online.SetPlayer(onlineRider.NickName, onlineRider.EndDistance - onlineRider.PreDistance, onlineRider.EndDistance, item.Cadence, item.HeartRate, onlineRider.WeightKg, item.UserId, onlineRider.Power); online.SetPlayer(onlineRider.NickName, onlineRider.EndDistance - onlineRider.PreDistance, onlineRider.EndDistance, item.Cadence, item.HeartRate, onlineRider.WeightKg, item.UserId, onlineRider.Power, currentPlayerInfo.EndDistance);
obj.transform.DOMoveX(slots[currentOnlineCount], 1); obj.transform.DOMoveX(slots[currentOnlineCount], 1);
currentOnlineCount++; currentOnlineCount++;
} }
} }
} }
} }
}
//设置当前是骑行模式还是观察模式 //设置当前是骑行模式还是观察模式
public void SetCurrentMode(ARMode aRMode) public void SetCurrentMode(ARMode aRMode)
{ {
@ -255,7 +260,7 @@ namespace Assets.Scripts.Scenes.VideoRide
var onlineRider = currentPlayer as OnlineRiderModel; var onlineRider = currentPlayer as OnlineRiderModel;
var obj = Instantiate(OnlinePlayer, transform); var obj = Instantiate(OnlinePlayer, transform);
var online = obj.GetComponent<OnlineVideoPlayer>(); var online = obj.GetComponent<OnlineVideoPlayer>();
online.SetPlayer(onlineRider.NickName, onlineRider.EndDistance-onlineRider.PreDistance, onlineRider.EndDistance, onlineRider.Cadence, onlineRider.HeartRate, 0, onlineRider.UserId, onlineRider.Power); online.SetPlayer(onlineRider.NickName, onlineRider.EndDistance-onlineRider.PreDistance, onlineRider.EndDistance, onlineRider.Cadence, onlineRider.HeartRate, 0, onlineRider.UserId, onlineRider.Power, onlineRider.EndDistance);
obj.transform.position = origin; obj.transform.position = origin;
CurrentPlayer = online; CurrentPlayer = online;
var currentFrames = DistanceToFrames(CurrentPlayer.totalDistance); var currentFrames = DistanceToFrames(CurrentPlayer.totalDistance);

View File

@ -16,10 +16,8 @@ namespace Assets.Scripts.Scenes.VideoRide
{ {
public class VideoLoading : MonoBehaviour public class VideoLoading : MonoBehaviour
{ {
Button download { get; set; }
UnityWebRequest request { get; set; } UnityWebRequest request { get; set; }
VideoGameManager manager { get; set; } VideoGameManager manager { get; set; }
// Start is called before the first frame update
protected Text mapName; protected Text mapName;
protected RawImage mapRouteImage; protected RawImage mapRouteImage;
@ -34,6 +32,8 @@ namespace Assets.Scripts.Scenes.VideoRide
protected Text elevaction; protected Text elevaction;
protected Text slope; protected Text slope;
protected GameObject panel; protected GameObject panel;
protected GameObject download;
protected GameObject watch;
protected GameObject loadingPanel { get; set; } protected GameObject loadingPanel { get; set; }
@ -50,7 +50,10 @@ namespace Assets.Scripts.Scenes.VideoRide
protected float process = 0;//0-100 % protected float process = 0;//0-100 %
public float targetAlpha = 0f; public float targetAlpha = 0f;
public float alphaSpeed = 2.0f; public float alphaSpeed = 2.0f;
private bool depressFlag = false;
protected Transform ui;
protected MapRoute route;
private void Awake() private void Awake()
{ {
@ -59,62 +62,8 @@ namespace Assets.Scripts.Scenes.VideoRide
void Start() void Start()
{ {
manager = FindObjectOfType<VideoGameManager>(); manager = FindObjectOfType<VideoGameManager>();
ui = manager.GetCanvasTransform();
var button = transform.Find("Panel/Button").GetComponent<Button>(); route = manager.GetMapRoute();
var Start = transform.Find("Panel/Start").GetComponent<Button>();
var Back = transform.Find("Panel/Back").GetComponent<Button>();
var Inspect = transform.Find("Panel/Inspect").gameObject;
UIManager.AddEvent(Inspect, UnityEngine.EventSystems.EventTriggerType.PointerClick, InspectHandler);
var canvasGroup = transform.GetComponent<CanvasGroup>();
var ui = manager.GetCanvasTransform();
var route = manager.GetMapRoute();
var text = transform.GetComponentInChildren<Text>();
var fileName = route.FileName;// "12067924_720p.mp4";
var url = route.Url; //@"http://192.168.0.97:6031/12067924_720p.mp4";
var currentPath = "";
var path = PFConstants.VideoFolder;
var filepath = path + "/" + fileName;
if (File.Exists(filepath))
{
button.gameObject.SetActive(false);
Start.gameObject.SetActive(true);
manager.SetMedia(filepath);
}
else
{
//检查本地文件是否存在 如果存在直接设置mediaPlayer 否则显示下载按钮
button.onClick.AddListener(() =>
{
StartCoroutine(Utils.DownloadVideo(fileName, url
, (p, req) =>
{
text.text = Math.Round(p * 100, 2).ToString() + "%";
request = req;
}
, (p) =>
{
text.text = "100%";
currentPath = p;
Start.gameObject.SetActive(true);
manager.SetMedia(p);
}
));
});
}
var g = gameObject;
Start.onClick.AddListener(() =>
{
canvasGroup.DOFade(0, 1).onComplete+=()=> {
g.SetActive(false);
manager.SetCurrentMode(VideoGameManager.ARMode.RIDE);
ui.Find("Panel").gameObject.SetActive(true);
};
});
Back.onClick.AddListener(() =>
{
SceneManager.LoadScene("MainScene");
});
} }
public void Init() public void Init()
@ -122,17 +71,6 @@ namespace Assets.Scripts.Scenes.VideoRide
InitGameObject(); InitGameObject();
InitGameObjectData(); InitGameObjectData();
} }
//进入观察模式
private void InspectHandler(BaseEventData data)
{
manager.SetCurrentMode(VideoGameManager.ARMode.INSPECT);
var canvasGroup = transform.GetComponent<CanvasGroup>();
var ui = manager.GetCanvasTransform();
canvasGroup.DOFade(0, 1).onComplete += () => {
gameObject.SetActive(false);
ui.Find("Panel").gameObject.SetActive(true);
};
}
private void InitGameObject() private void InitGameObject()
{ {
@ -143,7 +81,7 @@ namespace Assets.Scripts.Scenes.VideoRide
slope = panel.transform.Find("Slope").GetComponent<Text>(); slope = panel.transform.Find("Slope").GetComponent<Text>();
mapRouteImage = panel.transform.Find("MapRouteImage").GetComponent<RawImage>(); mapRouteImage = panel.transform.Find("MapRouteImage").GetComponent<RawImage>();
slider = panel.transform.Find("Process").GetComponent<Slider>(); slider = panel.transform.Find("Process").GetComponent<Slider>();
slider.gameObject.SetActive(false); slider.gameObject.SetActive(true);
processText = panel.transform.Find("ProcessText").GetComponent<Text>(); processText = panel.transform.Find("ProcessText").GetComponent<Text>();
processText.gameObject.SetActive(false); processText.gameObject.SetActive(false);
mapDescText = panel.transform.Find("MapDesc").GetComponent<Text>(); mapDescText = panel.transform.Find("MapDesc").GetComponent<Text>();
@ -157,6 +95,30 @@ namespace Assets.Scripts.Scenes.VideoRide
processText.text = $"{(f).ToString("#0")}%"; processText.text = $"{(f).ToString("#0")}%";
}); });
download = transform.Find("Panel/Download").gameObject;
watch = transform.Find("Panel/Watch").gameObject;
UIManager.AddEvent(watch, UnityEngine.EventSystems.EventTriggerType.PointerClick, WatchHandler);
canvasGroup = transform.GetComponent<CanvasGroup>();
var fileName = route.FileName;// "12067924_720p.mp4";
var url = route.Url; //@"http://192.168.0.97:6031/12067924_720p.mp4";
var path = PFConstants.VideoFolder;
var filepath = path + "/" + fileName;
if (File.Exists(filepath))
{
slider.value = 100;
download.gameObject.SetActive(false);
manager.SetMedia(filepath);
}
else
{
//检查本地文件是否存在 如果存在直接设置mediaPlayer 否则显示下载按钮
UIManager.AddEvent(download.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, Download);
}
#region
level = panel.transform.Find("level/Text").GetComponent<Text>(); level = panel.transform.Find("level/Text").GetComponent<Text>();
rideNum = panel.transform.Find("RideNum").GetComponent<Text>(); rideNum = panel.transform.Find("RideNum").GetComponent<Text>();
uploadByUserName = panel.transform.Find("UploadByUserName").GetComponent<Text>(); uploadByUserName = panel.transform.Find("UploadByUserName").GetComponent<Text>();
@ -166,16 +128,50 @@ namespace Assets.Scripts.Scenes.VideoRide
altitudeGraph = panel.transform.Find("AltitudeGraph").GetComponent<RawImage>(); altitudeGraph = panel.transform.Find("AltitudeGraph").GetComponent<RawImage>();
mapRanking = panel.transform.Find("MapRanking"); mapRanking = panel.transform.Find("MapRanking");
mapId = panel.transform.Find("MapId").GetComponent<Text>(); mapId = panel.transform.Find("MapId").GetComponent<Text>();
UIManager.RemoveEvent(distance.gameObject);
UIManager.RemoveEvent(slope.gameObject);
UIManager.RemoveEvent(elevaction.gameObject);
UIManager.RemoveEvent(rideNum.gameObject);
UIManager.AddEvent(distance.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerEnter, b =>
{
panel.transform.Find("DistanceTip").GetComponent<CanvasGroup>().DOFade(1, 0.5f);
});
UIManager.AddEvent(distance.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerExit, b =>
{
panel.transform.Find("DistanceTip").GetComponent<CanvasGroup>().DOFade(0, 0.5f);
});
UIManager.AddEvent(slope.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerEnter, b =>
{
panel.transform.Find("SlopeTip").GetComponent<CanvasGroup>().DOFade(1, 0.5f);
});
UIManager.AddEvent(slope.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerExit, b =>
{
panel.transform.Find("SlopeTip").GetComponent<CanvasGroup>().DOFade(0, 0.5f);
});
UIManager.AddEvent(elevaction.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerEnter, b =>
{
panel.transform.Find("ElevactionTip").GetComponent<CanvasGroup>().DOFade(1, 0.5f);
});
UIManager.AddEvent(elevaction.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerExit, b =>
{
panel.transform.Find("ElevactionTip").GetComponent<CanvasGroup>().DOFade(0, 0.5f);
});
UIManager.AddEvent(rideNum.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerEnter, b =>
{
panel.transform.Find("RideTip").GetComponent<CanvasGroup>().DOFade(1, 0.5f);
});
UIManager.AddEvent(rideNum.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerExit, b =>
{
panel.transform.Find("RideTip").GetComponent<CanvasGroup>().DOFade(0, 0.5f);
});
#endregion
} }
protected void InitGameObjectData() protected void InitGameObjectData()
{ {
var route = manager.mapRoute; var route = manager.mapRoute;
#region #region
//mapName.text = route.Name;
#if UNITY_IOS || UNITY_ANDROID
enable3D = panel.transform.Find("Enable3D").gameObject;
enable3D.SetActive(route.Enable3D);
#endif
mapName.text = GetMaxString(route.Name, 40); mapName.text = GetMaxString(route.Name, 40);
level.text = route.Hard; level.text = route.Hard;
elevaction.text = Math.Round(route.TotalClimb.GetValueOrDefault(0), 2).ToString() + "M"; elevaction.text = Math.Round(route.TotalClimb.GetValueOrDefault(0), 2).ToString() + "M";
@ -194,7 +190,8 @@ namespace Assets.Scripts.Scenes.VideoRide
mapCountry.texture = manager.GetCountryImageByCode(route.CountryCode);//路书国家 mapCountry.texture = manager.GetCountryImageByCode(route.CountryCode);//路书国家
} }
#endregion #endregion
//显示线路背景图
DrawMapRouteAsync(route.Id);
//查询排行榜 //查询排行榜
var list = ConfigHelper.mapApi.GetRouteRanking(route.Id, "1", 0, 10000, ""); var list = ConfigHelper.mapApi.GetRouteRanking(route.Id, "1", 0, 10000, "");
if (list.result) if (list.result)
@ -204,29 +201,89 @@ namespace Assets.Scripts.Scenes.VideoRide
} }
protected void StartRide(BaseEventData baseEvent) protected void StartRide(BaseEventData baseEvent)
{ {
var ui = manager.GetCanvasTransform();
canvasGroup.DOFade(0, 1).onComplete += () => {
gameObject.SetActive(false);
manager.SetCurrentMode(VideoGameManager.ARMode.RIDE);
ui.Find("Panel").gameObject.SetActive(true);
};
}
protected void Download(BaseEventData baseEvent)
{
StartCoroutine(Utils.DownloadVideo(route.FileName, route.Url
, (p, req) =>
{
slider.value = (float)Math.Round(p * 100, 2);
request = req;
download.SetActive(false);
}
, (p) =>
{
if (!string.IsNullOrEmpty(p)) {
slider.value = 100;
manager.SetMedia(p);
}
else
{
Debug.LogError("");
}
}
));
}
//进入观察模式
private void WatchHandler(BaseEventData data)
{
manager.SetCurrentMode(VideoGameManager.ARMode.INSPECT);
var canvasGroup = transform.GetComponent<CanvasGroup>();
var ui = manager.GetCanvasTransform();
canvasGroup.DOFade(0, 1).onComplete += () => {
gameObject.SetActive(false);
ui.Find("Panel").gameObject.SetActive(true);
};
} }
protected void Cancel(BaseEventData baseEvent) protected void Cancel(BaseEventData baseEvent)
{ {
SceneManager.LoadScene("MainScene"); SceneManager.LoadScene("MainScene");
} }
// Update is called once per frame protected async void DrawMapRouteAsync(int routeId, int type = 0)
void Update()
{ {
var result = await ConfigHelper.mapApi.GetMapLoadingCoverageUrl(routeId, type);
if (!result.result)
return;
var url = result.data;
if (App.TextureCache.ContainsKey(url))
{
mapRouteImage.texture = App.TextureCache[url];
var canvasGroup = mapRouteImage.GetComponent<CanvasGroup>();
canvasGroup.DOFade(1, 1);
} }
else
{
Utils.DisplayImageAysnc(StartCoroutine, mapRouteImage, url, DowloadCallBack);
}
}
protected void DowloadCallBack(string url, RawImage rawImage)
{
if (!App.TextureCache.ContainsKey(url))
{
App.TextureCache.Add(url, rawImage?.texture);
}
else
{
App.TextureCache[url] = rawImage?.texture;
}
var canvasGroup = rawImage.GetComponent<CanvasGroup>();
canvasGroup?.DOFade(1, 1);
}
private int RankingPageSize = 10; private int RankingPageSize = 10;
//创建排行榜 //创建排行榜
public void CreateRankingList(List<MapRouteRanking> list) public void CreateRankingList(List<MapRouteRanking> list)
{ {
#if UNITY_IOS || UNITY_ANDROID
var prefab = Resources.Load<GameObject>("UI/Prefab/Ride/Mobile/RankingItem");
var myprefab = Resources.Load<GameObject>("UI/Prefab/Ride/Mobile/MySelfRankingItem");
var viewAllbtn = Resources.Load<GameObject>("UI/Prefab/Ride/Mobile/ViewAll");
#else
var prefab = Resources.Load<GameObject>("UI/Prefab/Ride/RankingItem"); var prefab = Resources.Load<GameObject>("UI/Prefab/Ride/RankingItem");
var myprefab = Resources.Load<GameObject>("UI/Prefab/Ride/MySelfRankingItem"); var myprefab = Resources.Load<GameObject>("UI/Prefab/Ride/MySelfRankingItem");
var viewAllbtn = Resources.Load<GameObject>("UI/Prefab/Ride/ViewAll"); var viewAllbtn = Resources.Load<GameObject>("UI/Prefab/Ride/ViewAll");
#endif
var parent = panel.transform.Find("MapRanking"); var parent = panel.transform.Find("MapRanking");
var title = panel.transform.Find("RankingTitle").gameObject; var title = panel.transform.Find("RankingTitle").gameObject;
title.SetActive(list.Count != 0); title.SetActive(list.Count != 0);