Files
beyond/Assets/Meshes/Enviroment/Buildings/Ruins3/LampSwin.cs
2025-05-14 04:33:34 +02:00

33 lines
1.1 KiB
C#

using UnityEngine;
public class DualAxisLampSwing : MonoBehaviour
{
[Header("G³ówne bujanie")]
public float mainSwingAngle = 15f;
public float mainSwingSpeed = 1.5f;
public Vector3 mainSwingAxis = Vector3.right;
[Header("Dodatkowe przechylanie")]
public float secondaryTiltAngle = 5f;
public float secondaryTiltSpeed = 0.7f;
public Vector3 secondaryTiltAxis = Vector3.forward;
private Quaternion initialRotation;
void Start()
{
initialRotation = transform.localRotation;
}
void Update()
{
float mainSwing = Mathf.Sin(Time.time * mainSwingSpeed) * mainSwingAngle;
float secondaryTilt = Mathf.Sin(Time.time * secondaryTiltSpeed) * secondaryTiltAngle;
Quaternion mainRotation = Quaternion.AngleAxis(mainSwing, transform.TransformDirection(mainSwingAxis.normalized));
Quaternion secondaryRotation = Quaternion.AngleAxis(secondaryTilt, transform.TransformDirection(secondaryTiltAxis.normalized));
transform.localRotation = initialRotation * mainRotation * secondaryRotation;
}
}