Hide UI during play

master
D4VID 4 months ago
parent 5a0da3e28f
commit da60751b32

@ -1,7 +1,7 @@
ID: D4VID_CameraRoll ID: D4VID_CameraRoll
Name: CameraRoll Name: CameraRoll
Author: D4VID Author: D4VID
Version: 0.2.5 Version: 0.3.0
Priority: 0 Priority: 0
ClientOnly: true ClientOnly: true
Dependencies: Dependencies:

@ -1,11 +1,15 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Reflection;
using EccsLogicWorldAPI.Shared.AccessHelper;
using LogicLog; using LogicLog;
using LogicWorld;
using UnityEngine; using UnityEngine;
namespace CameraRoll.Client.Tool { namespace CameraRoll.Client.Tool {
public class CameraRollTool { public class CameraRollTool {
private static ILogicLogger _logger = null!; private static ILogicLogger _logger = null!;
private static Camera _cam; private static Camera _cam;
private static PropertyInfo _showBuildingUI;
/// <summary> /// <summary>
/// How fast does it interpolate between points /// How fast does it interpolate between points
@ -17,7 +21,7 @@ namespace CameraRoll.Client.Tool {
/// If the track is playing/animating/moving the camera /// If the track is playing/animating/moving the camera
/// </summary> /// </summary>
private static bool _playing; private static bool _playing;
// Backup of the original (local) position and rotation of the camera // Backup of the original (local) position and rotation of the camera
private static Vector3 _originalPosition; private static Vector3 _originalPosition;
private static Quaternion _originalRotation; private static Quaternion _originalRotation;
@ -38,6 +42,7 @@ namespace CameraRoll.Client.Tool {
_logger = logger; _logger = logger;
PathPoints.Clear(); PathPoints.Clear();
_playing = false; _playing = false;
_showBuildingUI = Properties.getPrivateStatic(typeof(FirstPersonInteraction), "ShowBuildingUI");
} }
public static void OnEnter() { public static void OnEnter() {
@ -65,7 +70,7 @@ namespace CameraRoll.Client.Tool {
point.SetActive(visible); point.SetActive(visible);
} }
} }
public static void Play() { public static void Play() {
if (_playing) return; if (_playing) return;
@ -75,8 +80,10 @@ namespace CameraRoll.Client.Tool {
_pointIndex = 0; _pointIndex = 0;
_interpolationState = 0.0f; _interpolationState = 0.0f;
SetPointsVisible(false); SetPointsVisible(false);
_showBuildingUI.SetValue(null, false); // Hide UI
_playing = true; _playing = true;
} }
@ -86,8 +93,9 @@ namespace CameraRoll.Client.Tool {
_cam.transform.localPosition = _originalPosition; _cam.transform.localPosition = _originalPosition;
_cam.transform.localRotation = _originalRotation; _cam.transform.localRotation = _originalRotation;
SetPointsVisible(true); SetPointsVisible(true);
_showBuildingUI.SetValue(null, true); // Show UI
} }
public static void Clear() { public static void Clear() {
@ -116,15 +124,15 @@ namespace CameraRoll.Client.Tool {
} }
_interpolationState += InterpolationSpeed; _interpolationState += InterpolationSpeed;
Vector3 prevPos = GetPos(_pointIndex - 1); Vector3 prevPos = GetPos(_pointIndex - 1);
Vector3 newPos = GetPos(_pointIndex); Vector3 newPos = GetPos(_pointIndex);
_cam.transform.position = Vector3.Lerp(prevPos , newPos, _interpolationState); _cam.transform.position = Vector3.Lerp(prevPos, newPos, _interpolationState);
Quaternion prevRot = GetRot(_pointIndex - 1); Quaternion prevRot = GetRot(_pointIndex - 1);
Quaternion newRot = GetRot(_pointIndex); Quaternion newRot = GetRot(_pointIndex);
_cam.transform.rotation = Quaternion.Slerp(prevRot, newRot, _interpolationState); _cam.transform.rotation = Quaternion.Slerp(prevRot, newRot, _interpolationState);
if (_interpolationState >= 1.0f) { if (_interpolationState >= 1.0f) {
_pointIndex++; _pointIndex++;
_interpolationState = 0.0f; _interpolationState = 0.0f;

Loading…
Cancel
Save