UMiniGame/Assets/Scripts/AirPlane.cs
2025-12-15 21:14:11 +08:00

47 lines
1.4 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AirPlane : MonoBehaviour
{
[Tooltip("×óÓÒ·­×ªËÙ¶È")]
public float flipSpeed = 1f;
[Tooltip("×óÓÒ·­×ª½Ç¶È")]
public float flipAngle = 25f;
private float beforePositionX = 0;
private float lerpEulerAnglesZ = 0;
private float targetEulerAnglesZ = 0;
private Vector3 targetEulerAngles = Vector3.zero;
// Start is called before the first frame update
void Start()
{
beforePositionX = transform.position.x;
targetEulerAngles = transform.eulerAngles;
lerpEulerAnglesZ = transform.eulerAngles.z;
targetEulerAnglesZ = lerpEulerAnglesZ;
}
// Update is called once per frame
void Update()
{
if (transform.position.x < beforePositionX)
{
targetEulerAnglesZ = -flipAngle;
}
else
{
targetEulerAnglesZ = flipAngle;
}
beforePositionX = Mathf.Lerp(beforePositionX, transform.position.x, Time.deltaTime * flipSpeed);
if (Mathf.Abs(beforePositionX - transform.position.x) < 0.3f)
{
targetEulerAnglesZ = 0;
}
lerpEulerAnglesZ = Mathf.Lerp(lerpEulerAnglesZ, targetEulerAnglesZ, Time.deltaTime * flipSpeed);
targetEulerAngles.Set(transform.eulerAngles.x, transform.eulerAngles.y, lerpEulerAnglesZ);
transform.eulerAngles = targetEulerAngles;
}
}