OvertakingLegend/Assets/Script/MapManger/MapManger_ CurveController.cs

100 lines
2.6 KiB
C#

using AmazingAssets.CurvedWorld;
using DG.Tweening;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 地图管理器_弯道控制
/// </summary>
public partial class MapManager
{
/// <summary>
/// 记录变换弯道时间
/// </summary>
private float recordCurverdTime;
/// <summary>
/// 到达变换弯道时间
/// </summary>
private float arriveCurverdTime = 8;
/// <summary>
/// 横向最小值
/// </summary>
private float horizontalMinValue=-1f;
/// <summary>
/// 横向最大值
/// </summary>
private float horizontalMaxValue =1f;
/// <summary>
/// 纵向最小值
/// </summary>
private float verticalMinValue=0.5f;
/// <summary>
/// 纵向最大值
/// </summary>
private float verticalMaxValue=-0.5f;
/// <summary>
/// 当前横向值
/// </summary>
private float currentHorizontalValue=0;
/// <summary>
/// 当前纵向值
/// </summary>
private float currentVerticalValue=0;
/// <summary>
/// 横向
/// </summary>
private Tween horizontalTween;
/// <summary>
/// 纵向
/// </summary>
private Tween verticalTween;
/// <summary>
/// 初始化曲线
/// </summary>
public void InitCurvedWorld()
{
horizontalTween.Kill();
verticalTween.Kill();
currentHorizontalValue = 0;
currentVerticalValue = 0;
curvedWorld.bendHorizontalSize = 0;
curvedWorld.bendVerticalSize = 0;
recordCurverdTime = 0;
}
/// <summary>
/// 设置弯道
/// </summary>
public void SetCurvedWorld()
{
if (Scenes.Instance.e_GameState == E_GameState.Gameing&&GuidanceManger.Instance.isChannelChangeguidanceOver)
{
recordCurverdTime += Time.deltaTime;
if (recordCurverdTime >= arriveCurverdTime)
{
horizontalTween = DOTween.To(() => currentHorizontalValue, x => currentHorizontalValue = x, Random.Range(horizontalMinValue, horizontalMaxValue), 3).OnUpdate(() =>
{
curvedWorld.bendHorizontalSize = currentHorizontalValue;
});
verticalTween= DOTween.To(() => currentVerticalValue, x => currentVerticalValue = x, Random.Range(verticalMinValue, verticalMaxValue), 3).OnUpdate(() =>
{
curvedWorld.bendVerticalSize = currentVerticalValue;
});
recordCurverdTime = 0;
}
}
}
}