Unity(4)-Input
2021/4/25 18:29:03
本文主要是介绍Unity(4)-Input,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
B站Unity学习笔记
链接:https://www.bilibili.com/video/BV12s411g7gU
Input
-包装了输入功能的类,可以读取输入管理器中设置的按键,以及访问移动设备的多点触控或加速感应数据。
-建议在Update中监测用户输入。
获取鼠标输入
- 当指定的鼠标按钮被按下时返回true, bool result = Input.GetMouseButton(0);
- 在用户按下指定鼠标按键的第一帧返回true, bool result = Input.GetMouseButtonDown(0);
- 在用户释放指定鼠标按键的第一帧返回true, bool result = Input.GetMouseButtonUp(0);
- 按钮值设定:0对应左键,1对应右键,2对应中键
获取键盘输入
- 当通过名称指定的按键被用户按住时返回true, bool result = Input.GetKey(KeyCode.A);
- 在用户按下指定名称按键的那一帧返回true, bool result = Input.GetKeyDown(KeyCode.A);
- 在用户释放指定名称按键的那一帧返回true, bool result = Input.GetKeyUp(KeyCode.A);
练习
瞄准镜。通过鼠标右键,实现摄像机镜头缩放。
public class CareamZoom : MonoBehaviour { public bool isDown; public bool isKey; void Update1() { isDown = Input.GetMouseButton(0); isKey = Input.GetKey(KeyCode.LeftAlt); //检测按下C键同时按下D键 if (Input.GetKey(KeyCode.C) && Input.GetKeyDown(KeyCode.D)) { print("CD"); } } private Camera camera; private void Start() { camera = GetComponent<Camera>(); } private bool isFar = true; private void Update2() { if (Input.GetMouseButtonDown(1)) { isFar = !isFar; if (isFar) { camera.fieldOfView = 60; } else { camera.fieldOfView = 20; } } } private void Update3() { if (Input.GetMouseButtonDown(1)) { isFar = !isFar; } if (isFar) { if (camera.fieldOfView < 60) camera.fieldOfView += 2; } else { if (camera.fieldOfView > 20) camera.fieldOfView -= 2; } } private void Update4() { if (Input.GetMouseButtonDown(1)) { isFar = !isFar; } if (isFar) { //无限接近,但不等于终点 camera.fieldOfView = Mathf.Lerp(camera.fieldOfView, 60, 0.1f); if (Mathf.Abs(camera.fieldOfView - 60) < 0.1f) { camera.fieldOfView = 60; } } else { camera.fieldOfView = Mathf.Lerp(camera.fieldOfView, 20, 0.1f); if (Mathf.Abs(camera.fieldOfView - 20) < 0.1f) { camera.fieldOfView = 20; } } } public float[] zoomLevels; private int currentLevel; //private void Update() //{ // if (Input.GetMouseButtonDown(1)) // { // //修改缩放等级 // //currentLevel++; // // currentLevel = currentLevel < zoomLevels.Length - 1 ? currentLevel + 1 : 0; // currentLevel = (currentLevel + 1) % zoomLevels.Length; // } // camera.fieldOfView = Mathf.Lerp(camera.fieldOfView, zoomLevels[currentLevel], 0.1f); // if (Mathf.Abs(camera.fieldOfView - zoomLevels[currentLevel]) < 0.1f) // camera.fieldOfView = zoomLevels[currentLevel]; //} }
这篇关于Unity(4)-Input的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-22项目:远程温湿度检测系统
- 2024-12-21《鸿蒙HarmonyOS应用开发从入门到精通(第2版)》简介
- 2024-12-21后台管理系统开发教程:新手入门全指南
- 2024-12-21后台开发教程:新手入门及实战指南
- 2024-12-21后台综合解决方案教程:新手入门指南
- 2024-12-21接口模块封装教程:新手必备指南
- 2024-12-21请求动作封装教程:新手必看指南
- 2024-12-21RBAC的权限教程:从入门到实践
- 2024-12-21登录鉴权实战:新手入门教程
- 2024-12-21动态权限实战入门指南