Как ограничить вращение предмета в 2D Unity C#

Всем привет, делаю игру с оружием (я новичок) Сделал чтобы оружие и голова следили за мышкой:

Vector3 difference = Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position;
float rotZ = Mathf.Atan2(difference.y, difference.x) * Mathf.Rad2Deg;
transform.rotation = Quaternion.Euler(0f, 0f, rotZ );

Нужно чтобы было ограничение на 60 и -20 градусов, и также наоборот, чтобы при развороте перса в другую сторону все работало корректно, вот как я попробовал реализовать эту функцию, но ожидаемо это не сработало:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Heads : MonoBehaviour
{
    public float headz;
    headz = transform.rotation.z
    // Start is called before the first frame update


    // Update is called once per frame
    void Update()
    {
        if(headz <60| headz > -20)
        {
            Vector3 difference = Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position;
            float rotZ = Mathf.Atan2(difference.y, difference.x) * Mathf.Rad2Deg;
            transform.rotation = Quaternion.Euler(0f, 0f, rotZ );
        }
    }
}

Пожалуйста, помогите с решением проблемы, в ютубе не нашел, сам не понимаю как сделать это, вот скрины с игры:

введите сюда описание изображения

введите сюда описание изображения

введите сюда описание изображения

введите сюда описание изображения

введите сюда описание изображения


Ответы (1 шт):

Автор решения: Manciny
void Update()
{
    Vector3 difference = Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position;
    float rotZ = Mathf.Atan2(difference.y, difference.x) * Mathf.Rad2Deg;
    rotZ = Mathf.Clamp(rotZ, -20f, 60f);
    transform.eulerAngles = Quaternion.Euler(0f, 0f, rotZ);
}
→ Ссылка