Unity实现鼠标点2D转3D进行旋转
程序员文章站
2023-09-06 15:22:49
本文实例为大家分享了unity实现鼠标点2d转3d进行旋转的具体代码,供大家参考,具体内容如下代码如下:using unityengine;public class gunfollowmouse :...
本文实例为大家分享了unity实现鼠标点2d转3d进行旋转的具体代码,供大家参考,具体内容如下
代码如下:
using unityengine; public class gunfollowmouse : monobehaviour { public recttransform uguicanvas; public camera maincamera; //摄像机旋转的缓动速率 private float rotatespeed = 5; void start () { } void update () { //定义一个世界坐标的鼠标点 vector3 mousepos; //获取当前canvas下鼠标的二维坐标点 转化为三维 out出来 recttransformutility.screenpointtoworldpointinrectangle(uguicanvas, new vector2(input.mouseposition.x, input.mouseposition.y), maincamera, out mousepos ); //炮台的旋转角度 float angle; //向量dirmouse为鼠标的向量减去枪的起始向量得到枪到鼠标位置的方向向量 vector3 dirmouse = mousepos - transform.position; angle = vector3.angle(dirmouse, vector3.up);//直接得到两个向量之间的夹角,这个角度是没有正负的 if (mousepos.x > transform.position.x) { angle = - angle; } transform.localrotation = quaternion.lerp(transform.localrotation, quaternion.euler(0, 0, angle) , time.deltatime * rotatespeed); } }
旋转效果如下图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。