У меня есть код игры для android с помощью которого вращается объект. Но мне необходимо, чтобы объект останавливался когда доходил до положительных или отрицательных 10 градусов по z в зависимости от направления движения (влево или вправо).
На данном этапе мой код выглядит следующим образом:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Rotate : MonoBehaviour
{
private Camera myCam;
private Vector3 screenPos;
private float angle0ffset;
private Collider2D col;
private void Start()
{
myCam = Camera.main;
col = GetComponent<Collider2D>();
}
private void Update()
{
Vector3 mousePos = myCam.ScreenToWorldPoint(Input.mousePosition);
if (Input.GetMouseButtonDown(0))
screenPos = myCam.WorldToScreenPoint(transform.position);
Vector3 vec3 = Input.mousePosition - screenPos;
angle0ffset = (Mathf.Atan2(transform.right.y, transform.right.x) - Mathf.Atan2(vec3.y, vec3.x)) * Mathf.Rad2Deg;
}
}
if (Input.GetMouseButton(0))
{
if(col == Physics2D.OverlapPoint(mousePos))
{
Vector3 vec3 = Input.mousePosition ;
float angl = Mathf.Atan2(vec3.y, vec3.x) * Mathf.Rad2Deg;
transform.eulerAngles = new Vector3(0,0, angl + angle0ffset);
}
}
}
}