C#控制WASD键盘前后左右及空格键抬升高度脚本代码如下:

using UnityEngine;
using System.Collections;public class CameraControl : MonoBehaviour {// Use this for initializationprivate GameObject gameObject;float x1;float x2;float x3;float x4;void Start () {gameObject = GameObject.Find ("Main Camera");//对应摄像机名称}// Update is called once per framevoid 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));}}
}

C#控制鼠标移动、转向及esc键退出脚本代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;public class CameraMove2 : MonoBehaviour
{Transform CammeraMain;//滑轮滚动基数public float WheelMove = 0;//鼠标每帧移动基数public float MouseMove_X = 0;public float MouseMove_Y = 0;//相机移动灵敏度public float Intensity = 1000f;//方向键控制相关参数int speed = 50;float n = 200.8f;//相机自身X/Y轴方向Vector3 X_Aix = new Vector3(1, 0, 0);Vector3 Y_Aix = new Vector3(0, 1, 0);//相机x轴在水平面投影Vector3 HX_Aix = new Vector3(1, 0, 0);//世界坐标Y轴Vector3 WY_Aix = new Vector3(0, 1, 0);//绕某一点旋转Vector3 RotatePoint = Vector3.zero;// Use this for initializationvoid Start(){CammeraMain = Camera.main.transform;}// Update is called once per framevoid Update(){//退出ESC事件if (Input.GetKeyDown(KeyCode.Escape)) {Application.Quit();}//更新相机自身X/Y轴方向X_Aix = CammeraMain.right;Y_Aix = CammeraMain.up;//更新旋转点(相机正前方3米)RotatePoint = (CammeraMain.forward).normalized * 3 + CammeraMain.position;//鼠标左键 摄像机绕某点旋转if (Input.GetMouseButton(1)){if ((MouseMove_X = Input.GetAxis("Mouse X")) != 0){CammeraMain.RotateAround(RotatePoint, WY_Aix, MouseMove_X);}if ((MouseMove_Y = Input.GetAxis("Mouse Y")) != 0){CammeraMain.RotateAround(RotatePoint, X_Aix, -MouseMove_Y);}}//滑轮滚动 摄像机前后移动if ((WheelMove = Input.GetAxis("Mouse ScrollWheel")) != 0){CammeraMain.Translate(0, 0, WheelMove * 500);}//摄像机在世界坐标下的水平移动if (Input.GetMouseButton(0)){CammeraMain.Translate(MouseMove_X = -Input.GetAxis("Mouse X") * Intensity, MouseMove_X = -Input.GetAxis("Mouse Y") * Intensity, 0);}}
}

Unity3D鼠标、WASD空格键盘控制摄像机及esc键退出C#脚本相关推荐

  1. 在Unity使用键盘控制摄像机的移动以及用鼠标滚轮控制摄像机视野放大和缩小

    首先在Unity中新建一个ViewControl的脚本,并把这个脚本挂载在主摄像机上面,然后复制下列的代码! using System.Collections; using System.Collec ...

  2. linux图形界面鼠标变成小手_扔掉鼠标,用键盘控制一切~

    如今大家使用计算机,必不可少地需要鼠标和键盘.鼠标的存在极大地方便了用户在使用个人计算机的过程中的操作,特别是windows操作系统. 但是当以linux作为个人操作系统的时候,肯定会意识到一定情况下 ...

  3. 键盘控制摄像机移动和转换视角

    1)按键盘的"W"."S"键,可实现视点的前后移动(直走:前进或倒退)(此时应该视点与目标点的距离保持不变,且视线方向保持不变). 2)按键盘的"A& ...

  4. Qt使用键盘事件实现ESC键退出Halcon的绘图流程

    1.介绍 Halcon中的执行绘图算子draw_circlr或draw_rectangle1等算子在绘制图形时,单击鼠标左键进行绘图,点击右键确认图形,点击右键之前就进行等待动作,但是在MFC/Qt等 ...

  5. esc键退出全屏 vue_解决了VUE在浏览器全屏下监听不到Esc键盘事件

    说明: 实测可以在谷歌.火狐.360 浏览器使用 解决了在浏览器全屏下监听不到键盘Esc事件 解决了取消全屏和全屏的同步问题,ESC按键下可以同步 以下是完整的代码, // data() { retu ...

  6. Python之OpenGL笔记(17):键盘鼠标控制摄像机移动旋转

    一.目的 1.键盘控制摄像机自由移动: 2.鼠标控制摄像机旋转: 3.鼠标滚轮放大缩小视野. 二.程序运行结果 三.自由移动 view = lookAt(cameraPos, cameraPos + ...

  7. OpenGL之路(八)加入�光照效果和键盘控制

    在opengl中加入�光照的效果,可用键盘控制放大缩小 w键放大 s键缩小 d键开关灯 预览效果例如以下: 源代码例如以下: #include <gl/glut.h> #include & ...

  8. Unity中控制摄像机跟随人物主角的移动

    首先进入场景中,把摄像机挂载到人物主角的下方,先作为主角的一个子物体存在,然后新建一个脚本CameraFllow,用于控制摄像机跟随,然后把这个脚本挂载摄像机上面,打开脚本,并复制以下的代码: usi ...

  9. ogre3D学习基础10 -- 键盘控制与鼠标控制(直接控制)

    要实现键盘,鼠标对场景的控制,首先要帧监听,就是在每一帧的渲染前后对它进行操作.这里的操作没有用到缓冲区,只是简单的直接获取. 1.这些步骤和前面的一样,直接上代码,操作还是在createScene函 ...

最新文章

  1. linux signal函数用法,linux信号机制之sigaction构造体浅析,signal 函数,信号捕捉.
  2. golang NewRequest gorequest 实现http请求
  3. hdu 2196(经典树形dp)
  4. word文档图标变成白纸_挽救你的文件 修复变成乱码的Word文档
  5. 【C++grammar】继承与构造
  6. [转贴]网页及其控件的触发事件
  7. 快递管理系统 java_快递管理基于java物流快递管理系统设计.doc
  8. vscode php 不进断点,php – Docker和XDebug没有读取断点VSCode
  9. 2010年是一道坎,也是一座桥
  10. php中字符串与数组的相互转化explode(separator,$str)与implode(separator,$arr)
  11. 163Editor 编辑器概览
  12. CCL语料库检索系统(网络版)
  13. AWWWB.COM网站克隆器
  14. windows11 美化桌面图标后报错
  15. 计算机出现蓝屏怎么解决,教你电脑出现蓝屏是怎么回事
  16. 【工具】Vscode翻译插件推荐(不用谷歌翻译api、支持短句英汉互译、支持查词、支持自动补全、不需要浏览器)
  17. 2022年山东省安全员C证考试及山东省安全员C证考试题库
  18. 自动驾驶常用定位方案
  19. 2023 年最佳游戏引擎推荐
  20. Django.contrib 概述

热门文章

  1. vue遇到ie兼容问题如何处理_vue IE兼容性问题汇总
  2. case when then else end用法
  3. 阿龙的学习笔记---Effective C++---第一章:习惯C++
  4. 软件版本发布要求和标准
  5. 液晶显示器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  6. 有时间要看的书(个人整理)
  7. Roxy-Wi 远程命令执行漏洞 CVE-2022-31137
  8. 程序员他们也可以很可爱幽默
  9. chart.js使用用法
  10. mysql导出表数据到文件的几种方法