Issue with limiting the rotation of an object on Z-Axis

Hi

I’m pretty new to unity and i use it in a special way of creating a non-game2D application
So i work only with UI element.
I’m having some issues with something i want to do .
I have an object which rotate following the finger (or mouse) but the object must not get out of the “area”
Here is my code for now :

using UnityEngine;
using System.Collections;

public class SteeringWheel : MonoBehaviour
{
    public float angleMax = 90.0f;
    private float baseAngle = 0.0f;

    void OnMouseDown()
    {
        Vector3 pos = Camera.main.WorldToScreenPoint(transform.position);
        pos = Input.mousePosition - pos;
        baseAngle = Mathf.Atan2(pos.y, pos.x) * Mathf.Rad2Deg;
        baseAngle -= Mathf.Atan2(transform.right.y, transform.right.x) * Mathf.Rad2Deg;
    }

    void OnMouseDrag()
    {
        Vector3 pos = Camera.main.WorldToScreenPoint(transform.position);
        pos = Input.mousePosition - pos;
        float ang = Mathf.Atan2(pos.y, pos.x) * Mathf.Rad2Deg - baseAngle;
        Debug.Log("ang1 : " + ang);
        ang = Mathf.Clamp(ang, -90, 90);
        if (transform.eulerAngles.z >= 89 && transform.eulerAngles.z <= 271)
        {
            transform.rotation = new Quaternion(transform.rotation.x, transform.rotation.y, 0.7f, transform.rotation.w);
            return;
        }       
        transform.rotation = Quaternion.AngleAxis(ang, Vector3.forward);        
    }
}

And here is a gif of the problem :
http://img15.hostingpics.net/pics/324271Animation.gif

The problem you are having is probably caused by calculating and clamping the angle.
Since the problem is only caused once your mouse is below the center/ your pos.y value is negative, and you only need angles where the y value is positive, you should be able to fix this problem by keeping your y level >= 0;

float ang = Mathf.Atan2(pos.y, pos.x) * Mathf.Rad2Deg - baseAngle;

can be replaced with

float ang = Mathf.Atan2(Mathf.max(pos.y,0), pos.x) * Mathf.Rad2Deg - baseAngle;

hope it works