@ASDF102030

Как ограничить вращение по оси z в unity?

У меня есть код игры для 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); 
		  
	  }	
		  
  }
			
           }	
    }
  • Вопрос задан
  • 323 просмотра
Пригласить эксперта
Ответы на вопрос 1
vkvk
@vkvk
Для ограничения используется Math.Clamp()
Первый параметр это число, которое нужно ограничить, второй - минимальное значение, третий - максимальное значение.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы