AR骑行loading页面&附近的人距离延迟问题
This commit is contained in:
parent
8150b99411
commit
3532978762
@ -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
|
||||||
|
|||||||
@ -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
@ -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)
|
||||||
|
|||||||
@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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,15 +38,15 @@ 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;
|
||||||
|
//transform.DOMove(new Vector3(x, transform.position.y, (float)z), 1); // ((float)z, 1f);
|
||||||
|
//人物转向
|
||||||
|
//transform.Rotate(new Vector3(0,1,0), bearing);
|
||||||
//z轴位移
|
//z轴位移
|
||||||
|
|
||||||
//人物转向
|
|
||||||
|
|
||||||
|
|
||||||
//try
|
//try
|
||||||
//{
|
//{
|
||||||
// var offsetX = 1f;
|
// var offsetX = 1f;
|
||||||
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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,14 +165,16 @@ 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>();
|
||||||
//移除
|
//移除
|
||||||
foreach (var item in players)
|
foreach (var item in players)
|
||||||
@ -196,18 +198,21 @@ 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 obj = Instantiate(OnlinePlayer, transform);
|
var diff = item.EndDistance % mapData.TotalDistance - currentPlayerInfo.EndDistance % mapData.TotalDistance;
|
||||||
var online = obj.GetComponent<OnlineVideoPlayer>();
|
if (Math.Abs(diff * 1000) <= 50)
|
||||||
online.SetPlayer(onlineRider.NickName, onlineRider.EndDistance - onlineRider.PreDistance, onlineRider.EndDistance, item.Cadence, item.HeartRate, onlineRider.WeightKg, item.UserId, onlineRider.Power);
|
{
|
||||||
obj.transform.DOMoveX(slots[currentOnlineCount], 1);
|
var obj = Instantiate(OnlinePlayer, transform);
|
||||||
currentOnlineCount++;
|
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, currentPlayerInfo.EndDistance);
|
||||||
|
obj.transform.DOMoveX(slots[currentOnlineCount], 1);
|
||||||
|
currentOnlineCount++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -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);
|
||||||
|
|||||||
@ -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)
|
||||||
@ -202,31 +199,91 @@ namespace Assets.Scripts.Scenes.VideoRide
|
|||||||
CreateRankingList(list.data.list);
|
CreateRankingList(list.data.list);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
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 Cancel(BaseEventData baseEvent)
|
|
||||||
|
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)
|
||||||
{
|
{
|
||||||
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);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user