AR第二个视频发布
This commit is contained in:
parent
573aa2ff4c
commit
431d128ad8
@ -1,4 +1,5 @@
|
|||||||
using UnityEngine;
|
using System;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
namespace Assets.AR
|
namespace Assets.AR
|
||||||
{
|
{
|
||||||
@ -14,7 +15,7 @@ namespace Assets.AR
|
|||||||
|
|
||||||
public float RouteDistance { get; set; }//线路上的距离
|
public float RouteDistance { get; set; }//线路上的距离
|
||||||
|
|
||||||
public float Lane { get; set; }//车道上的位置
|
public float Lane { get; set; } //车道上的位置
|
||||||
|
|
||||||
public float BaseOffset { get; set; }//基准偏移量
|
public float BaseOffset { get; set; }//基准偏移量
|
||||||
|
|
||||||
@ -38,6 +39,8 @@ namespace Assets.AR
|
|||||||
|
|
||||||
public int TestPower { get; set; }
|
public int TestPower { get; set; }
|
||||||
|
|
||||||
|
public float ZOffset { get; set; }
|
||||||
|
|
||||||
//重置碰撞检测参数
|
//重置碰撞检测参数
|
||||||
public void ResetCollisionDetectionParameters()
|
public void ResetCollisionDetectionParameters()
|
||||||
{
|
{
|
||||||
@ -56,13 +59,14 @@ namespace Assets.AR
|
|||||||
{
|
{
|
||||||
PositionOffset = Vector3.up * route.CameraHeight * (-1);
|
PositionOffset = Vector3.up * route.CameraHeight * (-1);
|
||||||
var cameraRotation = this.GetCameraRotation(this.frame - this.FrameIndexDistanceCorrection);
|
var cameraRotation = this.GetCameraRotation(this.frame - this.FrameIndexDistanceCorrection);
|
||||||
|
var normalizeCameraRotation = Quaternion.Euler(new Vector3(cameraRotation.eulerAngles.x, cameraRotation.eulerAngles.y, cameraRotation.eulerAngles.z+ZOffset));
|
||||||
|
|
||||||
var filteredCameraPosition = this.GetFilteredCameraPosition(this.frame - this.FrameIndexDistanceCorrection);
|
var filteredCameraPosition = this.GetFilteredCameraPosition(this.frame - this.FrameIndexDistanceCorrection);
|
||||||
|
|
||||||
var vector3 = Vector3.left * (this.route.LeftHanded ? -1f : 1f) * (this.LaneWidth * (this.Lane + this.LaneCamera) - this.BaseOffset);
|
var vector3 = Vector3.left * (this.route.LeftHanded ? -1f : 1f) * (this.LaneWidth * (this.Lane + this.LaneCamera) - this.BaseOffset);
|
||||||
var targetPos = filteredCameraPosition + cameraRotation * (vector3 + this.PositionOffset);
|
var targetPos = filteredCameraPosition + normalizeCameraRotation * (vector3 + this.PositionOffset);
|
||||||
|
|
||||||
this.transform.position = targetPos;
|
this.transform.position = targetPos;
|
||||||
this.transform.rotation = cameraRotation * Quaternion.Euler(this.RotationOffset) * Quaternion.Euler(this.Lean);
|
this.transform.rotation = normalizeCameraRotation * Quaternion.Euler(this.RotationOffset) * Quaternion.Euler(this.Lean);
|
||||||
this.transform.localScale = this.Scale;
|
this.transform.localScale = this.Scale;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -34,7 +34,7 @@ namespace Assets.AR
|
|||||||
{
|
{
|
||||||
var frame = 100f;
|
var frame = 100f;
|
||||||
this.StartRegionRouteWidth = this.GetRouteLeftOffset(frame) + this.GetRouteRightOffset(frame);
|
this.StartRegionRouteWidth = this.GetRouteLeftOffset(frame) + this.GetRouteRightOffset(frame);
|
||||||
this.RiderCountInStartRow = Mathf.Max(1, Mathf.CeilToInt(this.StartRegionRouteWidth / 0.7f));
|
this.RiderCountInStartRow = Mathf.Max(2, Mathf.CeilToInt(this.StartRegionRouteWidth / 0.7f));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void UpdateGameObjects(
|
protected override void UpdateGameObjects(
|
||||||
@ -233,10 +233,13 @@ namespace Assets.AR
|
|||||||
{
|
{
|
||||||
if (!this.AllowStartOrder || (double)routeDistance >= 200.0)
|
if (!this.AllowStartOrder || (double)routeDistance >= 200.0)
|
||||||
return routeDistance;
|
return routeDistance;
|
||||||
var num = Mathf.Lerp((float)((double)(RiderCountInStartRow == 0 ? 0 :(startPosition - 1) / this.RiderCountInStartRow) * 2.2000000476837158 + 6.0) + this.GetStartOffset(startPosition).y, 0.0f, routeDistance / 200f);
|
var start = (float)((RiderCountInStartRow == 0 ? 0 : (startPosition - 1) / this.RiderCountInStartRow) * 2.2000000476837158 + 6.0) + this.GetStartOffset(startPosition).y;
|
||||||
|
var num = Mathf.Lerp(start , 0.0f, routeDistance / 200f);
|
||||||
return routeDistance + num;
|
return routeDistance + num;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//计算碰撞距离
|
//计算碰撞距离
|
||||||
protected static float GetCollisionParameter(
|
protected static float GetCollisionParameter(
|
||||||
float distSource,
|
float distSource,
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using Newtonsoft.Json;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.Rendering;
|
using UnityEngine.Rendering;
|
||||||
|
|
||||||
@ -58,6 +59,8 @@ namespace Assets.AR
|
|||||||
public int VideoFrameOffset { get; set; }
|
public int VideoFrameOffset { get; set; }
|
||||||
|
|
||||||
public float CameraHeight { get; set; }
|
public float CameraHeight { get; set; }
|
||||||
|
|
||||||
|
public float ZOffset { get; set; }
|
||||||
|
|
||||||
public float RiderScale { get; set; } = 1f;
|
public float RiderScale { get; set; } = 1f;
|
||||||
|
|
||||||
@ -428,9 +431,17 @@ namespace Assets.AR
|
|||||||
|
|
||||||
public void LoadData(ARRouteData data)
|
public void LoadData(ARRouteData data)
|
||||||
{
|
{
|
||||||
|
// //todo:修改rotation z
|
||||||
|
// foreach (var rotation in data.CameraRotations)
|
||||||
|
// {
|
||||||
|
// rotation.z += 4f;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// var str = JsonConvert.SerializeObject(data);
|
||||||
this.Visibility = data.Visibility;
|
this.Visibility = data.Visibility;
|
||||||
this.VideoFrameOffset = data.VideoFrameOffset;
|
this.VideoFrameOffset = data.VideoFrameOffset;
|
||||||
this.LeftHanded = data.LeftHanded;
|
this.LeftHanded = data.LeftHanded;
|
||||||
|
this.ZOffset = data.Zoffset;
|
||||||
this.SlamSegments = data.SlamSegments;
|
this.SlamSegments = data.SlamSegments;
|
||||||
this.CameraHeight = data.CameraHeight;
|
this.CameraHeight = data.CameraHeight;
|
||||||
this.RiderScale = (double)data.RiderScale != 0.0 ? data.RiderScale : 1f;
|
this.RiderScale = (double)data.RiderScale != 0.0 ? data.RiderScale : 1f;
|
||||||
|
|||||||
@ -248,6 +248,7 @@ namespace Assets.AR
|
|||||||
public int VideoFrameOffsetMac = -1;
|
public int VideoFrameOffsetMac = -1;
|
||||||
public float CameraHeight;
|
public float CameraHeight;
|
||||||
public float RiderScale = 1f;
|
public float RiderScale = 1f;
|
||||||
|
public float Zoffset = 0f;
|
||||||
public int[] LeftSideOffsetFrames;
|
public int[] LeftSideOffsetFrames;
|
||||||
public float[] LeftSideOffsets;
|
public float[] LeftSideOffsets;
|
||||||
public int[] RightSideOffsetFrames;
|
public int[] RightSideOffsetFrames;
|
||||||
|
|||||||
@ -101,16 +101,27 @@ namespace Assets.AR
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.PlayFrameDistance();
|
PlayFrameDistance();
|
||||||
VideoPlayerControl.UpdateVideoPlayRate(mainRiderObject.PreSpeed, mainRiderObject.Distance);
|
VideoPlayerControl.UpdateVideoPlayRate(mainRiderObject.PreSpeed, mainRiderObject.Distance);
|
||||||
this.FrameIndexDistanceCorrection = this.VideoPlayerControl.FrameIndexDistanceCorrection;
|
FrameIndexDistanceCorrection = this.VideoPlayerControl.FrameIndexDistanceCorrection;
|
||||||
this.UpdateCameraFollowDistance();
|
UpdateCameraFollowDistance();
|
||||||
|
|
||||||
base.Update();
|
base.Update();
|
||||||
this.UpdateRidersVisibility();
|
UpdateRidersVisibility();
|
||||||
this.UpdateRidersLean();
|
UpdateRidersLean();
|
||||||
this.UpdateBackLight();
|
UpdateBackLight();
|
||||||
this.SetUpVideoControlMode();
|
SetUpVideoControlMode();
|
||||||
|
UpdateRemainingTime();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 处理人物快倒计时
|
||||||
|
/// </summary>
|
||||||
|
private void UpdateRemainingTime()
|
||||||
|
{
|
||||||
|
if (mainRiderObject == null) return;
|
||||||
|
var remainingDistance = Math.Round(manager.GetMapRoute().Distance * 1000f - mainRiderObject.Distance);
|
||||||
|
manager.ShowUpRemainTime(remainingDistance);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -247,7 +258,7 @@ namespace Assets.AR
|
|||||||
case AR.CameraDistance.Near:
|
case AR.CameraDistance.Near:
|
||||||
return 1.5f;
|
return 1.5f;
|
||||||
case AR.CameraDistance.Middle:
|
case AR.CameraDistance.Middle:
|
||||||
return 5f;
|
return 8f;
|
||||||
case AR.CameraDistance.Far:
|
case AR.CameraDistance.Far:
|
||||||
return 10f;
|
return 10f;
|
||||||
default:
|
default:
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using Assets.Scripts.Scenes.VideoRide;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace Assets.AR
|
namespace Assets.AR
|
||||||
@ -98,12 +99,14 @@ namespace Assets.AR
|
|||||||
protected override void Start()
|
protected override void Start()
|
||||||
{
|
{
|
||||||
base.Start();
|
base.Start();
|
||||||
|
SetZOffset();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void Update()
|
protected override void Update()
|
||||||
{
|
{
|
||||||
if (this.route == null)
|
if (this.route == null)
|
||||||
return;
|
return;
|
||||||
|
SetMainRiderLane();
|
||||||
base.Update();
|
base.Update();
|
||||||
var num = this.Speed;
|
var num = this.Speed;
|
||||||
this.Paused = this.Speed == 0;
|
this.Paused = this.Speed == 0;
|
||||||
@ -169,7 +172,24 @@ namespace Assets.AR
|
|||||||
|
|
||||||
this.lastVisibilitylevel = this.VisibilityLevel;
|
this.lastVisibilitylevel = this.VisibilityLevel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void SetZOffset()
|
||||||
|
{
|
||||||
|
var manager = FindObjectOfType<VideoGameManager>();
|
||||||
|
var map = manager.GetMapRoute();
|
||||||
|
this.ZOffset = map.Id == 6296 ? -4f : 0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetMainRiderLane()
|
||||||
|
{
|
||||||
|
if (IsMain)
|
||||||
|
{
|
||||||
|
var manager = FindObjectOfType<VideoGameManager>();
|
||||||
|
var map = manager.GetMapRoute();
|
||||||
|
if(map.Id == 6296)
|
||||||
|
Lane = -2f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void FixedUpdate()
|
private void FixedUpdate()
|
||||||
{
|
{
|
||||||
|
|||||||
BIN
Assets/Resources/Images/AR/remain200big.png
Normal file
BIN
Assets/Resources/Images/AR/remain200big.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.3 MiB |
140
Assets/Resources/Images/AR/remain200big.png.meta
Normal file
140
Assets/Resources/Images/AR/remain200big.png.meta
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 596384dff8e4ac74792efb98a7050735
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 11
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 1
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 512
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 512
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Windows Store Apps
|
||||||
|
maxTextureSize: 512
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: iPhone
|
||||||
|
maxTextureSize: 512
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 512
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spritePackingTag:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
pSDShowRemoveMatteOption: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
428
Assets/Resources/UI/Prefab/AR/Remain.prefab
Normal file
428
Assets/Resources/UI/Prefab/AR/Remain.prefab
Normal file
@ -0,0 +1,428 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &8821672318626816366
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 8821672318626816367}
|
||||||
|
- component: {fileID: 8821672318626816365}
|
||||||
|
- component: {fileID: 8821672318626816364}
|
||||||
|
- component: {fileID: 4827865455385428039}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Distance
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &8821672318626816367
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8821672318626816366}
|
||||||
|
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: 8821672319793893522}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
|
m_AnchoredPosition: {x: 377, y: -110}
|
||||||
|
m_SizeDelta: {x: 364, y: 168}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &8821672318626816365
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8821672318626816366}
|
||||||
|
m_CullTransparentMesh: 0
|
||||||
|
--- !u!114 &8821672318626816364
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8821672318626816366}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_FontData:
|
||||||
|
m_Font: {fileID: 12800000, guid: f878f11ea5771c548ac255f4e39b8e4b, type: 3}
|
||||||
|
m_FontSize: 168
|
||||||
|
m_FontStyle: 0
|
||||||
|
m_BestFit: 0
|
||||||
|
m_MinSize: 1
|
||||||
|
m_MaxSize: 168
|
||||||
|
m_Alignment: 0
|
||||||
|
m_AlignByGeometry: 0
|
||||||
|
m_RichText: 1
|
||||||
|
m_HorizontalOverflow: 1
|
||||||
|
m_VerticalOverflow: 0
|
||||||
|
m_LineSpacing: 1
|
||||||
|
m_Text: 200
|
||||||
|
--- !u!114 &4827865455385428039
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8821672318626816366}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: cc35dd113658adb47867d8c21c22fb4a, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
--- !u!1 &8821672319010268339
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 8821672319010268336}
|
||||||
|
- component: {fileID: 8821672319010268350}
|
||||||
|
- component: {fileID: 8821672319010268337}
|
||||||
|
- component: {fileID: 8821672319010268351}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Remain
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &8821672319010268336
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8821672319010268339}
|
||||||
|
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:
|
||||||
|
- {fileID: 8821672319793893522}
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 1, y: 1}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 0, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &8821672319010268350
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8821672319010268339}
|
||||||
|
m_CullTransparentMesh: 0
|
||||||
|
--- !u!114 &8821672319010268337
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8821672319010268339}
|
||||||
|
m_Enabled: 0
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 0.392}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_Type: 1
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!225 &8821672319010268351
|
||||||
|
CanvasGroup:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8821672319010268339}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_Alpha: 0
|
||||||
|
m_Interactable: 1
|
||||||
|
m_BlocksRaycasts: 1
|
||||||
|
m_IgnoreParentGroups: 0
|
||||||
|
--- !u!1 &8821672319686553709
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 8821672319686553706}
|
||||||
|
- component: {fileID: 8821672319686553704}
|
||||||
|
- component: {fileID: 8821672319686553707}
|
||||||
|
- component: {fileID: 8821672319686553705}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Title
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &8821672319686553706
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8821672319686553709}
|
||||||
|
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: 8821672319793893522}
|
||||||
|
m_RootOrder: 2
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
|
m_AnchoredPosition: {x: 405, y: -207.5}
|
||||||
|
m_SizeDelta: {x: 254, y: 45}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &8821672319686553704
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8821672319686553709}
|
||||||
|
m_CullTransparentMesh: 0
|
||||||
|
--- !u!114 &8821672319686553707
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8821672319686553709}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_FontData:
|
||||||
|
m_Font: {fileID: 12800000, guid: f878f11ea5771c548ac255f4e39b8e4b, type: 3}
|
||||||
|
m_FontSize: 45
|
||||||
|
m_FontStyle: 0
|
||||||
|
m_BestFit: 0
|
||||||
|
m_MinSize: 1
|
||||||
|
m_MaxSize: 168
|
||||||
|
m_Alignment: 1
|
||||||
|
m_AlignByGeometry: 0
|
||||||
|
m_RichText: 1
|
||||||
|
m_HorizontalOverflow: 1
|
||||||
|
m_VerticalOverflow: 0
|
||||||
|
m_LineSpacing: 1
|
||||||
|
m_Text: REMAINING
|
||||||
|
--- !u!114 &8821672319686553705
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8821672319686553709}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: e47f6ee11b78f3247a0b474b6c36e2cd, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
key:
|
||||||
|
--- !u!1 &8821672319793893525
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 8821672319793893522}
|
||||||
|
- component: {fileID: 8821672319793893520}
|
||||||
|
- component: {fileID: 8821672319793893523}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Bg
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &8821672319793893522
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8821672319793893525}
|
||||||
|
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:
|
||||||
|
- {fileID: 8821672318626816367}
|
||||||
|
- {fileID: 8821672320381656758}
|
||||||
|
- {fileID: 8821672319686553706}
|
||||||
|
m_Father: {fileID: 8821672319010268336}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0.5, y: 0}
|
||||||
|
m_AnchorMax: {x: 0.5, y: 0}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 275}
|
||||||
|
m_SizeDelta: {x: 810, y: 266}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &8821672319793893520
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8821672319793893525}
|
||||||
|
m_CullTransparentMesh: 0
|
||||||
|
--- !u!114 &8821672319793893523
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8821672319793893525}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 21300000, guid: 596384dff8e4ac74792efb98a7050735, type: 3}
|
||||||
|
m_Type: 0
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!1 &8821672320381656713
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 8821672320381656758}
|
||||||
|
- component: {fileID: 8821672320381656756}
|
||||||
|
- component: {fileID: 8821672320381656759}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Unit
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &8821672320381656758
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8821672320381656713}
|
||||||
|
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: 8821672319793893522}
|
||||||
|
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: 182.5, y: -6}
|
||||||
|
m_SizeDelta: {x: 57, y: 75}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &8821672320381656756
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8821672320381656713}
|
||||||
|
m_CullTransparentMesh: 0
|
||||||
|
--- !u!114 &8821672320381656759
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8821672320381656713}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_FontData:
|
||||||
|
m_Font: {fileID: 12800000, guid: f878f11ea5771c548ac255f4e39b8e4b, type: 3}
|
||||||
|
m_FontSize: 75
|
||||||
|
m_FontStyle: 0
|
||||||
|
m_BestFit: 0
|
||||||
|
m_MinSize: 1
|
||||||
|
m_MaxSize: 168
|
||||||
|
m_Alignment: 6
|
||||||
|
m_AlignByGeometry: 0
|
||||||
|
m_RichText: 1
|
||||||
|
m_HorizontalOverflow: 1
|
||||||
|
m_VerticalOverflow: 0
|
||||||
|
m_LineSpacing: 1
|
||||||
|
m_Text: M
|
||||||
7
Assets/Resources/UI/Prefab/AR/Remain.prefab.meta
Normal file
7
Assets/Resources/UI/Prefab/AR/Remain.prefab.meta
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 30146295accb0944a815749fc20e4f73
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -115,9 +115,9 @@ RectTransform:
|
|||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0.5, y: 1}
|
m_AnchorMin: {x: 0.5, y: 1}
|
||||||
m_AnchorMax: {x: 0.5, y: 1}
|
m_AnchorMax: {x: 0.5, y: 1}
|
||||||
m_AnchoredPosition: {x: -28.5, y: -405.3}
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
m_SizeDelta: {x: 90, y: 6}
|
m_SizeDelta: {x: 90, y: 6}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.25, y: 1}
|
||||||
--- !u!222 &4542661629369906579
|
--- !u!222 &4542661629369906579
|
||||||
CanvasRenderer:
|
CanvasRenderer:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|||||||
@ -872,7 +872,6 @@ MonoBehaviour:
|
|||||||
newNav: {fileID: 0}
|
newNav: {fileID: 0}
|
||||||
PowerSlider: {fileID: 7737392489142060261}
|
PowerSlider: {fileID: 7737392489142060261}
|
||||||
PowerText: {fileID: 7737392488336084295}
|
PowerText: {fileID: 7737392488336084295}
|
||||||
manager: {fileID: 0}
|
|
||||||
--- !u!1 &7043703429314443876
|
--- !u!1 &7043703429314443876
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -2036,7 +2035,7 @@ MonoBehaviour:
|
|||||||
m_HandleRect: {fileID: 7737392487993312576}
|
m_HandleRect: {fileID: 7737392487993312576}
|
||||||
m_Direction: 0
|
m_Direction: 0
|
||||||
m_MinValue: 0
|
m_MinValue: 0
|
||||||
m_MaxValue: 2000
|
m_MaxValue: 800
|
||||||
m_WholeNumbers: 0
|
m_WholeNumbers: 0
|
||||||
m_Value: 0
|
m_Value: 0
|
||||||
m_OnValueChanged:
|
m_OnValueChanged:
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
{
|
{
|
||||||
"zh": {
|
"zh": {
|
||||||
|
"REMAINING": "距离终点",
|
||||||
"HOT ROUTES": "热门线路",
|
"HOT ROUTES": "热门线路",
|
||||||
"Ride Now": "开始",
|
"Ride Now": "开始",
|
||||||
"Back": "返回",
|
"Back": "返回",
|
||||||
@ -443,6 +444,7 @@
|
|||||||
"CancelReadyToQuit":"请取消准备后再退出!"
|
"CancelReadyToQuit":"请取消准备后再退出!"
|
||||||
},
|
},
|
||||||
"en": {
|
"en": {
|
||||||
|
"REMAINING": "REMAINING",
|
||||||
"HOT ROUTES": "HOT ROUTES",
|
"HOT ROUTES": "HOT ROUTES",
|
||||||
"Ride Now": "Ride Now",
|
"Ride Now": "Ride Now",
|
||||||
"Back": "Back",
|
"Back": "Back",
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -63,6 +63,8 @@ namespace Assets.Scripts.Scenes.VideoRide
|
|||||||
private static readonly int AnimatorSpeed = Animator.StringToHash("speed");
|
private static readonly int AnimatorSpeed = Animator.StringToHash("speed");
|
||||||
private static readonly int Grade = Animator.StringToHash("grade");
|
private static readonly int Grade = Animator.StringToHash("grade");
|
||||||
private static readonly int Power = Animator.StringToHash("power");
|
private static readonly int Power = Animator.StringToHash("power");
|
||||||
|
|
||||||
|
private Camera mainCamera;
|
||||||
|
|
||||||
protected virtual void Start()
|
protected virtual void Start()
|
||||||
{
|
{
|
||||||
@ -71,6 +73,7 @@ namespace Assets.Scripts.Scenes.VideoRide
|
|||||||
mapData = manager.GetMapData();
|
mapData = manager.GetMapData();
|
||||||
ComputeNextSlope();//初始化坡度等
|
ComputeNextSlope();//初始化坡度等
|
||||||
bone_bottle_2 = transform.Find("bone_cable_20");
|
bone_bottle_2 = transform.Find("bone_cable_20");
|
||||||
|
mainCamera = Camera.main;
|
||||||
}
|
}
|
||||||
protected virtual void Update()
|
protected virtual void Update()
|
||||||
{
|
{
|
||||||
@ -247,19 +250,34 @@ namespace Assets.Scripts.Scenes.VideoRide
|
|||||||
headWkg = head.transform.Find("wkg").GetComponent<Text>();
|
headWkg = head.transform.Find("wkg").GetComponent<Text>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (head != null)
|
UpdateHead();
|
||||||
{
|
|
||||||
//它们的乘积就是高度
|
|
||||||
Vector3 worldPosition = new Vector3(bone_bottle_2.position.x, bone_bottle_2.position.y+1.0f, bone_bottle_2.position.z);
|
|
||||||
var playerScreenPos = Camera.main.WorldToScreenPoint(worldPosition);
|
|
||||||
head.transform.position = playerScreenPos;
|
|
||||||
ftpImage.fillAmount = (float)(wkg / 6);
|
|
||||||
headName.text = UserName;
|
|
||||||
headWkg.text = $"{wkg}W/KG";
|
|
||||||
head.SetActive(bone_bottle_2.position.z > 0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void UpdateHead()
|
||||||
|
{
|
||||||
|
if (head == null) return;
|
||||||
|
//update position
|
||||||
|
var position = bone_bottle_2.position;
|
||||||
|
var worldPosition = new Vector3(position.x, position.y + transform.localScale.y, position.z);
|
||||||
|
var playerScreenPos = mainCamera.WorldToScreenPoint(worldPosition);
|
||||||
|
playerScreenPos.y += 16f;
|
||||||
|
head.transform.position = playerScreenPos;
|
||||||
|
//update info
|
||||||
|
ftpImage.fillAmount = (float)(wkg / 6);
|
||||||
|
headName.text = UserName;
|
||||||
|
headWkg.text = $"{wkg}W/KG";
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnBecameInvisible()
|
||||||
|
{
|
||||||
|
head.SetActive(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnBecameVisible()
|
||||||
|
{
|
||||||
|
head.SetActive(true);
|
||||||
|
}
|
||||||
|
|
||||||
public void SetStartDistance(double distance)
|
public void SetStartDistance(double distance)
|
||||||
{
|
{
|
||||||
this.StartDistance = distance *1000;
|
this.StartDistance = distance *1000;
|
||||||
|
|||||||
@ -65,10 +65,12 @@ namespace Assets.Scripts.Scenes.VideoRide
|
|||||||
|
|
||||||
public Dictionary<IRider, PlayerRenderer> rideObjs = new Dictionary<IRider, PlayerRenderer>();
|
public Dictionary<IRider, PlayerRenderer> rideObjs = new Dictionary<IRider, PlayerRenderer>();
|
||||||
|
|
||||||
|
private VideoUIManager _uiManager { get; set; }
|
||||||
|
|
||||||
protected override void Awake()
|
protected override void Awake()
|
||||||
{
|
{
|
||||||
base.Awake();
|
base.Awake();
|
||||||
|
_uiManager = FindObjectOfType<VideoUIManager>();
|
||||||
trainingController = GetComponent<ARTrainingController>();
|
trainingController = GetComponent<ARTrainingController>();
|
||||||
mediaPlayer = FindObjectOfType<MediaPlayer>();
|
mediaPlayer = FindObjectOfType<MediaPlayer>();
|
||||||
DeviceCache.Init(PFConstants.DeviceCacheFolder);
|
DeviceCache.Init(PFConstants.DeviceCacheFolder);
|
||||||
@ -192,19 +194,19 @@ namespace Assets.Scripts.Scenes.VideoRide
|
|||||||
var players = FindObjectsOfType<OnlineVideoPlayer>();
|
var players = FindObjectsOfType<OnlineVideoPlayer>();
|
||||||
foreach (var item in players)
|
foreach (var item in players)
|
||||||
{
|
{
|
||||||
var currentItem = list.Where(c => c.UserId == item.UserId).FirstOrDefault();
|
var currentItem = list.FirstOrDefault(c => c.UserId == item.UserId);
|
||||||
if (currentItem == null)
|
if (currentItem == null)
|
||||||
{
|
{
|
||||||
rideObjs.Remove(item);
|
rideObjs.Remove(item);
|
||||||
visibleRiders.Remove(item);
|
visibleRiders.Remove(item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var currentPlayerInfo = list.Where(c => c.IsSelf).FirstOrDefault();
|
var currentPlayerInfo = list.FirstOrDefault(c => c.IsSelf);
|
||||||
var needUpdateList = list.OrderByDescending(c => c.IsSelf).ToList();
|
var needUpdateList = list.OrderByDescending(c => c.IsSelf).ToList();
|
||||||
//如果当前为观察者模式且currentPlayerInfo为null随机选择以为用户观察
|
//如果当前为观察者模式且currentPlayerInfo为null随机选择以为用户观察
|
||||||
if (currentPlayerInfo == null)
|
if (currentPlayerInfo == null)
|
||||||
{
|
{
|
||||||
currentPlayerInfo = needUpdateList.Where(c => c.UserId == CurrentUserId).FirstOrDefault();
|
currentPlayerInfo = needUpdateList.FirstOrDefault(c => c.UserId == CurrentUserId);
|
||||||
if(currentPlayerInfo == null)
|
if(currentPlayerInfo == null)
|
||||||
currentPlayerInfo = needUpdateList.FirstOrDefault();
|
currentPlayerInfo = needUpdateList.FirstOrDefault();
|
||||||
}
|
}
|
||||||
@ -212,7 +214,7 @@ namespace Assets.Scripts.Scenes.VideoRide
|
|||||||
foreach (var item in needUpdateList)
|
foreach (var item in needUpdateList)
|
||||||
{
|
{
|
||||||
var onlineRider = item as OnlineRiderModel;
|
var onlineRider = item as OnlineRiderModel;
|
||||||
var visibleItem = visibleRiders.Where(c => c.UserId == item.UserId).FirstOrDefault();
|
var visibleItem = visibleRiders.FirstOrDefault(c => c.UserId == item.UserId);
|
||||||
if (visibleItem != null)
|
if (visibleItem != null)
|
||||||
{
|
{
|
||||||
visibleItem.SetPlayer(onlineRider.NickName, onlineRider.Speed, onlineRider.PreDistance, onlineRider.EndDistance, item.Cadence, item.HeartRate, onlineRider.WeightKg, item.UserId, onlineRider.Power, currentPlayerInfo.EndDistance, onlineRider.FrameRate.Value);
|
visibleItem.SetPlayer(onlineRider.NickName, onlineRider.Speed, onlineRider.PreDistance, onlineRider.EndDistance, item.Cadence, item.HeartRate, onlineRider.WeightKg, item.UserId, onlineRider.Power, currentPlayerInfo.EndDistance, onlineRider.FrameRate.Value);
|
||||||
@ -267,6 +269,7 @@ namespace Assets.Scripts.Scenes.VideoRide
|
|||||||
|
|
||||||
CurrentUserId = App.CurrentUser.Id;
|
CurrentUserId = App.CurrentUser.Id;
|
||||||
CurrentPlayer = videoPlayer.GetComponent<AbstractVideoPlayer>();
|
CurrentPlayer = videoPlayer.GetComponent<AbstractVideoPlayer>();
|
||||||
|
|
||||||
var vp = videoPlayer.GetComponent<VideoPlayer>();
|
var vp = videoPlayer.GetComponent<VideoPlayer>();
|
||||||
vp.SetEndDistance(item.EndDistance);
|
vp.SetEndDistance(item.EndDistance);
|
||||||
CurrentPlayer.SetStartDistance(item.EndDistance);
|
CurrentPlayer.SetStartDistance(item.EndDistance);
|
||||||
@ -290,8 +293,7 @@ namespace Assets.Scripts.Scenes.VideoRide
|
|||||||
public void SetCurrentMode(ARMode aRMode)
|
public void SetCurrentMode(ARMode aRMode)
|
||||||
{
|
{
|
||||||
_aRMode = aRMode;
|
_aRMode = aRMode;
|
||||||
var uimanager = FindObjectOfType<VideoUIManager>();
|
_uiManager.SetCurrentMode(aRMode);
|
||||||
uimanager.SetCurrentMode(aRMode);
|
|
||||||
if (_aRMode != ARMode.INSPECT)
|
if (_aRMode != ARMode.INSPECT)
|
||||||
{
|
{
|
||||||
CurrentUserId = App.CurrentUser.Id;
|
CurrentUserId = App.CurrentUser.Id;
|
||||||
@ -422,6 +424,13 @@ namespace Assets.Scripts.Scenes.VideoRide
|
|||||||
}
|
}
|
||||||
return mapRoute;
|
return mapRoute;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void ShowUpRemainTime(double remain)
|
||||||
|
{
|
||||||
|
_uiManager.ShowUpRemainTime(remain);
|
||||||
|
}
|
||||||
|
|
||||||
//保存骑行记录
|
//保存骑行记录
|
||||||
public void SaveData(double totalDistance)
|
public void SaveData(double totalDistance)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,18 +1,22 @@
|
|||||||
using Assets.Scenes.Ride.Scripts.Model;
|
using Assets.Scenes.Ride.Scripts.Model;
|
||||||
using Assets.Scenes.Ride.Scripts.Model.CyclingModels;
|
using Assets.Scenes.Ride.Scripts.Model.CyclingModels;
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
namespace Assets.Scripts.Scenes.VideoRide
|
namespace Assets.Scripts.Scenes.VideoRide
|
||||||
{
|
{
|
||||||
public class VideoPlayer : AbstractVideoPlayer
|
public class VideoPlayer : AbstractVideoPlayer
|
||||||
{
|
{
|
||||||
private bool isSingle = true;
|
private bool isSingle = true;
|
||||||
|
VideoUIManager _uimanager;
|
||||||
protected override void Start()
|
protected override void Start()
|
||||||
{
|
{
|
||||||
base.Start();
|
base.Start();
|
||||||
animator.Play("idle");
|
animator.Play("idle");
|
||||||
userId = App.CurrentUser.Id;
|
userId = App.CurrentUser.Id;
|
||||||
userName = App.CurrentUser.Nickname;
|
userName = App.CurrentUser.Nickname;
|
||||||
|
_uimanager= FindObjectOfType<VideoUIManager>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetEndDistance(double distance)
|
public void SetEndDistance(double distance)
|
||||||
@ -25,12 +29,14 @@ namespace Assets.Scripts.Scenes.VideoRide
|
|||||||
public void Complete()
|
public void Complete()
|
||||||
{
|
{
|
||||||
start = false;
|
start = false;
|
||||||
|
StartCoroutine(ShowResult());
|
||||||
|
}
|
||||||
|
|
||||||
|
private IEnumerator ShowResult()
|
||||||
|
{
|
||||||
|
yield return new WaitForSeconds(2f);
|
||||||
UIManager.CloseGameRoomCountDownPanel();
|
UIManager.CloseGameRoomCountDownPanel();
|
||||||
var uimanager= FindObjectOfType<VideoUIManager>();
|
_uimanager?.SaveAndShowResult();
|
||||||
if (uimanager!= null)
|
|
||||||
{
|
|
||||||
uimanager.SaveAndShowResult();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void ComputePlayer()
|
public override void ComputePlayer()
|
||||||
@ -42,8 +48,8 @@ namespace Assets.Scripts.Scenes.VideoRide
|
|||||||
if (mockpower > 0)
|
if (mockpower > 0)
|
||||||
{
|
{
|
||||||
power = mockpower;
|
power = mockpower;
|
||||||
cadance = 50;
|
// cadance = 50;
|
||||||
heartRate = 160;
|
// heartRate = 160;
|
||||||
}
|
}
|
||||||
//#endif
|
//#endif
|
||||||
weight = App.CurrentUser.Weight;
|
weight = App.CurrentUser.Weight;
|
||||||
@ -102,6 +108,7 @@ namespace Assets.Scripts.Scenes.VideoRide
|
|||||||
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);
|
||||||
|
|
||||||
//默认启用多圈
|
//默认启用多圈
|
||||||
if (isSingle && totalDistance >= mapData.TotalDistance)
|
if (isSingle && totalDistance >= mapData.TotalDistance)
|
||||||
{
|
{
|
||||||
@ -109,6 +116,8 @@ namespace Assets.Scripts.Scenes.VideoRide
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private double RemainingDistance => Math.Round((mapData.TotalDistance - totalDistance) * 1000);
|
||||||
|
|
||||||
public override void Forward()
|
public override void Forward()
|
||||||
{
|
{
|
||||||
base.Forward();
|
base.Forward();
|
||||||
|
|||||||
@ -166,7 +166,7 @@ namespace Assets.Scripts.Scenes.VideoRide
|
|||||||
avHeatrate.text = record.RiderDatas.Average(c => c._HeartRate.GetValueOrDefault(0)).ToString("f0");
|
avHeatrate.text = record.RiderDatas.Average(c => c._HeartRate.GetValueOrDefault(0)).ToString("f0");
|
||||||
avSpeed.text = record.RiderDatas.Average(c => c._Speed).ToString("f1");
|
avSpeed.text = record.RiderDatas.Average(c => c._Speed).ToString("f1");
|
||||||
maxSpeed.text = record.RiderDatas.Max(c => c._Speed).ToString("f1");
|
maxSpeed.text = record.RiderDatas.Max(c => c._Speed).ToString("f1");
|
||||||
//wkgText.text = Math.Round(power / record.CurrentUser.Weight, 2).ToString();
|
wkgText.text = Math.Round(power / record.CurrentUser.Weight, 2).ToString();
|
||||||
avCadence.text = record.RiderDatas.Average(c => c._Cadence).GetValueOrDefault(0).ToString("f0");
|
avCadence.text = record.RiderDatas.Average(c => c._Cadence).GetValueOrDefault(0).ToString("f0");
|
||||||
|
|
||||||
DNF.gameObject.SetActive(!record.IsCompleted);
|
DNF.gameObject.SetActive(!record.IsCompleted);
|
||||||
|
|||||||
@ -14,6 +14,7 @@ namespace Assets.Scripts.Scenes.VideoRide
|
|||||||
public class VideoUIManager : MonoBehaviour
|
public class VideoUIManager : MonoBehaviour
|
||||||
{
|
{
|
||||||
GameObject button;
|
GameObject button;
|
||||||
|
GameObject remainTime;
|
||||||
VideoGameManager manager;
|
VideoGameManager manager;
|
||||||
VideoPlayer videoPlayer;
|
VideoPlayer videoPlayer;
|
||||||
const float MAXPOWER = 450f;
|
const float MAXPOWER = 450f;
|
||||||
@ -92,6 +93,29 @@ namespace Assets.Scripts.Scenes.VideoRide
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void ShowUpRemainTime(double remain)
|
||||||
|
{
|
||||||
|
if (remain > 110) return;
|
||||||
|
|
||||||
|
remain -= 20;
|
||||||
|
|
||||||
|
var canvas = remainTime.GetComponent<CanvasGroup>();
|
||||||
|
if (remain <= 0)
|
||||||
|
{
|
||||||
|
if (canvas.alpha == 1)
|
||||||
|
canvas.DOFade(0, 1).onComplete = () => { remainTime.SetActive(false); };
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
remainTime.SetActive(true);
|
||||||
|
remainTime.transform.Find("Bg/Distance").GetComponent<Text>().text = remain.ToString().PadLeft(2,'0');
|
||||||
|
|
||||||
|
if (canvas.alpha == 0)
|
||||||
|
canvas.DOFade(1, 1f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private const float MAX_HEART_RATIO = 0.9f;
|
private const float MAX_HEART_RATIO = 0.9f;
|
||||||
private float ComputeHearRateRatio(int heartRate)
|
private float ComputeHearRateRatio(int heartRate)
|
||||||
{
|
{
|
||||||
@ -124,6 +148,7 @@ namespace Assets.Scripts.Scenes.VideoRide
|
|||||||
GameObject explosive { get; set; }
|
GameObject explosive { get; set; }
|
||||||
private void Init()
|
private void Init()
|
||||||
{
|
{
|
||||||
|
remainTime = transform.Find("Panel/Remain").gameObject;
|
||||||
infoText = transform.Find("InfoText").GetComponentInChildren<Text>();
|
infoText = transform.Find("InfoText").GetComponentInChildren<Text>();
|
||||||
ComputerPanel = transform.Find("Panel/ComputerPanel").gameObject;
|
ComputerPanel = transform.Find("Panel/ComputerPanel").gameObject;
|
||||||
WatchPanel = transform.Find("Panel/WatchPanel").gameObject;
|
WatchPanel = transform.Find("Panel/WatchPanel").gameObject;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user