阴影强度以及视频播放速度最大值
This commit is contained in:
parent
158fab27ab
commit
3c64109090
@ -49,16 +49,20 @@ namespace Assets.AR
|
|||||||
this.ambientIntensity = RenderSettings.ambientIntensity;
|
this.ambientIntensity = RenderSettings.ambientIntensity;
|
||||||
this.matShadow = Resources.Load<Material>("UI/Material/TransparentPlane");
|
this.matShadow = Resources.Load<Material>("UI/Material/TransparentPlane");
|
||||||
//this.matModelMask = Resources.Load<Material>("Materials/ModelDepth");
|
//this.matModelMask = Resources.Load<Material>("Materials/ModelDepth");
|
||||||
|
this.arObjects.Clear();
|
||||||
|
this.arObjects.AddRange(FindObjectsOfType<ARObject>());
|
||||||
|
SetupCamera();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual void SetupCamera()
|
protected virtual void SetupCamera()
|
||||||
{
|
{
|
||||||
this.camGo = new GameObject("ARCamera");
|
//this.camGo = new GameObject("ARCamera");
|
||||||
this.camGo.transform.parent = this.transform;
|
//this.camGo.transform.parent = this.transform;
|
||||||
this.UnityCamera = this.camGo.AddComponent<Camera>();
|
//this.UnityCamera = this.camGo.AddComponent<Camera>();
|
||||||
this.UnityCamera.cullingMask = 512;
|
//this.UnityCamera.cullingMask = 512;
|
||||||
this.UnityCamera.clearFlags = CameraClearFlags.Nothing;
|
//this.UnityCamera.clearFlags = CameraClearFlags.Nothing;
|
||||||
this.UnityCamera.depth = 1f;
|
//this.UnityCamera.depth = 1f;
|
||||||
|
this.UnityCamera = Camera.main;
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void SetArRoute(ARRoute route, VideoPointsSync videoSync,AVProVideoPlayer mediaPlayer)
|
public virtual void SetArRoute(ARRoute route, VideoPointsSync videoSync,AVProVideoPlayer mediaPlayer)
|
||||||
@ -125,8 +129,7 @@ namespace Assets.AR
|
|||||||
{
|
{
|
||||||
if (this.Route == null)
|
if (this.Route == null)
|
||||||
return;
|
return;
|
||||||
this.arObjects.Clear();
|
|
||||||
this.arObjects.AddRange(FindObjectsOfType<ARObject>());
|
|
||||||
float num1 = this.videoPlayer.CurrentFrame - (float)this.Route.VideoFrameOffset;
|
float num1 = this.videoPlayer.CurrentFrame - (float)this.Route.VideoFrameOffset;
|
||||||
{
|
{
|
||||||
this.cameraPositionOffset = this.Route.GetCameraPosition(num1) - this.CameraOriginOffset;
|
this.cameraPositionOffset = this.Route.GetCameraPosition(num1) - this.CameraOriginOffset;
|
||||||
|
|||||||
@ -211,6 +211,11 @@ namespace Assets
|
|||||||
return (double)index + num - 1.0;
|
return (double)index + num - 1.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public double GetTotalDistance()
|
||||||
|
{
|
||||||
|
return FrameDistances[FrameDistances.Length-1];
|
||||||
|
}
|
||||||
|
|
||||||
public double GetDistanceForFrame(double frame)
|
public double GetDistanceForFrame(double frame)
|
||||||
{
|
{
|
||||||
int index = (int)Math.Ceiling(frame);
|
int index = (int)Math.Ceiling(frame);
|
||||||
|
|||||||
@ -116,7 +116,7 @@ namespace Assets.AR
|
|||||||
this.afterFinishTime += Time.deltaTime;
|
this.afterFinishTime += Time.deltaTime;
|
||||||
this.afterFinishTime = Math.Min(5f, this.afterFinishTime);
|
this.afterFinishTime = Math.Min(5f, this.afterFinishTime);
|
||||||
num = Mathf.Lerp(this.finishPassSpeed, 0.0f, this.afterFinishTime / 5f);
|
num = Mathf.Lerp(this.finishPassSpeed, 0.0f, this.afterFinishTime / 5f);
|
||||||
//this.afterFinishFrame += num / videoSpeedAtDistance * Time.deltaTime * this.VideoPlayer.FrameRate;
|
this.afterFinishFrame += num / videoSpeedAtDistance * Time.deltaTime * 29.97f;
|
||||||
this.frame = Math.Min((float)(this.route.CameraPositions.Length - 1), this.videoSync.GetVideoFrameAtDistance(this.Distance) + this.afterFinishFrame);
|
this.frame = Math.Min((float)(this.route.CameraPositions.Length - 1), this.videoSync.GetVideoFrameAtDistance(this.Distance) + this.afterFinishFrame);
|
||||||
if ((double)this.frame == (double)(this.route.CameraPositions.Length - 1))
|
if ((double)this.frame == (double)(this.route.CameraPositions.Length - 1))
|
||||||
this.afterFinishOffsetZ += num * Time.deltaTime;
|
this.afterFinishOffsetZ += num * Time.deltaTime;
|
||||||
|
|||||||
@ -60,6 +60,23 @@ namespace Assets.Scripts.Scenes.VideoRide
|
|||||||
|
|
||||||
private void CreateBackLight()
|
private void CreateBackLight()
|
||||||
{
|
{
|
||||||
|
GameObject gameObject1 = new GameObject("ARLight");
|
||||||
|
gameObject1.layer = this.gameObject.layer;
|
||||||
|
gameObject1.transform.SetParent(this.transform);
|
||||||
|
this.arLight = gameObject1.AddComponent<Light>();
|
||||||
|
this.arLight.type = LightType.Directional;
|
||||||
|
this.arLight.transform.rotation = Quaternion.Euler(90f, 0.0f, 0.0f);
|
||||||
|
//if (this.BuildConfig.IsIOs || this.BuildConfig.IsTvOs)
|
||||||
|
//{
|
||||||
|
// this.arLight.shadows = LightShadows.Hard;
|
||||||
|
// this.arLight.shadowStrength = 0.5f;
|
||||||
|
//}
|
||||||
|
//else
|
||||||
|
{
|
||||||
|
this.arLight.shadows = LightShadows.Soft;
|
||||||
|
this.arLight.shadowStrength = 1f;
|
||||||
|
}
|
||||||
|
this.arLight.cullingMask = 512;
|
||||||
GameObject gameObject2 = new GameObject("ARBackLight");
|
GameObject gameObject2 = new GameObject("ARBackLight");
|
||||||
gameObject2.layer = this.gameObject.layer;
|
gameObject2.layer = this.gameObject.layer;
|
||||||
gameObject2.transform.SetParent(this.transform);
|
gameObject2.transform.SetParent(this.transform);
|
||||||
@ -86,10 +103,11 @@ namespace Assets.Scripts.Scenes.VideoRide
|
|||||||
{
|
{
|
||||||
if (item.StartPosition == 1)
|
if (item.StartPosition == 1)
|
||||||
{
|
{
|
||||||
item.TestPower = new System.Random().Next(90, 120);
|
item.TestPower = new System.Random().Next(500, 720);
|
||||||
}
|
}
|
||||||
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.DeltaDistance = item.Speed;
|
item.DeltaDistance = item.Speed;
|
||||||
|
|
||||||
item.Route = Route;
|
item.Route = Route;
|
||||||
item.VideoSync = videoPointsSync;
|
item.VideoSync = videoPointsSync;
|
||||||
if (!this.riderObjects.ContainsKey(item.GetInstanceID()))
|
if (!this.riderObjects.ContainsKey(item.GetInstanceID()))
|
||||||
@ -103,6 +121,10 @@ namespace Assets.Scripts.Scenes.VideoRide
|
|||||||
{
|
{
|
||||||
item.Distance += item.DeltaDistance * Time.deltaTime;
|
item.Distance += item.DeltaDistance * Time.deltaTime;
|
||||||
item.RouteDistance += item.DeltaDistance * Time.deltaTime;
|
item.RouteDistance += item.DeltaDistance * Time.deltaTime;
|
||||||
|
if (item.Distance >= Route.GetTotalDistance())
|
||||||
|
{
|
||||||
|
item.IsAtFinish = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
this.UpdateCameraFollowDistance();
|
this.UpdateCameraFollowDistance();
|
||||||
VideoPlayerControl.UpdateVideoPlaybackSpeed(mainObject.Speed, mainObject.distance);
|
VideoPlayerControl.UpdateVideoPlaybackSpeed(mainObject.Speed, mainObject.distance);
|
||||||
@ -111,7 +133,7 @@ namespace Assets.Scripts.Scenes.VideoRide
|
|||||||
base.Update();
|
base.Update();
|
||||||
this.UpdateRidersVisibility();
|
this.UpdateRidersVisibility();
|
||||||
this.UpdateRidersLean();
|
this.UpdateRidersLean();
|
||||||
|
this.UpdateBackLight();
|
||||||
if (Input.GetKeyDown(KeyCode.F))
|
if (Input.GetKeyDown(KeyCode.F))
|
||||||
this.SetVideoControlMode(VideoControlMode.Front);
|
this.SetVideoControlMode(VideoControlMode.Front);
|
||||||
if (Input.GetKeyDown(KeyCode.P))
|
if (Input.GetKeyDown(KeyCode.P))
|
||||||
@ -263,6 +285,23 @@ namespace Assets.Scripts.Scenes.VideoRide
|
|||||||
riderObject.Lean = new Vector3(0.0f, y, z1);
|
riderObject.Lean = new Vector3(0.0f, y, z1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//更新后背的光线
|
||||||
|
private void UpdateBackLight()
|
||||||
|
{
|
||||||
|
//if (this.SelectedPanorama != null)
|
||||||
|
//{
|
||||||
|
// this.arBackLight.transform.position = this.PanoramaCamera.transform.position;
|
||||||
|
// this.arBackLight.transform.rotation = this.PanoramaCamera.transform.rotation;
|
||||||
|
//}
|
||||||
|
//else
|
||||||
|
{
|
||||||
|
this.arBackLight.transform.position = this.UnityCamera.transform.position;
|
||||||
|
this.arBackLight.transform.rotation = this.UnityCamera.transform.rotation;
|
||||||
|
}
|
||||||
|
this.arLight.transform.rotation = this.Route.GetLightDirection(this.videoPlayer.CurrentFrame);
|
||||||
|
this.arLight.shadowStrength = this.Route.GetShadowIntensity(this.videoPlayer.CurrentFrame);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
//人物状态
|
//人物状态
|
||||||
private string ConfigPath = Application.streamingAssetsPath + "/newdirection.txt";
|
private string ConfigPath = Application.streamingAssetsPath + "/newdirection.txt";
|
||||||
|
|||||||
@ -153,8 +153,8 @@ namespace Assets.AR
|
|||||||
float num5 = this.VideoSyncSource.AverageVideoSpeed(videoFrameAtDistance1, videoFrameAtDistance2);
|
float num5 = this.VideoSyncSource.AverageVideoSpeed(videoFrameAtDistance1, videoFrameAtDistance2);
|
||||||
var ratio = ((double)num5 != 0.0 ? speed / num5 : 0.0f);
|
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;
|
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);
|
float playbackSpeed = Mathf.Clamp(ratio + deltaRatio, 0.0f, 1.8f);
|
||||||
|
Debug.Log(playbackSpeed);
|
||||||
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 it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user