ar Demo完善
This commit is contained in:
parent
9552fed2e0
commit
158fab27ab
@ -54,13 +54,11 @@ namespace Assets.AR
|
|||||||
{
|
{
|
||||||
PositionOffset = Vector3.up * route.CameraHeight * (-1);
|
PositionOffset = Vector3.up * route.CameraHeight * (-1);
|
||||||
Quaternion cameraRotation = this.GetCameraRotation(this.frame - this.FrameIndexDistanceCorrection);
|
Quaternion cameraRotation = this.GetCameraRotation(this.frame - this.FrameIndexDistanceCorrection);
|
||||||
Vector3 filteredCameraPosition = this.GetFilteredCameraPosition(this.frame + this.FrameIndexDistanceCorrection);
|
Vector3 filteredCameraPosition = this.GetFilteredCameraPosition(this.frame - this.FrameIndexDistanceCorrection);
|
||||||
|
Debug.Log(FrameIndexDistanceCorrection);
|
||||||
|
|
||||||
Debug.Log($"{filteredCameraPosition}={this.CameraPositionOffset}:{this.Route.GetFilteredCameraPosition(this.frame )}");
|
|
||||||
|
|
||||||
Vector3 vector3 = Vector3.left * (this.route.LeftHanded ? -1f : 1f) * (this.LaneWidth * (this.Lane + this.LaneCamera) - this.BaseOffset);
|
Vector3 vector3 = Vector3.left * (this.route.LeftHanded ? -1f : 1f) * (this.LaneWidth * (this.Lane + this.LaneCamera) - this.BaseOffset);
|
||||||
this.transform.position = filteredCameraPosition + cameraRotation * (vector3 + this.PositionOffset);
|
var targetPos = filteredCameraPosition + cameraRotation * (vector3 + this.PositionOffset);
|
||||||
|
this.transform.position = targetPos;
|
||||||
this.transform.rotation = cameraRotation * Quaternion.Euler(this.RotationOffset) * Quaternion.Euler(this.Lean);
|
this.transform.rotation = cameraRotation * Quaternion.Euler(this.RotationOffset) * Quaternion.Euler(this.Lean);
|
||||||
this.transform.localScale = this.Scale;
|
this.transform.localScale = this.Scale;
|
||||||
|
|
||||||
|
|||||||
@ -28,6 +28,8 @@ namespace Assets.AR
|
|||||||
|
|
||||||
private float FrameRate = 29.97f;
|
private float FrameRate = 29.97f;
|
||||||
|
|
||||||
|
public ARObjectTimeTransform[] TimeTransforms { get; set; }
|
||||||
|
|
||||||
public string CustomUrl { get; set; }
|
public string CustomUrl { get; set; }
|
||||||
|
|
||||||
public string ArName { get; set; }
|
public string ArName { get; set; }
|
||||||
@ -64,6 +66,9 @@ namespace Assets.AR
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public float DeltaDistance { get; set; }
|
||||||
|
public float PreDistance { get; set; }
|
||||||
|
|
||||||
public float Distance
|
public float Distance
|
||||||
{
|
{
|
||||||
get => this.distance;
|
get => this.distance;
|
||||||
@ -86,7 +91,35 @@ namespace Assets.AR
|
|||||||
this.transform.position = filteredCameraPosition + cameraRotation * this.PositionOffset;
|
this.transform.position = filteredCameraPosition + cameraRotation * this.PositionOffset;
|
||||||
this.transform.localScale = this.Scale;
|
this.transform.localScale = this.Scale;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void UpdateByTimeDefinitions(float currentFrame)
|
||||||
|
{
|
||||||
|
if (this.TimeTransforms == null || this.TimeTransforms.Length == 0)
|
||||||
|
return;
|
||||||
|
if (this.nextTimeDefIndex > this.TimeTransforms.Length - 1)
|
||||||
|
this.nextTimeDefIndex = 0;
|
||||||
|
if (this.nextTimeDefIndex > 0 && (double)this.TimeTransforms[this.nextTimeDefIndex - 1].Frame > (double)currentFrame)
|
||||||
|
this.nextTimeDefIndex = 0;
|
||||||
|
while (this.nextTimeDefIndex < this.TimeTransforms.Length - 1 && (double)this.TimeTransforms[this.nextTimeDefIndex].Frame <= (double)currentFrame)
|
||||||
|
++this.nextTimeDefIndex;
|
||||||
|
if (this.nextTimeDefIndex == 0)
|
||||||
|
{
|
||||||
|
this.Distance = this.TimeTransforms[0].Distance;
|
||||||
|
this.PositionOffset = this.TimeTransforms[0].PositionOffset;
|
||||||
|
this.Scale = this.TimeTransforms[0].Scale;
|
||||||
|
this.RotationOffset = this.TimeTransforms[0].RotationOffset;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
float t = Mathf.Clamp01((currentFrame - (float)this.TimeTransforms[this.nextTimeDefIndex - 1].Frame) / (float)(this.TimeTransforms[this.nextTimeDefIndex].Frame - this.TimeTransforms[this.nextTimeDefIndex - 1].Frame));
|
||||||
|
this.Distance = Mathf.Lerp(this.TimeTransforms[this.nextTimeDefIndex - 1].Distance, this.TimeTransforms[this.nextTimeDefIndex].Distance, t);
|
||||||
|
this.PositionOffset = Vector3.Lerp(this.TimeTransforms[this.nextTimeDefIndex - 1].PositionOffset, this.TimeTransforms[this.nextTimeDefIndex].PositionOffset, t);
|
||||||
|
this.Scale = Vector3.Lerp(this.TimeTransforms[this.nextTimeDefIndex - 1].Scale, this.TimeTransforms[this.nextTimeDefIndex].Scale, t);
|
||||||
|
this.RotationOffset = Vector3.Lerp(this.TimeTransforms[this.nextTimeDefIndex - 1].RotationOffset, this.TimeTransforms[this.nextTimeDefIndex].RotationOffset, t);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void UpdateOffsets()
|
public void UpdateOffsets()
|
||||||
{
|
{
|
||||||
|
|||||||
13
Assets/AR/ARObjectTimeTransform.cs
Normal file
13
Assets/AR/ARObjectTimeTransform.cs
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace Assets.AR
|
||||||
|
{
|
||||||
|
public class ARObjectTimeTransform
|
||||||
|
{
|
||||||
|
public int Frame;
|
||||||
|
public float Distance;
|
||||||
|
public Vector3 PositionOffset;
|
||||||
|
public Vector3 RotationOffset;
|
||||||
|
public Vector3 Scale;
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Assets/AR/ARObjectTimeTransform.cs.meta
Normal file
11
Assets/AR/ARObjectTimeTransform.cs.meta
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 301eba5f832d14449ac634fb05589194
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -100,11 +100,17 @@ namespace Assets.AR
|
|||||||
arObject.CameraPositionOffset = this.cameraPositionOffset;
|
arObject.CameraPositionOffset = this.cameraPositionOffset;
|
||||||
if (arObject is ARLaneObject arLaneObject)
|
if (arObject is ARLaneObject arLaneObject)
|
||||||
arLaneObject.FrameIndexDistanceCorrection = this.FrameIndexDistanceCorrection;
|
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);
|
arObject.UpdateVisibility(videoFrame, visibilityRear, visibilityFront, this.IsMultilap);
|
||||||
bool flag = this.IsArObjectActive(arObject);
|
bool flag = this.IsArObjectActive(arObject);
|
||||||
//arObject.gameObject.SetActive(flag); TODO
|
arObject.gameObject.SetActive(flag);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,6 +6,7 @@ using System.Collections;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
namespace Assets.Scripts.Scenes.VideoRide
|
namespace Assets.Scripts.Scenes.VideoRide
|
||||||
{
|
{
|
||||||
@ -27,6 +28,8 @@ namespace Assets.Scripts.Scenes.VideoRide
|
|||||||
private Light arLight;
|
private Light arLight;
|
||||||
private Light arBackLight;
|
private Light arBackLight;
|
||||||
|
|
||||||
|
public Text Fps;
|
||||||
|
|
||||||
protected override void Start()
|
protected override void Start()
|
||||||
{
|
{
|
||||||
base.Start();
|
base.Start();
|
||||||
@ -69,7 +72,7 @@ namespace Assets.Scripts.Scenes.VideoRide
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
#if UNITY_EDITOR
|
||||||
float timers = 0f;
|
float timers = 1f;
|
||||||
double weight = 70;
|
double weight = 70;
|
||||||
double bikeWeight = 20;
|
double bikeWeight = 20;
|
||||||
|
|
||||||
@ -81,9 +84,12 @@ namespace Assets.Scripts.Scenes.VideoRide
|
|||||||
{
|
{
|
||||||
foreach (var item in rides)
|
foreach (var item in rides)
|
||||||
{
|
{
|
||||||
|
if (item.StartPosition == 1)
|
||||||
|
{
|
||||||
|
item.TestPower = new System.Random().Next(90, 120);
|
||||||
|
}
|
||||||
item.Speed = (float)(Assets.Scenes.Ride.Scripts.Helper.CalculateSpeed(0, 0, item.TestPower, weight, bikeWeight) / 3.6d);
|
item.Speed = (float)(Assets.Scenes.Ride.Scripts.Helper.CalculateSpeed(0, 0, item.TestPower, weight, bikeWeight) / 3.6d);
|
||||||
item.Distance += item.Speed;
|
item.DeltaDistance = item.Speed;
|
||||||
item.RouteDistance = item.Distance;
|
|
||||||
item.Route = Route;
|
item.Route = Route;
|
||||||
item.VideoSync = videoPointsSync;
|
item.VideoSync = videoPointsSync;
|
||||||
if (!this.riderObjects.ContainsKey(item.GetInstanceID()))
|
if (!this.riderObjects.ContainsKey(item.GetInstanceID()))
|
||||||
@ -92,11 +98,16 @@ namespace Assets.Scripts.Scenes.VideoRide
|
|||||||
|
|
||||||
timers += 1f;
|
timers += 1f;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.FollowedRiderId = 1;
|
|
||||||
this.UpdateCameraFollowDistance();
|
|
||||||
VideoPlayerControl.UpdateVideoPlaybackSpeed(mainObject.Speed, mainObject.distance-this.CameraDistance);
|
|
||||||
this.FrameIndexDistanceCorrection = this.VideoPlayerControl.FrameIndexDistanceCorrection;
|
this.FrameIndexDistanceCorrection = this.VideoPlayerControl.FrameIndexDistanceCorrection;
|
||||||
|
foreach (var item in rides)
|
||||||
|
{
|
||||||
|
item.Distance += item.DeltaDistance * Time.deltaTime;
|
||||||
|
item.RouteDistance += item.DeltaDistance * Time.deltaTime;
|
||||||
|
}
|
||||||
|
this.UpdateCameraFollowDistance();
|
||||||
|
VideoPlayerControl.UpdateVideoPlaybackSpeed(mainObject.Speed, mainObject.distance);
|
||||||
|
Fps.text = this.mediaPlayer.Control.GetCurrentTimeFrames().ToString();
|
||||||
|
this.FollowedRiderId = 1;
|
||||||
base.Update();
|
base.Update();
|
||||||
this.UpdateRidersVisibility();
|
this.UpdateRidersVisibility();
|
||||||
this.UpdateRidersLean();
|
this.UpdateRidersLean();
|
||||||
@ -141,10 +152,10 @@ namespace Assets.Scripts.Scenes.VideoRide
|
|||||||
//更新摄像机的位置
|
//更新摄像机的位置
|
||||||
private void UpdateCameraFollowDistance()
|
private void UpdateCameraFollowDistance()
|
||||||
{
|
{
|
||||||
this.RiderCameraDistance = RiderCameraDistance.Near;
|
this.RiderCameraDistance = RiderCameraDistance.Middle;
|
||||||
this.NearViewMode = this.RiderCameraDistance == RiderCameraDistance.Near;
|
this.NearViewMode = this.RiderCameraDistance == RiderCameraDistance.Near;
|
||||||
float cameraFollowDistance = GetCameraFollowDistance(this.RiderCameraDistance);
|
float cameraFollowDistance = GetCameraFollowDistance(this.RiderCameraDistance);
|
||||||
this.VideoPlayerControl.CameraFollowDistance = this.videoPlayer.IsRear ? cameraFollowDistance * -1f : cameraFollowDistance;
|
this.VideoPlayerControl.CameraFollowDistance = cameraFollowDistance;
|
||||||
}
|
}
|
||||||
protected override bool IsArObjectActive(ARObject arObject)
|
protected override bool IsArObjectActive(ARObject arObject)
|
||||||
{
|
{
|
||||||
@ -163,7 +174,7 @@ namespace Assets.Scripts.Scenes.VideoRide
|
|||||||
case RiderCameraDistance.FirstPerson:
|
case RiderCameraDistance.FirstPerson:
|
||||||
return 0.0f;
|
return 0.0f;
|
||||||
case RiderCameraDistance.Near:
|
case RiderCameraDistance.Near:
|
||||||
return 1.5f;
|
return 2.5f;
|
||||||
case RiderCameraDistance.Middle:
|
case RiderCameraDistance.Middle:
|
||||||
return 5f;
|
return 5f;
|
||||||
case RiderCameraDistance.Far:
|
case RiderCameraDistance.Far:
|
||||||
@ -252,32 +263,6 @@ namespace Assets.Scripts.Scenes.VideoRide
|
|||||||
riderObject.Lean = new Vector3(0.0f, y, z1);
|
riderObject.Lean = new Vector3(0.0f, y, z1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DateTime lastPlaybackSpeedChange = DateTime.UtcNow;
|
|
||||||
bool pausedByPlaybackSpeed = false;
|
|
||||||
bool pausedByTrainingPause = false;
|
|
||||||
float frame = 0f;
|
|
||||||
public bool SetPlaybackSpeed(float playbackSpeed)
|
|
||||||
{
|
|
||||||
if (this.mediaPlayer.Control.IsSeeking() || DateTime.UtcNow.Subtract(this.lastPlaybackSpeedChange).TotalSeconds < 1.0)
|
|
||||||
return false;
|
|
||||||
if ((double)playbackSpeed == 0.0 && !this.pausedByPlaybackSpeed)
|
|
||||||
{
|
|
||||||
this.pausedByPlaybackSpeed = true;
|
|
||||||
this.mediaPlayer.Pause();
|
|
||||||
}
|
|
||||||
else if ((double)playbackSpeed > 0.0 && this.pausedByPlaybackSpeed)
|
|
||||||
{
|
|
||||||
this.pausedByPlaybackSpeed = false;
|
|
||||||
if (!this.pausedByTrainingPause)
|
|
||||||
this.mediaPlayer.Play();
|
|
||||||
}
|
|
||||||
this.mediaPlayer.Control.SetPlaybackRate(playbackSpeed);
|
|
||||||
this.lastPlaybackSpeedChange = DateTime.UtcNow;
|
|
||||||
mediaPlayer.Play();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
//人物状态
|
//人物状态
|
||||||
private string ConfigPath = Application.streamingAssetsPath + "/newdirection.txt";
|
private string ConfigPath = Application.streamingAssetsPath + "/newdirection.txt";
|
||||||
|
|||||||
@ -65,18 +65,18 @@ namespace Assets.AR
|
|||||||
this.VideoPlayer.Seek((long)frame, true);
|
this.VideoPlayer.Seek((long)frame, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
//public void UnFixTime()
|
public void UnFixTime()
|
||||||
//{
|
{
|
||||||
// this.IsTimeFixed = false;
|
//this.IsTimeFixed = false;
|
||||||
// float videoFrameAtDistance = this.VideoSyncSource.GetVideoFrameAtDistance(this.RiderDistance.LapDistance);
|
//float videoFrameAtDistance = this.VideoSyncSource.GetVideoFrameAtDistance(this.RiderDistance.LapDistance);
|
||||||
// float num = this.VideoSyncSource.AverageVideoSpeed(videoFrameAtDistance, videoFrameAtDistance);
|
//float num = this.VideoSyncSource.AverageVideoSpeed(videoFrameAtDistance, videoFrameAtDistance);
|
||||||
// float playbackSpeed = (double)num != 0.0 ? this.RiderSpeed.Speed / num : 0.0f;
|
//float playbackSpeed = (double)num != 0.0 ? this.RiderSpeed.Speed / num : 0.0f;
|
||||||
// if (this.VideoPlayer.IsPaused)
|
//if (this.VideoPlayer.IsPaused)
|
||||||
// this.VideoPlayer.Resume();
|
// this.VideoPlayer.Resume();
|
||||||
// this.VideoPlayer.SetPlaybackSpeed(playbackSpeed);
|
//this.VideoPlayer.SetPlaybackSpeed(playbackSpeed);
|
||||||
// this.lastPlaybackSpeedChange = DateTime.UtcNow;
|
//this.lastPlaybackSpeedChange = DateTime.UtcNow;
|
||||||
// this.VideoPlayer.Seek((long)videoFrameAtDistance, true);
|
//this.VideoPlayer.Seek((long)videoFrameAtDistance, true);
|
||||||
//}
|
}
|
||||||
|
|
||||||
private void SkipVideoToDistance(float distance) => this.SkipVideoToFrame((long)this.VideoSyncSource.GetVideoFrameAtDistance(distance));
|
private void SkipVideoToDistance(float distance) => this.SkipVideoToFrame((long)this.VideoSyncSource.GetVideoFrameAtDistance(distance));
|
||||||
|
|
||||||
@ -96,7 +96,8 @@ namespace Assets.AR
|
|||||||
return;
|
return;
|
||||||
if ((double)this.VideoPlayer.CurrentFrame > (double)this.fixedTimeFrame)
|
if ((double)this.VideoPlayer.CurrentFrame > (double)this.fixedTimeFrame)
|
||||||
this.VideoPlayer.Pause();
|
this.VideoPlayer.Pause();
|
||||||
|
//if (this.VideoPlayer is RouvyVideoPlayer.RouvyVideoPlayer videoPlayer)
|
||||||
|
// videoPlayer.TargetFrame = this.fixedTimeFrame;
|
||||||
this.VideoPlayer.UpdateCurrentFrame();
|
this.VideoPlayer.UpdateCurrentFrame();
|
||||||
this.FrameIndexDistanceCorrection = 0.0f;
|
this.FrameIndexDistanceCorrection = 0.0f;
|
||||||
}
|
}
|
||||||
@ -104,15 +105,15 @@ namespace Assets.AR
|
|||||||
{
|
{
|
||||||
float videoFrameAtDistance1 = this.VideoSyncSource.GetVideoFrameAtDistance(routeDistance);
|
float videoFrameAtDistance1 = this.VideoSyncSource.GetVideoFrameAtDistance(routeDistance);
|
||||||
float val2 = routeDistance - this.CameraFollowDistance;
|
float val2 = routeDistance - this.CameraFollowDistance;
|
||||||
//if (this.IsMultilap && (double)this.RiderDistance.RouteDistance > (double)distance && (double)val2 < 0.0)
|
//if (this.IsMultilap && (double)this.RiderDistance.RouteDistance > (double)this.RiderDistance.LapDistance && (double)val2 < 0.0)
|
||||||
// val2 += (float)this.lapLength;
|
// val2 += (float)this.lapLength;
|
||||||
float distance = Math.Max(0.0f, val2);
|
float distance = Math.Max(0.0f, val2);
|
||||||
float frame = this.VideoSyncSource.GetVideoFrameAtDistance(distance) + (float)this.VideoFrameOffset;
|
float frame = this.VideoSyncSource.GetVideoFrameAtDistance(distance) + (float)this.VideoFrameOffset;
|
||||||
if (this.Route != null && (double)this.Route.GetVisibility(frame) > 10.0)
|
if (this.Route != null && (double)this.Route.GetVisibility(frame) > 10.0)
|
||||||
frame = (float)this.Route.GetFrameAtDistance(Math.Max(0.0, this.Route.GetDistanceForFrame((double)videoFrameAtDistance1) - (double)this.CameraFollowDistance)) + (float)this.VideoFrameOffset;
|
frame = (float)this.Route.GetFrameAtDistance(Math.Max(0.0, this.Route.GetDistanceForFrame((double)videoFrameAtDistance1) - (double)this.CameraFollowDistance)) + (float)this.VideoFrameOffset;
|
||||||
|
//if (this.VideoPlayer is RouvyLib.Video.RouvyVideoPlayer.RouvyVideoPlayer videoPlayer)
|
||||||
|
// videoPlayer.TargetFrame = frame;
|
||||||
this.VideoPlayer.UpdateCurrentFrame();
|
this.VideoPlayer.UpdateCurrentFrame();
|
||||||
|
|
||||||
float distanceForVideoFrame = this.VideoSyncSource.GetDistanceForVideoFrame(this.VideoPlayer.CurrentFrame - (float)this.VideoFrameOffset);
|
float distanceForVideoFrame = this.VideoSyncSource.GetDistanceForVideoFrame(this.VideoPlayer.CurrentFrame - (float)this.VideoFrameOffset);
|
||||||
float f;
|
float f;
|
||||||
if (this.Route != null)
|
if (this.Route != null)
|
||||||
@ -142,11 +143,18 @@ namespace Assets.AR
|
|||||||
return;
|
return;
|
||||||
float num3 = 1f;
|
float num3 = 1f;
|
||||||
float num4 = num3 * speed;
|
float num4 = num3 * speed;
|
||||||
if ((double)Math.Abs(distance + num4 - this.VideoSyncSource.GetDistanceForVideoFrame((float)((double)this.VideoPlayer.CurrentFrame - (double)this.VideoFrameOffset + (double)num3 * (double)this.VideoPlayer.PlaybackSpeed * (double)this.VideoPlayer.FrameRate))) <= (double)Math.Abs(this.CameraDistanceError))
|
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;
|
return;
|
||||||
float videoFrameAtDistance2 = this.VideoSyncSource.GetVideoFrameAtDistance(routeDistance + num4);
|
float videoFrameAtDistance2 = this.VideoSyncSource.GetVideoFrameAtDistance(routeDistance + num4);
|
||||||
float num5 = this.VideoSyncSource.AverageVideoSpeed(videoFrameAtDistance1, videoFrameAtDistance2);
|
float num5 = this.VideoSyncSource.AverageVideoSpeed(videoFrameAtDistance1, videoFrameAtDistance2);
|
||||||
float playbackSpeed = Mathf.Clamp(((double)num5 != 0.0 ? speed / num5 : 0.0f) + (float)(((double)frame - ((double)this.VideoPlayer.CurrentFrame - (double)this.VideoFrameOffset)) / 2.0) / this.VideoPlayer.FrameRate, 0.0f, 1.5f);
|
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);
|
||||||
|
|
||||||
if ((double)playbackSpeed == (double)this.VideoPlayer.PlaybackSpeed || !this.VideoPlayer.SetPlaybackSpeed(playbackSpeed))
|
if ((double)playbackSpeed == (double)this.VideoPlayer.PlaybackSpeed || !this.VideoPlayer.SetPlaybackSpeed(playbackSpeed))
|
||||||
return;
|
return;
|
||||||
this.lastPlaybackSpeedChange = DateTime.UtcNow;
|
this.lastPlaybackSpeedChange = DateTime.UtcNow;
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -650,7 +650,7 @@ GameObject:
|
|||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
m_IsActive: 0
|
m_IsActive: 1
|
||||||
--- !u!4 &8136284
|
--- !u!4 &8136284
|
||||||
Transform:
|
Transform:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -978,7 +978,7 @@ MonoBehaviour:
|
|||||||
RotationOffset: {x: 0, y: 0, z: 0}
|
RotationOffset: {x: 0, y: 0, z: 0}
|
||||||
Scale: {x: 1, y: 1, z: 1}
|
Scale: {x: 1, y: 1, z: 1}
|
||||||
StartPosition: 4
|
StartPosition: 4
|
||||||
TestPower: 203
|
TestPower: 103
|
||||||
--- !u!95 &8136286
|
--- !u!95 &8136286
|
||||||
Animator:
|
Animator:
|
||||||
serializedVersion: 3
|
serializedVersion: 3
|
||||||
@ -14361,7 +14361,7 @@ MonoBehaviour:
|
|||||||
_audioVolume: 1
|
_audioVolume: 1
|
||||||
_audioBalance: 0
|
_audioBalance: 0
|
||||||
_audioMuted: 0
|
_audioMuted: 0
|
||||||
_playbackRate: 1
|
_playbackRate: 0
|
||||||
_useResampler: 0
|
_useResampler: 0
|
||||||
_resampleMode: 0
|
_resampleMode: 0
|
||||||
_resampleBufferSize: 5
|
_resampleBufferSize: 5
|
||||||
@ -62724,7 +62724,7 @@ GameObject:
|
|||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
m_IsActive: 0
|
m_IsActive: 1
|
||||||
--- !u!4 &1226145777
|
--- !u!4 &1226145777
|
||||||
Transform:
|
Transform:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -72394,6 +72394,105 @@ Transform:
|
|||||||
m_Father: {fileID: 1420124143}
|
m_Father: {fileID: 1420124143}
|
||||||
m_RootOrder: 215
|
m_RootOrder: 215
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &1403603460
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1403603461}
|
||||||
|
- component: {fileID: 1403603464}
|
||||||
|
- component: {fileID: 1403603463}
|
||||||
|
- component: {fileID: 1403603462}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Canvas
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &1403603461
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1403603460}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 0, y: 0, z: 0}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 1634791341}
|
||||||
|
m_Father: {fileID: 1870313947}
|
||||||
|
m_RootOrder: 8
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 0, y: 0}
|
||||||
|
m_Pivot: {x: 0, y: 0}
|
||||||
|
--- !u!114 &1403603462
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1403603460}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_IgnoreReversedGraphics: 1
|
||||||
|
m_BlockingObjects: 0
|
||||||
|
m_BlockingMask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
--- !u!114 &1403603463
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1403603460}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_UiScaleMode: 0
|
||||||
|
m_ReferencePixelsPerUnit: 100
|
||||||
|
m_ScaleFactor: 1
|
||||||
|
m_ReferenceResolution: {x: 800, y: 600}
|
||||||
|
m_ScreenMatchMode: 0
|
||||||
|
m_MatchWidthOrHeight: 0
|
||||||
|
m_PhysicalUnit: 3
|
||||||
|
m_FallbackScreenDPI: 96
|
||||||
|
m_DefaultSpriteDPI: 96
|
||||||
|
m_DynamicPixelsPerUnit: 1
|
||||||
|
--- !u!223 &1403603464
|
||||||
|
Canvas:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1403603460}
|
||||||
|
m_Enabled: 1
|
||||||
|
serializedVersion: 3
|
||||||
|
m_RenderMode: 0
|
||||||
|
m_Camera: {fileID: 0}
|
||||||
|
m_PlaneDistance: 100
|
||||||
|
m_PixelPerfect: 0
|
||||||
|
m_ReceivesEvents: 1
|
||||||
|
m_OverrideSorting: 0
|
||||||
|
m_OverridePixelPerfect: 0
|
||||||
|
m_SortingBucketNormalizedSize: 0
|
||||||
|
m_AdditionalShaderChannelsFlag: 0
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingOrder: 0
|
||||||
|
m_TargetDisplay: 0
|
||||||
--- !u!1 &1404615232
|
--- !u!1 &1404615232
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -72942,7 +73041,7 @@ GameObject:
|
|||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
m_IsActive: 0
|
m_IsActive: 1
|
||||||
--- !u!4 &1420124143
|
--- !u!4 &1420124143
|
||||||
Transform:
|
Transform:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -73270,7 +73369,7 @@ MonoBehaviour:
|
|||||||
RotationOffset: {x: 0, y: 0, z: 0}
|
RotationOffset: {x: 0, y: 0, z: 0}
|
||||||
Scale: {x: 1, y: 1, z: 1}
|
Scale: {x: 1, y: 1, z: 1}
|
||||||
StartPosition: 5
|
StartPosition: 5
|
||||||
TestPower: 0
|
TestPower: 111
|
||||||
--- !u!95 &1420124145
|
--- !u!95 &1420124145
|
||||||
Animator:
|
Animator:
|
||||||
serializedVersion: 3
|
serializedVersion: 3
|
||||||
@ -79066,7 +79165,7 @@ GameObject:
|
|||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
m_IsActive: 0
|
m_IsActive: 1
|
||||||
--- !u!4 &1536804448
|
--- !u!4 &1536804448
|
||||||
Transform:
|
Transform:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -79394,7 +79493,7 @@ MonoBehaviour:
|
|||||||
RotationOffset: {x: 0, y: 0, z: 0}
|
RotationOffset: {x: 0, y: 0, z: 0}
|
||||||
Scale: {x: 1, y: 1, z: 1}
|
Scale: {x: 1, y: 1, z: 1}
|
||||||
StartPosition: 2
|
StartPosition: 2
|
||||||
TestPower: 230
|
TestPower: 130
|
||||||
--- !u!95 &1536804450
|
--- !u!95 &1536804450
|
||||||
Animator:
|
Animator:
|
||||||
serializedVersion: 3
|
serializedVersion: 3
|
||||||
@ -84665,6 +84764,84 @@ Transform:
|
|||||||
m_Father: {fileID: 861686907}
|
m_Father: {fileID: 861686907}
|
||||||
m_RootOrder: 1
|
m_RootOrder: 1
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &1634791340
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1634791341}
|
||||||
|
- component: {fileID: 1634791343}
|
||||||
|
- component: {fileID: 1634791342}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Text
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &1634791341
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1634791340}
|
||||||
|
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: 1403603461}
|
||||||
|
m_RootOrder: 0
|
||||||
|
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: 391, y: 188}
|
||||||
|
m_SizeDelta: {x: 160, y: 30}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!114 &1634791342
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1634791340}
|
||||||
|
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: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_FontData:
|
||||||
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
|
m_FontSize: 14
|
||||||
|
m_FontStyle: 0
|
||||||
|
m_BestFit: 0
|
||||||
|
m_MinSize: 10
|
||||||
|
m_MaxSize: 40
|
||||||
|
m_Alignment: 0
|
||||||
|
m_AlignByGeometry: 0
|
||||||
|
m_RichText: 1
|
||||||
|
m_HorizontalOverflow: 0
|
||||||
|
m_VerticalOverflow: 0
|
||||||
|
m_LineSpacing: 1
|
||||||
|
m_Text: 0
|
||||||
|
--- !u!222 &1634791343
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1634791340}
|
||||||
|
m_CullTransparentMesh: 0
|
||||||
--- !u!1 &1635974442
|
--- !u!1 &1635974442
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -90812,7 +90989,7 @@ GameObject:
|
|||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
m_IsActive: 0
|
m_IsActive: 1
|
||||||
--- !u!4 &1756744835
|
--- !u!4 &1756744835
|
||||||
Transform:
|
Transform:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -91140,7 +91317,7 @@ MonoBehaviour:
|
|||||||
RotationOffset: {x: 0, y: 0, z: 0}
|
RotationOffset: {x: 0, y: 0, z: 0}
|
||||||
Scale: {x: 1, y: 1, z: 1}
|
Scale: {x: 1, y: 1, z: 1}
|
||||||
StartPosition: 3
|
StartPosition: 3
|
||||||
TestPower: 220
|
TestPower: 120
|
||||||
--- !u!95 &1756744837
|
--- !u!95 &1756744837
|
||||||
Animator:
|
Animator:
|
||||||
serializedVersion: 3
|
serializedVersion: 3
|
||||||
@ -97011,6 +97188,7 @@ Transform:
|
|||||||
- {fileID: 8136284}
|
- {fileID: 8136284}
|
||||||
- {fileID: 1420124143}
|
- {fileID: 1420124143}
|
||||||
- {fileID: 1226145777}
|
- {fileID: 1226145777}
|
||||||
|
- {fileID: 1403603461}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 3
|
m_RootOrder: 3
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
@ -97030,6 +97208,7 @@ MonoBehaviour:
|
|||||||
mediaPlayer: {fileID: 258588904}
|
mediaPlayer: {fileID: 258588904}
|
||||||
Player: {fileID: 2162915130482484497}
|
Player: {fileID: 2162915130482484497}
|
||||||
mainObject: {fileID: 1535700489348956076}
|
mainObject: {fileID: 1535700489348956076}
|
||||||
|
Fps: {fileID: 1634791342}
|
||||||
--- !u!1 &1871018623
|
--- !u!1 &1871018623
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user