Files
UltimateFishing2020/Assets/Scripts/Assembly-CSharp/globalRainSnowControlerSM.cs
2026-03-04 10:03:45 +08:00

59 lines
1.5 KiB
C#

using UnityEngine;
public class globalRainSnowControlerSM : MonoBehaviour
{
public Transform airplane;
public Material rainDropsMat;
public Vector3 prevPos;
public Vector3 prevForward;
public Vector3 prevEuler;
public float motionPushPower = 0.1f;
public float diffPushPower = 1f;
public float angleDifferenceOffset = 0.1f;
public float returnSpeed = 1f;
private void Update()
{
if (!(rainDropsMat != null) || !(airplane != null))
{
return;
}
Vector3.Dot(prevForward, airplane.forward);
float num = prevEuler.y - airplane.eulerAngles.y;
if (Mathf.Abs(num) > angleDifferenceOffset)
{
float x = -0.25f * motionPushPower + -0.25f * Mathf.Abs(num) * 0.1f * diffPushPower;
if (num > 0f)
{
x = 0.55f * motionPushPower + 0.55f * Mathf.Abs(num) * 0.1f * diffPushPower;
}
rainDropsMat.SetVector("directionControls", Vector4.Lerp(rainDropsMat.GetVector("directionControls"), new Vector4(x, 0f, 0f, 0f), Time.deltaTime * 50f * Mathf.Abs(num)));
}
else
{
float num2 = returnSpeed;
_ = 0f;
rainDropsMat.SetVector("directionControls", Vector4.Lerp(rainDropsMat.GetVector("directionControls"), new Vector4(0f, 0f, 0f, 0f), Time.deltaTime * 0.1f * num2));
}
prevPos = airplane.position;
prevForward = airplane.forward;
prevEuler = airplane.eulerAngles;
}
private void Start()
{
prevPos = airplane.position;
prevForward = airplane.forward;
prevEuler = airplane.eulerAngles;
rainDropsMat.SetVector("directionControls", new Vector4(0f, 0f, 0f, 0f));
}
}