用python捕捉鼠标移动轨迹要怎么用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用python捕捉鼠标移动轨迹要怎么用相关的知识,希望对你有一定的参考价值。

参考技术A 可以直接在Emacs中打开Shell然后运行Python,也可以安装ipython模式的插件,后者好一点,顺便增强了原来的python模式的功能。

怎样用鼠标控制摄像机的移动旋转

参考技术A 打开unity3d创建一个立方体作为要控制的人物。
unity3d第一人称移动,鼠标旋转控制视角

给立方体添加rigidbody,并且把“Freeze Rotation”的xyz都勾选,冻结旋转。
unity3d第一人称移动,鼠标旋转控制视角

创建一个”First“脚本。
unity3d第一人称移动,鼠标旋转控制视角

打开First脚本,创建三个变量,在Start中初始化相机的位置。

camTrans = Camera.main.transform;

Vector3 startPos = transform.position;

startPos.y += camHeight;

camTrans.position = startPos;

camTrans.rotation = transform.rotation;

camAng = camTrans.eulerAngles;
unity3d第一人称移动,鼠标旋转控制视角

新建一个Rot_move方法,在里面设置相机跟随鼠标旋转、物体与相机同步旋转、更新相机位置。

float y = Input.GetAxis("Mouse X");

float x = Input.GetAxis("Mouse Y");

camAng.x -= x;

camAng.y += y;

camTrans.eulerAngles = camAng;

camTrans.position = new Vector3(this.transform.position.x,camTrans.position.y,this.transform.position.z);

float camy=camAng.y;

this.transform.eulerAngles=new Vector3(this.transform.eulerAngles.x,camy,this.transform.eulerAngles.z);

Vector3 startPos = transform.position;

startPos.y += camHeight;

camTrans.position = startPos;
unity3d第一人称移动,鼠标旋转控制视角

在update方法中调用Rot_move方法,以及监听W键向前移动。
unity3d第一人称移动,鼠标旋转控制视角

把First脚本放在立方体上面。
unity3d第一人称移动,鼠标旋转控制视角

运行游戏,现在我们就可以按住W按键向前移动,鼠标控制移动方向。
unity3d第一人称移动,鼠标旋转控制视角追问

我项目的需求是只控制摄像机移动和旋转:鼠标左键控制摄像机的一移动:上下滑动控制摄像机的前后移动,左右滑动控制摄像机的左右移动,鼠标右键控制摄像机围绕某个点旋转,旋转是围绕y轴和z轴旋转的,,旋转后,在移动摄像机方向就不对了,摄像机移动是按世界坐标移动的,假如不按世界坐标移动,摄像机视口朝下会往下移动,需求是在水平面上前后移动摄像机.我知道是旋转后,坐标转换变了

以上是关于用python捕捉鼠标移动轨迹要怎么用的主要内容,如果未能解决你的问题,请参考以下文章

用js怎么判断鼠标在某一个div上的停留时间?

QT的ouseMoveEvent

捕捉桌面上的窗口信息

用C++或者OpenGL或者Ogre实现鼠标移动轨迹

arcgis无法捕捉到点

MFC当鼠标移动到某对象范围的上方时触发的事件是啥?