Unity3D(五)在U3D中添加鼠标控制、键盘操作

C#控制WASD键盘控制前后左右+空格键抬升高度、鼠标右键跟随旋转、滑轮控制放大缩小:

using UnityEngine;
using System.Collections;

public class CameraControl : MonoBehaviour {
    // Use this for initialization
    private GameObject gameObject;
    /**
     * 鼠标
     */
    public bool mouseControlEvent = false;//判断奇数偶数单(右)击
    //模型跟随鼠标旋转改变的坐标
    public float h;
    public float v;

    void Start () {
        gameObject = GameObject.Find ("Main Camera");
    }

    // Update is called once per frame
    void Update () {
        //空格键抬升高度
        if (Input.GetKey (KeyCode.Space))
        {
            transform.position =  new Vector3(transform.position.x,transform.position.y + 1,transform.position.z);
        }     

        //w键前进
        if(Input.GetKey(KeyCode.W))
        {
            this.gameObject.transform.Translate(new Vector3(0,0,50*Time.deltaTime));
        }
        //s键后退
        if(Input.GetKey(KeyCode.S))
        {
            this.gameObject.transform.Translate(new Vector3(0,0,-50*Time.deltaTime));
        }
        //a键后退
        if(Input.GetKey(KeyCode.A))
        {
            this.gameObject.transform.Translate(new Vector3(-10,0,0*Time.deltaTime));
        }
        //d键后退
        if(Input.GetKey(KeyCode.D))
        {
            this.gameObject.transform.Translate(new Vector3(10,0,0*Time.deltaTime));
        }

        /*
         * 鼠标按键操作
         */
        //右键第一次按下为开启鼠标跟随旋转,第二次按下关闭鼠标跟随旋转
        if (Input.GetMouseButtonDown(1))
        {
            Debug.Log("鼠标右键按下");
            if (!mouseControlEvent)
            {
                mouseControlEvent = true;
            }
            else
            {
                mouseControlEvent = false;
            }
        }
        //模型跟随鼠标旋转
        if (mouseControlEvent)
        {
            h = Input.GetAxis("Mouse X");
            v = Input.GetAxis("Mouse Y");
            transform.Rotate(v,h,0);
        }

        /*
         * 通过鼠标滑轮控制放大缩小
         */
        //放大视角 往前滑
        if (Input.GetAxis("Mouse ScrollWheel")<0)
        {
            Debug.Log("放大视角 往前滑");
            if (Camera.main.fieldOfView <= 100)//小于一个放大范围后就不继续放大了
            {
                Camera.main.fieldOfView += 5;
            }
        }
        //缩小视角 往后滑
        if (Input.GetAxis("Mouse ScrollWheel") > 0)
        {
            Debug.Log("缩小视角 往后滑");
            if (Camera.main.fieldOfView >= 10)
            {
                Camera.main.fieldOfView -= 5;
            }
        }
}

参考文章:https://blog.csdn.net/lisenyang/article/details/48462803

原文地址:https://www.cnblogs.com/lotuses/p/11601792.html

时间: 2024-08-09 20:43:21

Unity3D(五)在U3D中添加鼠标控制、键盘操作的相关文章

转:总结Selenium WebDriver中一些鼠标和键盘事件的使用

在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为.比如使用鼠标单击.双击.右击.拖拽等动作:或者键盘输入.快捷键使用.组合键使用等模拟键盘的操作.在 WebDeriver 中,有一个专门的类来负责实现这些测试场景,那就是 Actions 类,在使用该类的过程中会配合使用到 Keys 枚举以及 Mouse. Keyboard.CompositeAction 等类. 其次,在实际测试过程中,可能会遇到某些按键没办法使用 Actions.Keys 等类来

MFC--响应鼠标和键盘操作

一个程序最重要的部分之一是对鼠标和键盘操作的响应. 一.  理解鼠标事件.之前对鼠标事件的认识仅仅局限于处理控件的单击与双击事件.但实际鼠标的操作包含很多.这里将以一个画图的小程序讲解对鼠标的响应. 首先新建一个MFC程序,选择对话框类型,将Mouse设为程序标题.建立程序框架后将对话窗口中所有的控件删除.这样整个对话框都可以用来作图. 然后选中对话框窗口在右下角属性窗口中的message(消息)选项,会列出一大串的事件消息.例如WM_LBUTONDOWN(鼠标左键被按下),WM_LBUTTON

4 鼠标、键盘操作

WebDriver鼠标.键盘操作 1 WebDriver操作鼠标方法 1. context_click() 右击 --> 此方法模拟鼠标右键点击效果 2. double_click() 双击 --> 此方法模拟双标双击效果 3. drag_and_drop() 拖动 --> 此方法模拟双标拖动效果 4. move_to_element() 悬停 --> 此方法模拟鼠标悬停效果 5. perform() 执行 --> 此方法用来执行以上所有鼠标方法 1.1 鼠标执行 perfo

如何在 vue 中添加权限控制管理?---vue中文社区

前言 在一个项目中,一些功能会涉及到重要的数据管理,为了确保数据的安全,我们会在项目中加入权限来限制每个用户的操作.作为前端,我们要做的是配合后端给到的权限数据,做页面上的各种各样的限制. 需求 因为这是一个工作上的业务需求,所以对于我来说主要有两个地方需要进行权限控制. 第一个是侧边菜单栏,需要控制显示与隐藏. 第二个就是页面内的各个按钮,弹窗等. 流程 如何获取用户权限? 后端(当前用户拥有的权限列表)-> 前端(通过后端的接口获取到,下文中我们把当前用户的权限列表叫做 permission

总结Selenium WebDriver中一些鼠标和键盘事件的使用

在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为.比如使用鼠标单击.双击.右击.拖拽等动作:或者键盘输入.快捷键使用.组合键使用等模拟键盘的操作.在 WebDeriver 中,有一个专门的类来负责实现这些测试场景,那就是 Actions 类,在使用该类的过程中会配合使用到 Keys 枚举以及 Mouse. Keyboard.CompositeAction 等类. 其次,在实际测试过程中,可能会遇到某些按键没办法使用 Actions.Keys 等类来

Selenium WebDriver中一些鼠标和键盘事件的使用

转自:http://www.ithov.com/linux/133271.shtml 在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为.比如使用鼠标单击.双击.右击.拖拽等动作:或者键盘输入.快捷键使用.组合键使用等模拟键盘的操作.在 WebDeriver 中,有一个专门的类来负责实现这些测试场景,那就是 Actions 类,在使用该类的过程中会配合使用到 Keys 枚举以及 Mouse. Keyboard.CompositeAction 等类.

对话框如何添加鼠标和键盘响应

1.添加鼠标响应: 在对话框类属性的“重写”中添加WM_MOUSEMOVE/WM_LBUTTONUP/WM_LBUTTONDOWN/WM_LBUTTONDBLCLK消息响应函数 1 void C窗口响应鼠标消息Dlg::OnLButtonDown(UINT nFlags, CPoint point) 2 { 3 MessageBox(_T("鼠标左键按下!")); 4 CDialogEx::OnLButtonDown(nFlags, point); 5 } 6 7 void C窗口响应

WebDriver API——鼠标及键盘操作Actions

在自动化中我们可能需要用到鼠标或者是键盘操作,在webdriver中是Actions类进行这些操作的. 代码如下: Actions action = new Actions(driver); //-------定义一个action对象 action.click(); action.click(searchBt); //-------单击操作 action.doubleClick().perform(); action.doubleClick(searchBt).perform(); //----

python + selenium webdriver 通过python来模拟鼠标、键盘操作,来解决SWFFileUpload调用系统底层弹出框无法定位问题

Webdriver是基于浏览器操作的,当页面上传文件使用的是flash的控件SWFFileUpload调用的时候,调用的是系统底层的文件选择弹出框 这种情况,Webdriver暂时是不支持除页面外的其他操作 前期尝试过很多种方法,比如send_keys("path"),但是都无法解决 虽然Webdriver无法对底层进行操作,但是Python的扩展是可以的 通过模拟鼠标.键盘的操作,可以解决这个问题,但是这个方法比较笨,而且不怎么理想,如果有好的方法,请留言给我,谢谢! 解决方法: 1