方法重命名

This commit is contained in:
lishuo 2023-02-20 18:31:59 +08:00
parent 46821d34a2
commit 71b6155946
7 changed files with 88 additions and 128 deletions

View File

@ -32,45 +32,45 @@ namespace Assets.AR
ARGameObjectFactory.CreateVertices(frame, route, lOffset, rOffset, out left, out right, margin);
if (ARGameObjectFactory.IsValidVertex(left) && ARGameObjectFactory.IsValidVertex(right))
{
Vector3[] vector3Array2 = vector3Array1;
int index1 = num2;
int num4 = index1 + 1;
Vector3 vector3_1 = left;
var vector3Array2 = vector3Array1;
var index1 = num2;
var num4 = index1 + 1;
var vector3_1 = left;
vector3Array2[index1] = vector3_1;
Vector3[] vector3Array3 = vector3Array1;
int index2 = num4;
var vector3Array3 = vector3Array1;
var index2 = num4;
num2 = index2 + 1;
Vector3 vector3_2 = right;
vector3Array3[index2] = vector3_2;
int[] numArray1 = indices;
int index3 = num3;
int num5 = index3 + 1;
int num6 = num2 - 3;
var numArray1 = indices;
var index3 = num3;
var num5 = index3 + 1;
var num6 = num2 - 3;
numArray1[index3] = num6;
int[] numArray2 = indices;
int index4 = num5;
int num7 = index4 + 1;
int num8 = num2 - 4;
var numArray2 = indices;
var index4 = num5;
var num7 = index4 + 1;
var num8 = num2 - 4;
numArray2[index4] = num8;
int[] numArray3 = indices;
int index5 = num7;
int num9 = index5 + 1;
int num10 = num2 - 1;
var numArray3 = indices;
var index5 = num7;
var num9 = index5 + 1;
var num10 = num2 - 1;
numArray3[index5] = num10;
int[] numArray4 = indices;
int index6 = num9;
int num11 = index6 + 1;
int num12 = num2 - 4;
var numArray4 = indices;
var index6 = num9;
var num11 = index6 + 1;
var num12 = num2 - 4;
numArray4[index6] = num12;
int[] numArray5 = indices;
int index7 = num11;
int num13 = index7 + 1;
int num14 = num2 - 2;
var numArray5 = indices;
var index7 = num11;
var num13 = index7 + 1;
var num14 = num2 - 2;
numArray5[index7] = num14;
int[] numArray6 = indices;
int index8 = num13;
var numArray6 = indices;
var index8 = num13;
num3 = index8 + 1;
int num15 = num2 - 1;
var num15 = num2 - 1;
numArray6[index8] = num15;
}
}

View File

@ -87,7 +87,7 @@ namespace Assets.AR
//this.trajectoryObject.layer = 9;
}
protected virtual void UpdateObjects(
protected virtual void UpdateGameObjects(
float videoFrame,
float visibilityRear,
float visibilityFront)
@ -97,22 +97,14 @@ namespace Assets.AR
arObject.CameraPositionOffset = this.cameraPositionOffset;
if (arObject is ARLaneGameObject arLaneObject)
arLaneObject.FrameIndexDistanceCorrection = this.FrameIndexDistanceCorrection;
//if (this.SelectedPanorama != null && (arObject.ObjectType == ARObjectType.Box || arObject.ObjectType == ARObjectType.Sphere))
//{
// arObject.gameObject.SetActive(false);
//}
//else
{
if (arObject.TimeTransforms != null && arObject.TimeTransforms.Length > 1)
arObject.UpdateByTimeDefinitions(videoFrame);
arObject.UpdateVisibility(videoFrame, visibilityRear, visibilityFront, this.IsMultilap);
bool flag = this.IsArObjectActive(arObject);
arObject.gameObject.SetActive(flag);
}
if (arObject.TimeTransforms != null && arObject.TimeTransforms.Length > 1)
arObject.UpdateByTimeDefinitions(videoFrame);
arObject.UpdateVisibility(videoFrame, visibilityRear, visibilityFront, this.IsMultilap);
bool flag = this.IsObjectActive(arObject);
}
}
protected virtual bool IsArObjectActive(ARGameObject arObject) => (double)arObject.VisibilityLevel > 0.0 ;
protected virtual bool IsObjectActive(ARGameObject arObject) => (double)arObject.VisibilityLevel > 0.0 ;
protected virtual Material GetTrajectoryMaterial() => this.matShadow;
@ -123,23 +115,23 @@ namespace Assets.AR
if (this.Route == null)
return;
float num1 = this.videoPlayer.CurrentFrame - (float)this.Route.VideoFrameOffset;
var num1 = this.videoPlayer.CurrentFrame - (float)this.Route.VideoFrameOffset;
{
this.cameraPositionOffset = this.Route.GetCameraPosition(num1) - this.CameraOriginOffset;
Camera.main.transform.position = this.CameraOriginOffset;
Camera.main.transform.rotation = this.Route.GetCameraRotation(num1);
UnityCamera.transform.position = this.CameraOriginOffset;
UnityCamera.transform.rotation = this.Route.GetCameraRotation(num1);
//this.Route.SetCameraProjection(num1, Camera.main); //TODO:暂时注释掉
}
this.CameraDistance = this.videoSync.GetDistanceForVideoFrame(num1 + this.FrameIndexDistanceCorrection);
float num2 = Mathf.Min(float.MaxValue, this.Route.GetVisibility(num1));
float num3 = num2;
float visibilityRear = 200f;
var num2 = Mathf.Min(float.MaxValue, this.Route.GetVisibility(num1));
var num3 = num2;
var visibilityRear = 200f;
if ((double)num3 == 0.0)
num3 = 600f;
if ((double)visibilityRear == 0.0)
visibilityRear = 600f;
this.UpdateTrajectory(num1, num3);//更新轨迹
this.UpdateObjects(num1, visibilityRear, num3);//更新骑手等位置
this.UpdateGameObjects(num1, visibilityRear, num3);//更新骑手等位置
}

View File

@ -1,5 +1,4 @@
using UnityEngine;
using DG.Tweening;
namespace Assets.AR
{
@ -56,9 +55,9 @@ namespace Assets.AR
public override void UpdateTransform()
{
PositionOffset = Vector3.up * route.CameraHeight * (-1);
Quaternion cameraRotation = this.GetCameraRotation(this.frame - this.FrameIndexDistanceCorrection);
Vector3 filteredCameraPosition = this.GetFilteredCameraPosition(this.frame - this.FrameIndexDistanceCorrection);
Vector3 vector3 = Vector3.left * (this.route.LeftHanded ? -1f : 1f) * (this.LaneWidth * (this.Lane + this.LaneCamera) - this.BaseOffset);
var cameraRotation = this.GetCameraRotation(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 targetPos = filteredCameraPosition + cameraRotation * (vector3 + this.PositionOffset);
this.transform.position = targetPos;
this.transform.rotation = cameraRotation * Quaternion.Euler(this.RotationOffset) * Quaternion.Euler(this.Lean);

View File

@ -37,12 +37,12 @@ namespace Assets.AR
this.RiderCountInStartRow = Mathf.Max(1, Mathf.CeilToInt(this.StartRegionRouteWidth / 0.7f));
}
protected override void UpdateObjects(
protected override void UpdateGameObjects(
float videoFrame,
float visibilityRear,
float visibilityFront)
{
base.UpdateObjects(videoFrame, visibilityRear, visibilityFront);//控制3d物体显示隐藏
base.UpdateGameObjects(videoFrame, visibilityRear, visibilityFront);//控制3d物体显示隐藏
if (this.Route == null || this.videoSync == null)
return;
this.DetectRidersCollisions(this.CameraDistance);//计算3d物体的位置和转向
@ -68,7 +68,7 @@ namespace Assets.AR
{
if ((double)collision.RouteDistance < 200.0)
{
collision.Distance = this.GetModelRouteDistance(collision.StartPosition, collision.RouteDistance);
collision.Distance = this.GetRouteDistance(collision.StartPosition, collision.RouteDistance);
collision.DistanceSort = collision.Distance;
}
}
@ -229,7 +229,7 @@ namespace Assets.AR
return startOffset;
}
public float GetModelRouteDistance(int startPosition, float routeDistance)
public float GetRouteDistance(int startPosition, float routeDistance)
{
if (!this.AllowStartOrder || (double)routeDistance >= 200.0)
return routeDistance;

View File

@ -143,7 +143,7 @@ namespace Assets.AR
this.FrameIndexDistanceCorrection = this.VideoPlayerControl.FrameIndexDistanceCorrection;
//this.FollowedRiderId = mainObject.Id;
this.UpdateCameraFollowDistance();
VideoPlayerControl.UpdateVideoPlaybackSpeed(mainRiderObject.PreSpeed, mainRiderObject.Distance);
VideoPlayerControl.UpdateVideoPlayRate(mainRiderObject.PreSpeed, mainRiderObject.Distance);
base.Update();
this.UpdateRidersVisibility();
this.UpdateRidersLean();
@ -207,9 +207,9 @@ namespace Assets.AR
this.VideoPlayerControl.CameraFollowDistance = cameraFollowDistance;
}
//人物是否显示
protected override bool IsArObjectActive(ARGameObject arObject)
protected override bool IsObjectActive(ARGameObject arObject)
{
bool flag = base.IsArObjectActive(arObject);
var flag = base.IsObjectActive(arObject);
if ((UnityEngine.Object)arObject != (UnityEngine.Object)this.mainRiderObject)
return flag;
if ((double)this.VideoPlayerControl.CameraFollowDistance > 0.0 || this.AR360Version)
@ -451,23 +451,18 @@ namespace Assets.AR
public int VisibleRiderTitlesLimit => this.VisibleModelsLimit + 10;
private void UpdateVisibleRiders()
{
float visibilityModels = ARGameObject.MaxDistanceVisibilityModels;
float visibilityDistance = this.MaximumVisibilityDistance;
float routeDistance = this.CameraDistance;
bool flag = this.AllowStartOrder && (double)routeDistance < 200.0;
float num1 = flag ? visibilityModels : visibilityDistance;
float a1 = this.videoPlayer.IsRear ? visibilityDistance : 1f;
int riderTitlesLimit = this.VisibleRiderTitlesLimit;
int a2 = 5;
//if (this.SelectedPanorama != null && this.RouteVideo.Rider != null)
//{
// routeDistance = this.GetModelRouteDistance(this.RouteVideo.Rider.Id, (float)this.RouteVideo.Rider.LapDistance);
// a1 = flag ? visibilityModels : visibilityDistance;
// a2 = riderTitlesLimit / 2;
//}
float num2 = Mathf.Max(a1, this.GetOvertakingThreshold(routeDistance) + 1f);
float distance1 = routeDistance - num2;
float distance2 = routeDistance + num1;
var visibilityModels = ARGameObject.MaxDistanceVisibilityModels;
var visibilityDistance = this.MaximumVisibilityDistance;
var routeDistance = this.CameraDistance;
var flag = this.AllowStartOrder && (double)routeDistance < 200.0;
var num1 = flag ? visibilityModels : visibilityDistance;
var a1 = this.videoPlayer.IsRear ? visibilityDistance : 1f;
var riderTitlesLimit = this.VisibleRiderTitlesLimit;
var a2 = 5;
var num2 = Mathf.Max(a1, this.GetOvertakingThreshold(routeDistance) + 1f);
var distance1 = routeDistance - num2;
var distance2 = routeDistance + num1;
float num3;
if (flag)
{
@ -475,33 +470,23 @@ namespace Assets.AR
}
else
{
float videoFrameAtDistance1 = this.videoSync.GetVideoFrameAtDistance(distance1);
float videoFrameAtDistance2 = this.videoSync.GetVideoFrameAtDistance(distance2);
var videoFrameAtDistance1 = this.videoSync.GetVideoFrameAtDistance(distance1);
var videoFrameAtDistance2 = this.videoSync.GetVideoFrameAtDistance(distance2);
num3 = (float)(0.5 * ((double)(this.Route.GetLeftSideOffset(videoFrameAtDistance1) + this.Route.GetRightSideOffset(videoFrameAtDistance1)) + (double)(this.Route.GetLeftSideOffset(videoFrameAtDistance2) + this.Route.GetRightSideOffset(videoFrameAtDistance2))));
}
float num4 = num3 / 0.7f;
float num5 = this.paused ? 0.0f : 0.5f;
float maxLane = Math.Max(0.0f, num4 - num5);
List<VisibleRiderItem> visibleRiderItemList1 = new List<VisibleRiderItem>();
List<VisibleRiderItem> visibleRiderItemList2 = new List<VisibleRiderItem>();
//if (this.SelectedPanorama == null || this.RouteVideo.Rider == null || this.RouteVideo.Rider.Id != this.panoramaRidersPivotId)
//{
// this.panoramaRiders = (List<IRouteRider>)null;
// this.panoramaRidersPivotId = -1;
//}
//if (this.panoramaRidersPivotId != -1 && this.riderObjects.ContainsKey(this.panoramaRidersPivotId) && ((!(this.riderObjects[this.panoramaRidersPivotId] is BaseRenderer riderObject) ? 0 : (riderObject.Paused ? 1 : 0)) != 0 || this.riders[this.panoramaRidersPivotId].Speed == 0.0))
//{
// this.panoramaRiders = (List<IRouteRider>)null;
// this.panoramaRidersPivotId = -1;
//}
var num4 = num3 / 0.7f;
var num5 = this.paused ? 0.0f : 0.5f;
var maxLane = Math.Max(0.0f, num4 - num5);
var visibleRiderItemList1 = new List<VisibleRiderItem>();
var visibleRiderItemList2 = new List<VisibleRiderItem>();
var routeRiders = this.riders.Values;
//if (this.SelectedPanorama != null && this.panoramaRiders != null)
// routeRiders = (IEnumerable<IRouteRider>)this.panoramaRiders;
foreach (var rider in routeRiders)
{
if (!rider.IsFinished)
{
float modelRouteDistance = this.GetModelRouteDistance(0, (float)rider.RouteDistance);
float modelRouteDistance = this.GetRouteDistance(0, (float)rider.RouteDistance);
float num6 = modelRouteDistance - routeDistance;
if (this.IsMultilap)
{
@ -558,14 +543,9 @@ namespace Assets.AR
visibleRiderItemList2.Sort((Comparison<VisibleRiderItem>)((p1, p2) => p1.DeltaDistance.CompareTo(p2.DeltaDistance)));
this.RemoveRidersOutside(visibleRiderItemList1, maxLane);
this.RemoveRidersOutside(visibleRiderItemList2, maxLane);
//if (this.GroupLeaderUserId > 0)
//{
// this.PrioritizeRider(visibleRiderItemList1, (Predicate<VisibleRiderItem>)(i => this.IsGroupLeader(i.Rider)));
// this.PrioritizeRider(visibleRiderItemList2, (Predicate<VisibleRiderItem>)(i => this.IsGroupLeader(i.Rider)));
//}
this.PrioritizeRider(visibleRiderItemList1, (Predicate<VisibleRiderItem>)(i => this.IsMainRider(i.Rider)));
this.PrioritizeRider(visibleRiderItemList2, (Predicate<VisibleRiderItem>)(i => this.IsMainRider(i.Rider)));
List<VisibleRiderItem> visibleRiderItemList3 = new List<VisibleRiderItem>();
var visibleRiderItemList3 = new List<VisibleRiderItem>();
if (!this.videoPlayer.IsRear)
{
int num8 = Mathf.Min(a2, visibleRiderItemList1.Count);
@ -606,12 +586,6 @@ namespace Assets.AR
}
}
this.VisibleModels = num12;
//if (this.SelectedPanorama == null || this.RouteVideo.Rider == null || this.panoramaRiders != null)
// return;
//this.panoramaRiders = new List<IRouteRider>();
//foreach (VisibleRiderItem visibleRiderItem in this.visibleRiders.Values)
// this.panoramaRiders.Add(visibleRiderItem.Rider);
//this.panoramaRidersPivotId = this.RouteVideo.Rider.Id;
}
private void PrioritizeRider(
@ -621,7 +595,7 @@ namespace Assets.AR
int index = list.FindIndex(predicate);
if (index == -1)
return;
VisibleRiderItem visibleRiderItem = list[index];
var visibleRiderItem = list[index];
list.RemoveAt(index);
list.Insert(0, visibleRiderItem);
}

View File

@ -82,7 +82,7 @@ namespace Assets.AR
private void SkipVideoToFrame(long frame) => this.VideoPlayer.Seek(frame);
public void UpdateVideoPlaybackSpeed(float speed, float routeDistance)
public void UpdateVideoPlayRate(float speed, float routeDistance)
{
if (!this.AllowUpdate)
return;
@ -138,22 +138,22 @@ namespace Assets.AR
}
else
{
double totalSeconds = DateTime.UtcNow.Subtract(this.lastPlaybackSpeedChange).TotalSeconds;
var totalSeconds = DateTime.UtcNow.Subtract(this.lastPlaybackSpeedChange).TotalSeconds;
if (totalSeconds >= 0.0 && totalSeconds < 0.20000000298023224)
return;
float num3 = (float)totalSeconds;
float num4 = num3 * speed;
var num3 = (float)totalSeconds;
var num4 = num3 * speed;
var offset = this.VideoSyncSource.GetDistanceForVideoFrame((float)((double)this.VideoPlayer.CurrentFrame - (double)this.VideoFrameOffset + (double)num3 * (double)this.VideoPlayer.PlaybackSpeed * (double)this.VideoPlayer.FrameRate));
var left = (double)Math.Abs(distance + num4 - offset);
var right = (double)Math.Abs(this.CameraDistanceError);
if (left <= right)
return;
float videoFrameAtDistance2 = this.VideoSyncSource.GetVideoFrameAtDistance(routeDistance + num4);
float num5 = this.VideoSyncSource.AverageVideoSpeed(videoFrameAtDistance1, videoFrameAtDistance2);
var videoFrameAtDistance2 = this.VideoSyncSource.GetVideoFrameAtDistance(routeDistance + num4);
var num5 = this.VideoSyncSource.AverageVideoSpeed(videoFrameAtDistance1, videoFrameAtDistance2);
var ratio = ((double)num5 != 0.0 ? speed / num5 : 0.0f);
var deltaRatio = (float)(((double)frame - ((double)this.VideoPlayer.CurrentFrame - (double)this.VideoFrameOffset)) / 2.0) / this.VideoPlayer.FrameRate;
float playbackSpeed = Mathf.Clamp(ratio + deltaRatio, 0.0f, 1.5f);
var playbackSpeed = Mathf.Clamp(ratio + deltaRatio, 0.0f, 1.5f);
//Debug.Log(playbackSpeed);
if ((double)playbackSpeed == (double)this.VideoPlayer.PlaybackSpeed || !this.VideoPlayer.SetPlaybackSpeed(playbackSpeed))
return;
@ -161,10 +161,5 @@ namespace Assets.AR
}
}
}
internal void UpdateVideoPlaybackSpeed(double speed, float distance)
{
throw new NotImplementedException();
}
}
}

View File

@ -126,7 +126,7 @@ namespace Assets.Scripts.Scenes.VideoRide
}
}
this.UpdateCameraFollowDistance();
VideoPlayerControl.UpdateVideoPlaybackSpeed(mainObject.Speed, mainObject.distance);
VideoPlayerControl.UpdateVideoPlayRate(mainObject.Speed, mainObject.distance);
Fps.text = this.mediaPlayer.Control.GetCurrentTimeFrames().ToString();
this.FollowedRiderId = 1;
base.Update();
@ -163,12 +163,12 @@ namespace Assets.Scripts.Scenes.VideoRide
{
this.RiderCameraDistance = AR.CameraDistance.Middle;
this.NearViewMode = this.RiderCameraDistance == AR.CameraDistance.Near;
float cameraFollowDistance = GetCameraFollowDistance(this.RiderCameraDistance);
var cameraFollowDistance = GetCameraFollowDistance(this.RiderCameraDistance);
this.VideoPlayerControl.CameraFollowDistance = cameraFollowDistance;
}
protected override bool IsArObjectActive(ARGameObject arObject)
protected override bool IsObjectActive(ARGameObject arObject)
{
bool flag = base.IsArObjectActive(arObject);
var flag = base.IsObjectActive(arObject);
if ((UnityEngine.Object)arObject != (UnityEngine.Object)this.mainObject)
return flag;
if ((double)this.VideoPlayerControl.CameraFollowDistance > 0.0 || this.AR360Version)