视角切换&小地图模糊问题解决
This commit is contained in:
1 parent
9bc3864790
commit
e4d4333357
30 files changed
+3746
-2965
No files matched your search
@@ -0,0 +1,37 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!84 &8400000
|
||||
RenderTexture:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: New Render Texture
|
||||
m_ImageContentsHash:
|
||||
serializedVersion: 2
|
||||
Hash: 00000000000000000000000000000000
|
||||
m_ForcedFallbackFormat: 4
|
||||
m_DownscaleFallback: 0
|
||||
serializedVersion: 3
|
||||
m_Width: 256
|
||||
m_Height: 256
|
||||
m_AntiAliasing: 1
|
||||
m_MipCount: -1
|
||||
m_DepthFormat: 2
|
||||
m_ColorFormat: 8
|
||||
m_MipMap: 0
|
||||
m_GenerateMips: 1
|
||||
m_SRGB: 0
|
||||
m_UseDynamicScale: 0
|
||||
m_BindMS: 0
|
||||
m_EnableCompatibleFormat: 1
|
||||
m_TextureSettings:
|
||||
serializedVersion: 2
|
||||
m_FilterMode: 1
|
||||
m_Aniso: 0
|
||||
m_MipBias: 0
|
||||
m_WrapU: 1
|
||||
m_WrapV: 1
|
||||
m_WrapW: 1
|
||||
m_Dimension: 2
|
||||
m_VolumeDepth: 1
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 83f968668355a044584843a4bf7d592d
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 8400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
+3041
-2871
File diff suppressed because it is too large.
Load diff
@@ -26,7 +26,7 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
//AbstractMap map;
|
||||
|
||||
#region 动画控制参数
|
||||
Vector3 nextPos;
|
||||
public Vector3 nextPos;
|
||||
Vector3 prePos = Vector3.zero;
|
||||
float timer = 1.0f;//计时器
|
||||
#endregion
|
||||
@@ -124,6 +124,7 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
characterAnimator.SetBool("ReachEnd", true);//到达终点
|
||||
}
|
||||
}
|
||||
|
||||
//开始骑行
|
||||
if (mainController.isStart)
|
||||
{
|
||||
@@ -154,7 +155,7 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
//数据处理
|
||||
|
||||
nextPos = map.GeoToWorldPosition(currentlatlong);//下一个点
|
||||
nextPos.y += 1f;//提高y轴让人物站在地图上面
|
||||
nextPos.y += 1.15f;//提高y轴让人物站在地图上面
|
||||
prePos = transform.localPosition;//当前点
|
||||
thisRotation = transform.localRotation;
|
||||
//移动动画控制
|
||||
@@ -224,7 +225,8 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
nextSlopeDistance = sumDistance - totalDistance * 1000;
|
||||
NextSlopeTotalDistance = pointList[nextIndex].Distance;
|
||||
currentSlopeDistance = CurrentDistance-( totalDistance * 1000 - (sumDistance - pointList[index].Distance));
|
||||
|
||||
//人物初始化角度控制
|
||||
|
||||
}
|
||||
public double PreElevation;
|
||||
public double PreSlope;
|
||||
@@ -232,8 +234,9 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
#endregion
|
||||
|
||||
#region 人物移动与转向控制
|
||||
|
||||
|
||||
Quaternion thisRotation;
|
||||
public Quaternion currentRotation;
|
||||
IEnumerator LookAtNextPos()
|
||||
{
|
||||
Quaternion neededRotation = Quaternion.LookRotation(prePos - nextPos);
|
||||
@@ -243,8 +246,8 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
while (t < 1.0f)
|
||||
{
|
||||
t += Time.deltaTime / 0.5f;
|
||||
var rotationValue = Quaternion.Slerp(thisRotation, neededRotation, t);
|
||||
character.transform.rotation = Quaternion.Euler(0, rotationValue.eulerAngles.y, 0);
|
||||
currentRotation = Quaternion.Slerp(thisRotation, neededRotation, t);
|
||||
character.transform.rotation = Quaternion.Euler(0, currentRotation.eulerAngles.y, 0);
|
||||
yield return null;
|
||||
}
|
||||
}
|
||||
@@ -257,6 +260,7 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
Camera.main.transform.position = Vector3.Lerp(Camera.main.transform.position, Camera.main.transform.position + deltaPos, Time.time);
|
||||
previousPos = transform.position;
|
||||
}
|
||||
public Vector3 currentPos = new Vector3(0,0,0);
|
||||
//人物移动控制
|
||||
IEnumerator MoveTo()
|
||||
{
|
||||
@@ -271,6 +275,7 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
Vector3 nextPosition = new Vector3((float)Math.Round(v.x, 2), (float)Math.Round(v.y, 2), (float)Math.Round(v.z, 2));
|
||||
if (!nextPosition.Equals(transform.localPosition))
|
||||
{
|
||||
currentPos = nextPosition;
|
||||
transform.localPosition = nextPosition;
|
||||
//Camera.main.transform.localPosition = nextPosition;
|
||||
}
|
||||
|
||||
@@ -71,10 +71,13 @@ public class CyclingController : DeviceServiceMonoBase
|
||||
resultPanel = transform.Find("SingleUI/Panel/ResultPanel").gameObject;
|
||||
}
|
||||
|
||||
Transform target;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
UIManager.Instance.MainPanel = this.transform.Find("SingleUI/Panel").GetComponent<PFUIPanel>();
|
||||
UIManager.Instance.ModalsPanel = this.transform.Find("SingleUI/ModalPanel").GetComponent<PFUIPanel>();
|
||||
target = transform.Find("Target");
|
||||
//进入倒计时
|
||||
singleUIManager = UIObject.GetComponent<SingleUIManager>();
|
||||
loadingController = FindObjectOfType<LoadingController>();
|
||||
@@ -203,18 +206,28 @@ public class CyclingController : DeviceServiceMonoBase
|
||||
break;
|
||||
}
|
||||
AutoStart();
|
||||
|
||||
InitPlayer();
|
||||
}
|
||||
//初始化人物位置角度
|
||||
private void InitPlayer()
|
||||
{
|
||||
lockView = true;
|
||||
if (recorderData != null)
|
||||
{
|
||||
var lastLatLon = Along(recorderData.EndDistance);
|
||||
player.transform.position = map.GeoToWorldPosition(lastLatLon);
|
||||
}
|
||||
else
|
||||
{
|
||||
var lastLatLon = Along(0);
|
||||
player.transform.position = map.GeoToWorldPosition(lastLatLon);
|
||||
}
|
||||
TrailRenderer trail = player.GetComponent<TrailRenderer>();
|
||||
PlayerController playerController = player.GetComponent<PlayerController>();
|
||||
Vector2d lastLatLon = Along(recorderData.EndDistance);
|
||||
Vector3 currentPos = map.GeoToWorldPosition(lastLatLon);
|
||||
currentPos.y += 1f;
|
||||
player.transform.position = currentPos;
|
||||
playerController.currentPos = currentPos;
|
||||
|
||||
trail.Clear();
|
||||
Vector2d nextLatLon = Along(recorderData.EndDistance + 0.1);
|
||||
//设定人物方向
|
||||
var s = map.GeoToWorldPosition(lastLatLon);
|
||||
var e = map.GeoToWorldPosition(nextLatLon);
|
||||
Quaternion neededRotation = Quaternion.LookRotation(s - e);
|
||||
player.transform.rotation = Quaternion.Euler(0, neededRotation.eulerAngles.y, 0);
|
||||
playerController.currentRotation = neededRotation;
|
||||
}
|
||||
SingleUIManager singleUIManager;
|
||||
public void AutoStart()
|
||||
@@ -231,32 +244,45 @@ public class CyclingController : DeviceServiceMonoBase
|
||||
public bool Is3dView;
|
||||
public void ChangeMapImageStyle(GameObject arrowGameObj)
|
||||
{
|
||||
|
||||
var playerController = player.GetComponent<PlayerController>();
|
||||
var trailRenderer = player.GetComponent<TrailRenderer>();
|
||||
trailRenderer.time = 0;
|
||||
StartCoroutine(EnableTrailRenderer(trailRenderer));
|
||||
if (!Is3dView)
|
||||
{
|
||||
//地图属性变更
|
||||
map.Terrain.ExaggerationFactor = 1.5f;
|
||||
map.Terrain.SetElevationType(ElevationLayerType.TerrainWithElevation);
|
||||
map.ImageLayer.SetLayerSource(ImagerySourceType.Custom);
|
||||
//map.SetTileMaterial(new Material());
|
||||
Is3dView = true;
|
||||
map.SetCenterLatitudeLongitude(playerController.Currentlatlong);
|
||||
//人物属性变更
|
||||
var pos = map.GeoToWorldPosition(playerController.Currentlatlong);
|
||||
playerController.currentPos = pos;
|
||||
target.position = pos;
|
||||
player.transform.localScale = new Vector3(3f, 3f, 3f);
|
||||
player.transform.position = pos;
|
||||
|
||||
arrowGameObj.SetActive(false);
|
||||
Is3dView = true;
|
||||
}
|
||||
//else
|
||||
//{
|
||||
// map.Terrain.ExaggerationFactor = 0f;
|
||||
// map.Terrain.SetElevationType(ElevationLayerType.FlatTerrain);
|
||||
// map.ImageLayer.SetLayerSource(ImagerySourceType.None);
|
||||
// player.transform.localScale = new Vector3(0.1f, 0.1f, 0.1f);
|
||||
else
|
||||
{
|
||||
//地图属性变更
|
||||
map.ImageLayer.SetLayerSource(ImagerySourceType.JuzeTest);
|
||||
map.Terrain.ExaggerationFactor = 0f;
|
||||
map.Terrain.SetElevationType(ElevationLayerType.FlatTerrain);
|
||||
map.SetCenterLatitudeLongitude(playerController.Currentlatlong);
|
||||
//人物属性变更
|
||||
var pos = map.GeoToWorldPosition(playerController.Currentlatlong);
|
||||
player.transform.position = pos;
|
||||
player.transform.localScale = new Vector3(0.1f, 0.1f, 0.1f);
|
||||
target.position = pos;
|
||||
playerController.currentPos = Vector3.zero;
|
||||
|
||||
// var playerController = player.GetComponent<PlayerController>();
|
||||
// player.transform.position = map.GeoToWorldPosition(playerController.Currentlatlong);
|
||||
|
||||
// var trailRenderer = player.GetComponent<TrailRenderer>();
|
||||
// trailRenderer.time = 0;
|
||||
// StartCoroutine(EnableTrailRenderer(trailRenderer));
|
||||
// Is3dView = false;
|
||||
// arrowGameObj.SetActive(true);
|
||||
//}
|
||||
|
||||
arrowGameObj.SetActive(true);
|
||||
Is3dView = false;
|
||||
}
|
||||
}
|
||||
private bool lockView = false;
|
||||
private void Map_OnTileFinished(Mapbox.Unity.MeshGeneration.Data.UnityTile obj)
|
||||
@@ -270,15 +296,22 @@ public class CyclingController : DeviceServiceMonoBase
|
||||
if (recorderData != null)
|
||||
{
|
||||
var lastLatLon = Along(recorderData.EndDistance);
|
||||
var nextLatLon = Along(recorderData.EndDistance+0.1);
|
||||
player.transform.position = map.GeoToWorldPosition(lastLatLon);
|
||||
//设定人物方向
|
||||
var s = map.GeoToWorldPosition(lastLatLon);
|
||||
var e = map.GeoToWorldPosition(nextLatLon);
|
||||
Quaternion neededRotation = Quaternion.LookRotation(s - e);
|
||||
player.transform.rotation = Quaternion.Euler(0, neededRotation.eulerAngles.y, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
IEnumerator EnableTrailRenderer(TrailRenderer trailRenderer)
|
||||
{
|
||||
yield return new WaitForSeconds(1f);
|
||||
trailRenderer.time = 10;
|
||||
yield return new WaitForSeconds(2f);
|
||||
trailRenderer.Clear();
|
||||
trailRenderer.time = 30;
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -287,7 +320,7 @@ public class CyclingController : DeviceServiceMonoBase
|
||||
//开始骑行
|
||||
public void SetStart()
|
||||
{
|
||||
if (!isPause)
|
||||
if (!isPause || DateTime.MinValue == startTime)
|
||||
{
|
||||
isStart = true;
|
||||
startTime = DateTime.Now;
|
||||
|
||||
@@ -98,9 +98,9 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
var screenWidth = UnityEngine.Screen.width;
|
||||
var screenHeight = UnityEngine.Screen.height;
|
||||
|
||||
var sw_world = _minicamera.ViewportToWorldPoint(new Vector3(0, 0, 90));
|
||||
var sw_world = _minicamera.ViewportToWorldPoint(new Vector3(0.2f, 0.2f, 180));
|
||||
var sw = _map.WorldToGeoPosition(sw_world);
|
||||
var ne_world = _minicamera.ViewportToWorldPoint(new Vector3(1f, 1f, 90));
|
||||
var ne_world = _minicamera.ViewportToWorldPoint(new Vector3(0.955f, 0.955f, 180));
|
||||
var ne = _map.WorldToGeoPosition(ne_world);
|
||||
|
||||
return new Vector2dBounds(new Vector2d(sw.x, sw.y), new Vector2d(ne.x, ne.y));
|
||||
@@ -120,7 +120,7 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
if (mapData != null)
|
||||
{
|
||||
var count = mapData.List.Count;
|
||||
var interval = Math.Max(Math.Ceiling(count / 500D),1f);
|
||||
var interval = Math.Max(Math.Ceiling(count / 100D),1f);
|
||||
for (int i = 0; i < mapData.List.Count; i++)
|
||||
{
|
||||
if(i% interval == 0)
|
||||
@@ -147,16 +147,17 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
_mipMapRoute.transform.parent = transform;
|
||||
var lineRender = _mipMapRoute.AddComponent<LineRenderer>();
|
||||
|
||||
lineRender.material = Instantiate(Resources.Load<Material>("UI/Material/Round10"));
|
||||
lineRender.material = Instantiate(Resources.Load<Material>("UI/Material/1"));
|
||||
var dat = feat.Points[0];
|
||||
lineRender.endColor = Color.white;
|
||||
lineRender.startColor = Color.white;
|
||||
//设置宽度
|
||||
lineRender.startWidth = 8f;
|
||||
lineRender.endWidth = 8f;
|
||||
lineRender.startWidth = 10f;
|
||||
lineRender.endWidth = 10f;
|
||||
lineRender.positionCount = dat.Count;
|
||||
lineRender.SetPositions(feat.Points[0].ToArray());
|
||||
lineRender.numCornerVertices = 30;
|
||||
lineRender.numCornerVertices = 20;
|
||||
lineRender.numCapVertices = 20;
|
||||
lineRender.loop = false;
|
||||
_mipMapRoute.layer = 9;
|
||||
}
|
||||
|
||||
@@ -28,12 +28,13 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
{
|
||||
text.text = string.Format(format, totalDistance);
|
||||
index = currentIndex;
|
||||
mOldScore = (float)totalDistance;
|
||||
}
|
||||
else
|
||||
{
|
||||
mScoreSequence.Append(DOTween.To(delegate (float value)
|
||||
{
|
||||
if (value != newScore)
|
||||
//if (value != newScore)
|
||||
{
|
||||
temp = Math.Round(value, digit);
|
||||
//向Text组件赋值
|
||||
|
||||
@@ -7,17 +7,21 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
public class PlayerController : AbstractPlayer
|
||||
{
|
||||
#region 骑行逻辑
|
||||
TrailRenderer trail;
|
||||
|
||||
protected override void Init()
|
||||
protected override void Init()
|
||||
{
|
||||
base.Init();
|
||||
totalDistance = mainController.selectParamModel.EndDistance;
|
||||
currentlatlong = mainController.GetCenterCoordinate();
|
||||
TrailRenderer trail = FindObjectOfType<TrailRenderer>();
|
||||
trail = FindObjectOfType<TrailRenderer>();
|
||||
trail.startWidth = 1f;
|
||||
trail.endWidth = 1f;
|
||||
trail.startColor = new Color(0.9764706f, 0.1882353f, 0.5254902f, 0.65f);
|
||||
trail.endColor = new Color(0.9764706f, 0.1882353f, 0.5254902f, 0.65f);
|
||||
trail.startColor = new Color(0.9764706f, 0.1882353f, 0.5254902f, 1f);
|
||||
trail.endColor = new Color(0.9764706f, 0.1882353f, 0.5254902f, 1f);
|
||||
//var color7 = Resources.Load<Material>("UI/Material/color7");
|
||||
//var Graph2 = Resources.Load<Material>("UI/Material/3dGraph2");
|
||||
//trail.materials = new Material[] { color7};
|
||||
}
|
||||
TargetData targetData;
|
||||
/// <summary>
|
||||
@@ -41,6 +45,9 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
speed = Helper.CalculateSpeed(elevation, currentSlope, power, weight, bicycleWeight);
|
||||
distance = mainController.UpdateDistance(speed);
|
||||
totalDistance += distance;
|
||||
|
||||
//preDistance EndDistance
|
||||
|
||||
if (!stopRecord)
|
||||
{
|
||||
//记录骑行数据
|
||||
@@ -58,7 +65,8 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
_Lon = currentlatlong.y,
|
||||
_TotalClimb = totalClimb,
|
||||
};
|
||||
|
||||
recorderData.PreDistance = TotalDistance-Distance;
|
||||
recorderData.EndDistance = TotalDistance;
|
||||
recorderData.RiderDatas.Add(targetData);
|
||||
}
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
Material _material;
|
||||
[SerializeField]
|
||||
[Range(1, 10)]
|
||||
private float UpdateFrequency = 1;
|
||||
private float UpdateFrequency = 0.1f;
|
||||
|
||||
private int _counter;
|
||||
|
||||
@@ -31,6 +31,8 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
CyclingController cyclingCotroller;
|
||||
private bool initComplete = false;
|
||||
|
||||
private List<Vector3> vector3s = new List<Vector3>();
|
||||
|
||||
protected virtual void Awake()
|
||||
{
|
||||
if (_map == null)
|
||||
@@ -42,9 +44,14 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
|
||||
|
||||
|
||||
}
|
||||
private void Update()
|
||||
{
|
||||
if(!vector3s.Contains(playerController.currentPos))
|
||||
vector3s.Add(playerController.currentPos);
|
||||
}
|
||||
|
||||
private void _map_OnUpdated()
|
||||
private void _map_OnUpdated()
|
||||
{
|
||||
Debug.Log("_map_OnUpdated");
|
||||
}
|
||||
@@ -120,12 +127,14 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
decimal diffAbs = Math.Abs(diff);
|
||||
if (diffAbs <= 200)
|
||||
{
|
||||
dat.Add(item);
|
||||
if (!dat.Contains(item))
|
||||
dat.Add(item);
|
||||
}
|
||||
if (diff <= 0 && diff > -200)
|
||||
{
|
||||
item.y += 0.15f;
|
||||
path.Add(item);
|
||||
if (!dat.Contains(item))
|
||||
path.Add(item);
|
||||
}
|
||||
}
|
||||
var feat = new VectorFeatureUnity();
|
||||
@@ -191,7 +200,8 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
_directionsGO = new GameObject("MapRoute");
|
||||
_directionsGO.transform.parent = transform;
|
||||
var lineRender = _directionsGO.AddComponent<LineRenderer>();
|
||||
lineRender.material = new Material(Shader.Find("Sprites/Default"));
|
||||
//lineRender.material = new Material(Shader.Find("Sprites/Default"));
|
||||
lineRender.material = Resources.Load<Material>("UI/Material/color8");
|
||||
var dat = feat.Points[0];
|
||||
ColorUtility.TryParseHtmlString("#FF2742", out Color c);
|
||||
lineRender.endColor = new Color(1,1,1,0.65f);
|
||||
@@ -203,7 +213,7 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
lineRender.positionCount = dat.Count;
|
||||
lineRender.SetPositions(feat.Points[0].ToArray());
|
||||
lineRender.loop = false;
|
||||
//lineRender.numCapVertices = 10;
|
||||
lineRender.numCapVertices = 10;
|
||||
lineRender.numCornerVertices = 10;
|
||||
|
||||
|
||||
@@ -218,8 +228,10 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
_pathRoute = new GameObject("MapPathRoute");
|
||||
_pathRoute.transform.parent = transform;
|
||||
var lineRender = _pathRoute.AddComponent<LineRenderer>();
|
||||
lineRender.material = new Material(Shader.Find("Sprites/Default"));
|
||||
//lineRender.material = Resources.Load<Material>("UI/Material/lineStyle9");
|
||||
//lineRender.material = new Material(Shader.Find("Sprites/Default"));
|
||||
var color7 = Resources.Load<Material>("UI/Material/color7");
|
||||
var Graph2 = Resources.Load<Material>("UI/Material/3dGraph2");
|
||||
lineRender.materials = new Material[] { color7, Graph2 };
|
||||
lineRender.endColor = new Color(0.9764706f, 0.1882353f, 0.5254902f, 0.65f);
|
||||
lineRender.startColor = new Color(0.9764706f, 0.1882353f, 0.5254902f, 0.65f);
|
||||
|
||||
@@ -228,8 +240,8 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
lineRender.endWidth = 1f;
|
||||
lineRender.positionCount = feat.Count;
|
||||
lineRender.SetPositions(feat.ToArray());
|
||||
//lineRender.loop = false;
|
||||
lineRender.numCapVertices = 10;
|
||||
lineRender.loop = false;
|
||||
//lineRender.numCapVertices = 10;
|
||||
lineRender.numCornerVertices = 10;
|
||||
//
|
||||
lineRender.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
|
||||
|
||||
@@ -10,6 +10,7 @@ using System.Collections.Generic;
|
||||
using UnityEngine.EventSystems;
|
||||
using ChartAndGraph;
|
||||
using Assets.Scripts;
|
||||
using Assets.Scripts.Apis.Models;
|
||||
|
||||
namespace Assets.Scenes.Ride.Scripts
|
||||
{
|
||||
@@ -60,7 +61,7 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
Button closeQuitButton;//退出panel关闭按钮
|
||||
|
||||
RawImage head;//海拔图头像
|
||||
RawImage miniMap;//小地图
|
||||
GameObject miniMap;//小地图
|
||||
RawImage altitudeGraph;//海拔图
|
||||
Image leftImage;
|
||||
Image rightImage;
|
||||
@@ -97,6 +98,8 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
|
||||
Image nextSlopeImage;
|
||||
Image currentSlopeImage;
|
||||
Image miniMapProcess;
|
||||
Text miniMapProcessText;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
@@ -131,7 +134,7 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
head = transform.Find("Panel/GraphChart/HeadPanel/Head").GetComponent<RawImage>();
|
||||
headPanel = transform.Find("Panel/GraphChart/HeadPanel").gameObject;
|
||||
t = transform.Find("Panel/GraphChart/Button");
|
||||
miniMap = transform.Find("Panel/MiniMap").GetComponent<RawImage>();
|
||||
miniMap = transform.Find("Panel/MiniMap").gameObject;
|
||||
|
||||
alertPanel = transform.Find("Panel/Alert").gameObject;
|
||||
|
||||
@@ -176,6 +179,9 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
straightSmall = Resources.Load<Sprite>("Images/Ride/straight-small");
|
||||
|
||||
target = transform.parent.Find("Target").gameObject;
|
||||
//小地图进度
|
||||
miniMapProcess = transform.Find("Panel/MiniMap/Process").GetComponent<Image>();
|
||||
miniMapProcessText = transform.Find("Panel/MiniMap/Process/Text").GetComponent<Text>();
|
||||
|
||||
UIManager.AddEvent(startBtn.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, StartRide);
|
||||
UIManager.AddEvent(simpleBtn.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, ClearPanel);
|
||||
@@ -239,21 +245,24 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
fps.text = (1 / Time.deltaTime).ToString();
|
||||
time = 1;
|
||||
}
|
||||
CountDown();
|
||||
MoveCamera();
|
||||
CountDown();
|
||||
|
||||
}
|
||||
private float cameraX = 0;
|
||||
private float cameraY = 0;
|
||||
private float cameraZ = 0;
|
||||
|
||||
Transform player;
|
||||
MapRoute routeInstance;
|
||||
private void Init()
|
||||
{
|
||||
playerController = FindObjectOfType<PlayerController>();
|
||||
mainController = FindObjectOfType<CyclingController>();
|
||||
|
||||
player = transform.parent.Find("Player");
|
||||
var route = mainController.GetRoute();
|
||||
mapName.text = route.RouteInstance.Name;
|
||||
var camera = route.RouteInstance.Camera;
|
||||
routeInstance = route.RouteInstance;
|
||||
mapName.text = routeInstance.Name;
|
||||
var camera = routeInstance.Camera;
|
||||
if (!string.IsNullOrEmpty(camera))
|
||||
{
|
||||
var cameraArr = camera.Split(',');
|
||||
@@ -311,20 +320,25 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
nearByPanel.SetActive(true);
|
||||
}
|
||||
}
|
||||
Vector3 m = new Vector3(0.1f, 0.1f, 0.1f);
|
||||
|
||||
//移动摄像头和箭头位置
|
||||
private void MoveCamera()
|
||||
{
|
||||
if (target != null)
|
||||
{
|
||||
target.transform.position = playerController.transform.position; //new Vector3((float)Math.Round(player.transform.position.x,1), 0, (float)Math.Round(player.transform.position.z,1));
|
||||
target.transform.position = playerController.currentPos; //player.transform.position;// new Vector3((float)Math.Round(player.transform.position.x,1), 0, (float)Math.Round(player.transform.position.z,1));
|
||||
if (!mainController.Is3dView)
|
||||
{ //target.transform.rotation = playerController.transform.rotation;//new Quaternion(playerController.transform.rotation.x, playerController.transform.rotation.y +1f, playerController.transform.rotation.z, playerController.transform.rotation.w);
|
||||
target.transform.eulerAngles = new Vector3(0, playerController.transform.eulerAngles.y + 160f, 0);
|
||||
mainController.player.transform.localScale = new Vector3(0.1f, 0.1f, 0.1f);
|
||||
{
|
||||
Vector3 v = Vector3.zero;
|
||||
v.y += playerController.currentRotation.eulerAngles.y + 160f; //target.transform.rotation = playerController.transform.rotation;//new Quaternion(playerController.transform.rotation.x, playerController.transform.rotation.y +1f, playerController.transform.rotation.z, playerController.transform.rotation.w);
|
||||
target.transform.eulerAngles = v; //.Set(0, playerController.currentRotation.eulerAngles.y + 160f, 0);// = new Vector3(0, playerController.transform.eulerAngles.y + 160f, 0);
|
||||
//mainController.player.transform.localScale.Set(0.1f, 0.1f, 0.1f);
|
||||
player.transform.localScale = m;
|
||||
}
|
||||
else
|
||||
{
|
||||
target.transform.eulerAngles = new Vector3(cameraX, cameraY, cameraZ);
|
||||
target.transform.eulerAngles.Set(cameraX, cameraY, cameraZ);// = new Vector3(cameraX, cameraY, cameraZ);
|
||||
}
|
||||
//控制照片移动
|
||||
((RectTransform)arrow.transform).position = Camera.main.WorldToScreenPoint(target.transform.position);
|
||||
@@ -383,6 +397,10 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
currentSlopeText.text = Math.Round(playerController.CurrentSlope, 1).ToString() + "%";
|
||||
currentSlopeDistanceText.GetComponent<NumberDotween>().AnimateNum((float)playerController.CurrentSlopeDistance, Math.Round(playerController.CurrentDistance, 0), playerController.CurrentIndex, 0, "{0}M");
|
||||
totalClimb.text = Math.Round(playerController.TotalClimb, 0).ToString();
|
||||
//小地图进度
|
||||
var process = (float)(playerController.TotalDistance / routeInstance.Distance);
|
||||
miniMapProcess.fillAmount = process;
|
||||
miniMapProcessText.text = $"{process*100:f0}%";
|
||||
//动态改变坡度图片
|
||||
if (playerController.CurrentSlope >= 1)
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user