UGUI 功能 枪口随鼠标旋转
程序员文章站
2022-05-30 17:38:35
...
Order90Canvas是UI的Canvas
using UnityEngine;
public class GunFollow : MonoBehaviour {
public RectTransform UGUICanvas;//当前Canvas
public Camera mainCamera;//观察的摄像机
void Update () {
//屏幕坐标转换成世界坐标
//参数:1、当前Canvas,2、鼠标的位置,3、观察的摄像机,4、返回(参数1的Canvas下)的坐标
Vector3 mousePos;
RectTransformUtility.ScreenPointToWorldPointInRectangle(UGUICanvas, new Vector2(Input.mousePosition.x, Input.mousePosition.y), mainCamera, out mousePos);
//计算夹角
float z;
if(mousePos.x > transform.position.x)
{
//获取两个方向之间的夹角
//参数:1、向上的方向,2、鼠标点击的方向
z = -Vector3.Angle(Vector3.up, mousePos - transform.position);
}
else
{
z = Vector3.Angle(Vector3.up, mousePos - transform.position);
}
//设置本地旋转四元数
transform.localRotation = Quaternion.Euler(0, 0, z);
}
}
上一篇: 同级目录下文件获取失败
下一篇: PHP实现过滤各种HTML标签