当前位置: 首页 > news >正文

Unity第一人称移动和观察

创建一个可以自由移动的第一人称视角

人物通过WSAD进行前后左右移动,通过鼠标右键进行旋转

Step1:创建一个Player玩家,在节点下加两个子物体,一个摄像头和一个Capsule充当身体

Step2:创建一个脚本挂载在Player节点下,再在这个Player物体下加上Character Controller脚本

Step3:该脚本内容如下

using UnityEngine;/// <summary>
/// 人物移动脚本
/// 直接引用Character的Move方法
/// </summary>
public class PlayerMove : MonoBehaviour
{//键盘public float speed = 30F;public float jumpSpeed = 5.0F;public float gravity = 5.0F;private Vector3 moveDirection;private CharacterController characterController;//鼠标public float mousespeed = 3f;public float minmouseY = -45f;public float maxmouseY = 45f;public Transform playerCamera;private Vector3 oldMousePos;private Vector3 newMousePos;private void OnEnable(){characterController = GetComponent<CharacterController>();}private void FixedUpdate(){if (Input.GetMouseButton(1)){//把当前右键鼠标点的位置先存储起来newMousePos = Input.mousePosition;//再把每一帧刚开始的位置和上一帧的位置做一个差值Vector3 dis = newMousePos - oldMousePos;//X,Y方向上位移的距离就是这个差值的x,y分量*鼠标移动速度float angleX = dis.x * mousespeed;float angleY = dis.y * mousespeed;//然后再根据分量差值进行旋转transform.Rotate(new Vector3(-angleY, 0, 0), Space.Self);transform.Rotate(new Vector3(0, angleX, 0), Space.World);}if(characterController.isGrounded){moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));moveDirection = transform.TransformDirection(moveDirection);moveDirection *= speed;if (Input.GetButton("Jump")){moveDirection.y = jumpSpeed;}}moveDirection.y = moveDirection.y - gravity * Time.deltaTime;//使用characterController的Move方法对物体进行移动,参数就是移动方向 * 时间characterController.Move(moveDirection * Time.deltaTime);//更新鼠标的下一帧位置oldMousePos = Input.mousePosition;}
}

运行即可

相关文章:

Unity第一人称移动和观察

创建一个可以自由移动的第一人称视角 人物通过WSAD进行前后左右移动&#xff0c;通过鼠标右键进行旋转 Step1:创建一个Player玩家&#xff0c;在节点下加两个子物体&#xff0c;一个摄像头和一个Capsule充当身体 Step2:创建一个脚本挂载在Player节点下&#xff0c;再在这个Pl…...

【UBOOT】1-使用与烧写

​一、uboot简介 1&#xff09;uboot是一个裸机程序&#xff0c;比较复杂 2&#xff09;最主要的作用是引导Linux内核启动&#xff1b; 初始化DDR&#xff1b; 因为Linux是运行在DDR里面的&#xff1b;而Linux镜像&#xff08;zImage或uImagedtb&#xff09;一般存放在SD EMM…...

竞赛 深度学习OCR中文识别 - opencv python

文章目录 0 前言1 课题背景2 实现效果3 文本区域检测网络-CTPN4 文本识别网络-CRNN5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; **基于深度学习OCR中文识别系统 ** 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;…...

XTU-OJ 1331-密码

题目描述 Eric喜欢使用数字1,2,3,4作为密码&#xff0c;而且他有个怪癖&#xff0c;相邻数字不能相同&#xff0c;且相差不能超过2。当然只用数字做密码&#xff0c;会比较弱&#xff0c;Eric想知道当长度为n时&#xff0c;这样的密码有多少种&#xff1f; 输入 第一行是一个整…...

【docker】ubuntu下安装

ubuntu下安装docker 卸载原生docker更新软件包安装依赖Docker官方GPG密钥添加软件来源仓库安装docker添加用户组运行docker安装工具重启dockerhelloworld 卸载原生docker $ apt-get remove docker docker-engine docker.io containerd runc更新软件包 apt-get update apt-get…...

Linux- 命名信号量和无名信号量的区别

命名信号量和无名信号量之间的区别主要在于它们的可见性、生命周期以及如何在进程或线程之间共享。根据这些特点&#xff0c;它们各自更适合不同的应用场景&#xff1a; 命名信号量&#xff1a; 可见性&#xff1a;命名信号量由一个与其关联的名称标识&#xff0c;通常在某种文…...

【C/C++】STL——深度剖析list容器

​&#x1f47b;内容专栏&#xff1a; C/C编程 &#x1f428;本文概括&#xff1a;list的介绍与使用、深度剖析及模拟实现。 &#x1f43c;本文作者&#xff1a; 阿四啊 &#x1f438;发布时间&#xff1a;2023.10.12 一、list的介绍与使用 1.1 list的介绍 cpluplus网站中有关…...

#力扣:136. 只出现一次的数字@FDDLC

136. 只出现一次的数字 - 力扣&#xff08;LeetCode&#xff09; 一、Java class Solution {public int singleNumber(int[] nums) {int ans 0;for(int num: nums) ans ^ num;return ans;} } 二、C class Solution { public:int singleNumber(vector<int>& nums…...

VR、AR、MR、XR到底都是什么?有什么区别

目录 VRARMRXRAR、VR、MR、XR的区别 VR 英&#xff1a;Virtual Reality 中文翻译&#xff1a;虚拟现实 又称计算机模拟现实。是指由计算机生成3D内容&#xff0c;为用户提供视觉、听觉等感官来模拟现实&#xff0c;具有很强的“临场感”和“沉浸感”。我们可以使用耳机、控制器…...

UE5射击游戏案例蓝图篇(一)

一、使用到的资源 1.小白人动画包 2.基础武器包 3.虚幻商城免费的模型包 二、角色创建 1.以Character为基类创建出需要的角色&#xff0c;双击打开之后并在已有组件的基础上&#xff0c;添加摄像机臂和摄像机两个组件。添加完成之后可以根据自己的需要调整摄像机臂的位置&…...

excel管理接口测试用例

闲话休扯&#xff0c;上需求&#xff1a;自动读取、执行excel里面的接口测试用例&#xff0c;测试完成后&#xff0c;返回错误结果并发送邮件通知。 分析&#xff1a; 1、设计excel表格 2、读取excel表格 3、拼接url&#xff0c;发送请求 4、汇总错误结果、发送邮件 开始实现…...

根文件系统制作并启动 Linux

根文件系统制作并启动 Linux busybox 下载链接&#xff1a;https://busybox.net/ 下载 wget https://busybox.net/downloads/busybox-1.36.1.tar.bz2解压 tar -vxf busybox-1.36.1.tar.bz2 并进入其根目录 export ARCHarm export CROSS_COMPILEarm-none-linux-gnueabihf- m…...

JSKarel教学编程机器人使用介绍

JSKarel教学编程机器人使用介绍 为了避免被编程语言固有的复杂性所困扰&#xff0c;有一个被称为卡雷尔&#xff08;Karel&#xff09;机器人的微型世界&#xff08;microworld&#xff09;的简化环境&#xff0c;可以让编程初学者从中学习理解编程的基本概念&#xff0c;而不…...

换低挡装置(Kickdown, ACM/ICPC NEERC 2006, UVa1588)rust解法

给出两个长度分别为n1&#xff0c;n2&#xff08;n1&#xff0c;n2≤100&#xff09;且每列高度只为1或2的长条。需要将它们放入一个高度为3的容器&#xff08;如图3-8所示&#xff09;&#xff0c;问能够容纳它们的最短容器长度。 样例 2112112112 2212112 1012121212 2121…...

Windows10用Navicat 定时备份报错80070057

直接按照网上的教程配置定时任务发现报错&#xff0c;提示参数非法之类的&#xff0c;80070057。 搜索加自己测试发现是用户权限问题。 设置任务计划的时候&#xff0c;我用了用户组&#xff0c;选了administors&#xff0c;在勾选上run with hightest privileges。 查找用户…...

JimuReport 积木报表 v1.6.4 稳定版本正式发布 — 开源免费的低代码报表

项目介绍 一款免费的数据可视化报表&#xff0c;含报表和大屏设计&#xff0c;像搭建积木一样在线设计报表&#xff01;功能涵盖&#xff0c;数据报表、打印设计、图表报表、大屏设计等&#xff01; Web 版报表设计器&#xff0c;类似于excel操作风格&#xff0c;通过拖拽完成报…...

为什么要把 String 设计为不可变?

将字符串设计为不可变具有多个重要的原因&#xff1a; 线程安全性&#xff1a; 不可变字符串可以在多线程环境中共享而无需额外的同步措施。因为字符串不会改变&#xff0c;多个线程可以同时访问它而不会导致竞态条件或数据不一致性。 缓存和性能优化&#xff1a; 字符串不可变…...

华为OD机考算法题:服务器广播

题目部分 题目服务器广播难度难题目说明服务器连接方式包括直接相连&#xff0c;间接连接。A 和 B 直接连接&#xff0c;B 和 C 直接连接&#xff0c;则 A 和 C 间接连接。直接连接和间接连接都可以发送广播。 给出一个 N * N 数组&#xff0c;代表 N 个服务器&#xff0c;mat…...

Android ViewBinding和DataBinding功能作用区别

简述 ViewBinding和DataBinding都是用于在 Android 应用程序中处理视图的工具&#xff0c;但它们有不同的作用和用途。 ViewBinding: ViewBinding 是 Android Studio 的一个工具&#xff0c;用于生成一个绑定类&#xff0c;能够轻松访问 XML 布局文件中的视图。ViewBinding 为…...

【云计算网络安全】DDoS 攻击类型:什么是 ACK 洪水 DDoS 攻击

文章目录 一、什么是 ACK 洪水 DDoS 攻击&#xff1f;二、什么是数据包&#xff1f;三、什么是 ACK 数据包&#xff1f;四、ACK 洪水攻击如何工作&#xff1f;五、SYN ACK 洪水攻击如何工作&#xff1f;六、文末送书《AWD特训营》内容简介读者对象 一、什么是 ACK 洪水 DDoS 攻…...

数电课设实战:从555定时器到74LS190,手把手搭建一个密码锁系统

1. 密码锁系统设计概述 第一次接触数字电路课设时&#xff0c;我和大多数同学一样&#xff0c;面对一堆芯片和电路图完全无从下手。直到教授建议从密码锁这个经典项目入手&#xff0c;我才发现原来数电可以这么有趣。这个系统最精妙的地方在于&#xff0c;它把课本上枯燥的理论…...

小白也能搞定!用Docker和Halo 2.10搭建个人博客,再也不用担心公网访问问题

零基础玩转DockerHalo 2.10&#xff1a;打造高颜值个人博客全攻略 在数字内容创作爆发的时代&#xff0c;拥有一个专属博客空间已成为个人品牌建设的标配。但传统建站方案往往面临技术门槛高、维护成本大等痛点。本文将带你用Docker容器技术和Halo 2.10开源系统&#xff0c;30…...

如何用QuickRecorder解决macOS录屏痛点:高效专业的从入门到精通实践指南

如何用QuickRecorder解决macOS录屏痛点&#xff1a;高效专业的从入门到精通实践指南 【免费下载链接】QuickRecorder A lightweight screen recorder based on ScreenCapture Kit for macOS / 基于 ScreenCapture Kit 的轻量化多功能 macOS 录屏工具 项目地址: https://gitco…...

全网资源嗅探下载神器:轻松获取视频音频资源的终极指南

全网资源嗅探下载神器&#xff1a;轻松获取视频音频资源的终极指南 【免费下载链接】res-downloader 资源下载器、网络资源嗅探&#xff0c;支持微信视频号下载、网页抖音无水印下载、网页快手无水印视频下载、酷狗音乐下载等网络资源拦截下载! 项目地址: https://gitcode.co…...

手把手调试Android触摸反馈:用Systrace和日志追踪小圆点显示的全过程

Android触摸反馈调试实战&#xff1a;从Systrace到Logcat的全链路追踪 在移动应用开发中&#xff0c;触摸反馈的准确性和即时性直接影响用户体验。当用户手指接触屏幕时&#xff0c;那个跟随指尖跳动的小圆点看似简单&#xff0c;背后却隐藏着复杂的系统级交互。本文将带你深入…...

Keepalived+Nginx+Tomcat 高可用项目集成 MySQL 数据库全记录

前言在之前的文章中&#xff0c;我搭建了基于 KeepalivedNginxTomcat 的高可用 Web 架构&#xff0c;实现了入口 VIP 漂移和反向代理。但这套架构还缺少“数据层”——所有服务都是无状态的&#xff0c;不能持久化数据。为了让项目更完整&#xff0c;我决定加入 MySQL 数据库&a…...

Java 从入门到精通(八):抽象类和接口到底怎么选?看懂之后,面向对象才算真的入门

Java 从入门到精通&#xff08;八&#xff09;&#xff1a;抽象类和接口到底怎么选&#xff1f;看懂之后&#xff0c;面向对象才算真的入门 学到封装、继承、多态之后&#xff0c;很多人会有一种“好像差不多懂了”的感觉。 会定义类&#xff0c;会 new 对象&#xff0c;也知道…...

利用OFA-Image-Caption自动生成Latex论文图表标题与描述

利用OFA-Image-Caption自动生成Latex论文图表标题与描述 写论文最烦人的步骤是什么&#xff1f;对我而言&#xff0c;除了反复修改格式&#xff0c;就是给那一大堆图表想标题和写描述了。一张图&#xff0c;你得想个既准确又简洁的标题&#xff0c;还得在正文里引用它&#xf…...

每日一题 力扣 3548. 等和矩阵分割 II 前缀和 哈希表 C++ 题解

文章目录题目描述思路简述代码实现复杂度分析踩坑记录题目描述 力扣 3548. 等和矩阵分割 II 示例 1&#xff1a; 输入&#xff1a; grid [[1,4],[2,3]] 输出&#xff1a; true 解释&#xff1a; 在第 0 行和第 1 行之间进行水平分割&#xff0c;结果两部分的元素和为 1 4 5…...

DownKyi架构深度解析:高效B站视频下载工具的技术实现与实战指南

DownKyi架构深度解析&#xff1a;高效B站视频下载工具的技术实现与实战指南 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印…...