变速箱修改

This commit is contained in:
2025-01-25 19:08:00 +08:00
parent 0f6d95466e
commit ea689da0dd
14 changed files with 1003 additions and 1113 deletions
@@ -182,17 +182,12 @@ namespace AibisDream.FixSystem
// 切换相机
yield return CameraKit.Instance.SwitchCamera(CameraEnum.Engine);
// 激活交互
engineSystem.EnableSystem();
}
public IEnumerator Exit()
{
var bodyModuleSystem = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
bodyModuleSystem.ResetPlug();
// 关闭交互
var engineSystem = FixSystemCenter.SystemDic.Get<EngineSystem>();
engineSystem.DisableSystem();
yield break;
}
}
+49 -5
View File
@@ -13,6 +13,7 @@ namespace AibisDream
public class EngineSystem : MonoBehaviour
{
private StaticGear _centerGear;
private SpriteRenderer _cover;
[Header("系统配置")] public EngineConfig engineConfig;
public bool isAvailable;
@@ -20,7 +21,9 @@ namespace AibisDream
private bool _isSuccess;
public float curSpeed;
public float targetSpeed=0.95f;
public float targetSpeed = 0.95f;
[SerializeField] private float coverMoveDuration = 5f;
[SerializeField] private float coverMoveDistance = 2.8f;
[HideInInspector] public UnityEvent<float, float> updateSpeedEvent = new();
private void Awake()
@@ -28,7 +31,8 @@ namespace AibisDream
FixSystemCenter.SystemDic.Register(this);
_centerGear = transform.Find("中央齿轮").GetComponent<StaticGear>();
_centerGear.initSpeed = engineConfig.gearSpeed;
_cover = transform.Find("Cover").GetComponent<SpriteRenderer>();
// 注册相机
var virtualCam = transform.Find("Engine Camera").GetComponentInChildren<ICinemachineCamera>();
CameraKit.Instance.RegisterCamera(CameraEnum.Engine, virtualCam);
@@ -74,7 +78,7 @@ namespace AibisDream
/// <summary>
/// 开启系统交互
/// </summary>
public void EnableSystem()
private void EnableSystem()
{
isAvailable = true;
}
@@ -82,10 +86,51 @@ namespace AibisDream
/// <summary>
/// 关闭系统交互
/// </summary>
public void DisableSystem()
private void DisableSystem()
{
isAvailable = false;
}
/// <summary>
/// 打开盖板
/// 关闭系统交互
/// </summary>
/// <returns>动画序列</returns>
public Tween OpenCover()
{
AudioManager.PlayLoop2Audio("amb_shitou_engine");
var sq = DOTween.Sequence();
// 盖板上移
var moveDis = new Vector3(0, coverMoveDistance, 0);
sq.Join(_cover.transform.DOBlendableMoveBy(moveDis, coverMoveDuration));
// 盖板淡出
sq.Join(_cover.DOFade(0, coverMoveDuration));
// 为引擎系统解锁
sq.OnComplete(EnableSystem);
return sq;
}
/// <summary>
/// 关闭盖板
/// </summary>
/// <returns>动画序列</returns>
public Tween CloseCover()
{
AudioManager.PauseLoop2Audio();
var sq = DOTween.Sequence();
sq.Join(_cover.DOFade(1, coverMoveDuration));
var moveDis = new Vector3(0, -coverMoveDistance, 0);
sq.Join(_cover.transform.DOBlendableMoveBy(moveDis, coverMoveDuration));
// 锁定引擎系统
sq.OnComplete(DisableSystem);
return sq;
}
}
[Serializable]
@@ -94,7 +139,6 @@ namespace AibisDream
[Header("齿轮基础速度")] public float gearSpeed;
[Header("齿轮速度倍率")] public float speedRate;
[Header("拉满几次到全速")] public float pullCount;
[Header("拉绳最大速度")] public float pullMaxSpeed;
[Header("拉绳回缩速度")] public float returnSpeed;
}
}
@@ -1,6 +1,5 @@
using System.Collections;
using AibisDream.FixSystem;
using UnityEngine;
using Yarn.Unity;
namespace AibisDream
@@ -13,16 +12,14 @@ namespace AibisDream
[YarnCommand("open_engine_cover")]
public static IEnumerator OpenEngineCover()
{
Debug.LogWarning("打开引擎盖命令已废弃,请尽快删除");
yield break;
yield return EngineSystem.OpenCover();
}
// 打开引擎盖
[YarnCommand("close_engine_cover")]
public static IEnumerator CloseEngineCover()
{
Debug.LogWarning("关闭引擎盖命令已废弃,请尽快删除");
yield break;
yield return EngineSystem.CloseCover();
}
/// <summary>
@@ -9,22 +9,21 @@ namespace AibisDream
private EngineSystem _engineSystem;
private ProgressBarGridCircular progress;
private static readonly int Progress1 = Shader.PropertyToID("_Progress");
private static readonly int VibrateFade = Shader.PropertyToID("_VibrateFade");
private void Awake()
{
{
_engineSystem = transform.parent.GetComponent<EngineSystem>();
_material = _engineSystem.transform.Find("心脏引擎").GetComponent<SpriteRenderer>().material;
progress=FindObjectOfType<ProgressBarGridCircular>();
progress = FindObjectOfType<ProgressBarGridCircular>();
_engineSystem.updateSpeedEvent.AddListener(OnSpeedChange);
}
private void OnSpeedChange(float originSpeed, float speedScale)
{
_material.SetFloat("_VibrateFade", originSpeed);
progress.CurrentValue=Mathf.RoundToInt(originSpeed * 50);
//_material.SetFloat(Progress1, originSpeed);
_material.SetFloat(VibrateFade, originSpeed);
progress.CurrentValue = Mathf.RoundToInt(originSpeed * 16000 + 1000);
}
}
}