Version: 2021.1
言語: 日本語
public static float SignedAngle (Vector2 from, Vector2 to);

パラメーター

from The vector from which the angular difference is measured.
to The vector to which the angular difference is measured.

戻り値

float The signed angle in degrees between the two vectors.

説明

Gets the signed angle in degrees between from and to.

The angle returned is the signed counterclockwise angle between the two vectors.
Note: The angle returned will always be between -180 and 180 degrees, because the method returns the smallest angle between the vectors. That is, it will never return a reflex angle. Angles are calculated from world origin point (0,0,0) as the vertex.
See Also: Angle function.

using UnityEngine;

public class Vector : MonoBehaviour { //Use these to get the GameObject's positions Vector2 m_MyFirstVector; Vector2 m_MySecondVector;

float m_Angle;

//You must assign to these two GameObjects in the Inspector public GameObject m_MyObject; public GameObject m_MyOtherObject;

void Start() { //Initialise the Vector m_MyFirstVector = Vector2.zero; m_MySecondVector = Vector2.zero; m_Angle = 0.0f; }

void Update() { //Fetch the first GameObject's position m_MyFirstVector = new Vector2(m_MyObject.transform.position.x, m_MyObject.transform.position.y); //Fetch the second GameObject's position m_MySecondVector = new Vector2(m_MyOtherObject.transform.position.x, m_MyOtherObject.transform.position.y); //Find the angle for the two Vectors m_Angle = Vector2.SignedAngle(m_MyFirstVector, m_MySecondVector);

//Draw lines from origin point to Vectors Debug.DrawLine(Vector2.zero, m_MyFirstVector, Color.magenta); Debug.DrawLine(Vector2.zero, m_MySecondVector, Color.blue);

//Log values of Vectors and angle in Console Debug.Log("MyFirstVector: " + m_MyFirstVector); Debug.Log("MySecondVector: " + m_MySecondVector); Debug.Log("Angle Between Objects: " + m_Angle); }

void OnGUI() { //Output the angle found above GUI.Label(new Rect(25, 25, 200, 40), "Angle Between Objects" + m_Angle); } }
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961