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; } }