Unity_lab3/Unity3_lab/Assets/Scripts/SwingHammer.cs

41 lines
1.5 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using UnityEngine;
public class SwingHammer : MonoBehaviour
{
[Tooltip("Максимальный угол поворота в каждую сторону от центра.")]
[SerializeField]
private float maxAngle = 45f;
[Tooltip("Скорость качания (например, 1.5 - чем выше, тем быстрее).")]
[SerializeField]
private float speed = 1.5f;
[Header("Настройка начала качания")]
[Tooltip("Смещение фазы (в радианах). Позволяет настроить начальный угол качания.")]
[SerializeField]
private float phaseOffset = 0f; // <--- НОВОЕ ПОЛЕ!
private Quaternion initialRotation;
void Start()
{
initialRotation = transform.rotation;
}
void Update()
{
// 1. Рассчитываем фазу с добавлением смещения.
float phase = Time.time * speed + phaseOffset;
// 2. Рассчитываем угол.
float angle = Mathf.Sin(phase) * maxAngle;
// 3. Применяем вращение
// Используйте ту ось, которую вы уже нашли (например, Z):
Quaternion swingRotation = Quaternion.Euler(0, 0, angle);
// Применяем вращение от качания к сохраненному начальному вращению.
transform.rotation = initialRotation * swingRotation;
}
}