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进行前后左右移动,通过鼠标右键进行旋转 Step1:创建一个Player玩家,在节点下加两个子物体,一个摄像头和一个Capsule充当身体 Step2:创建一个脚本挂载在Player节点下,再在这个Pl…...
【UBOOT】1-使用与烧写
一、uboot简介 1)uboot是一个裸机程序,比较复杂 2)最主要的作用是引导Linux内核启动; 初始化DDR; 因为Linux是运行在DDR里面的;而Linux镜像(zImage或uImagedtb)一般存放在SD EMM…...
竞赛 深度学习OCR中文识别 - opencv python
文章目录 0 前言1 课题背景2 实现效果3 文本区域检测网络-CTPN4 文本识别网络-CRNN5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习OCR中文识别系统 ** 该项目较为新颖,适合作为竞赛课题方向,…...
XTU-OJ 1331-密码
题目描述 Eric喜欢使用数字1,2,3,4作为密码,而且他有个怪癖,相邻数字不能相同,且相差不能超过2。当然只用数字做密码,会比较弱,Eric想知道当长度为n时,这样的密码有多少种? 输入 第一行是一个整…...
【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- 命名信号量和无名信号量的区别
命名信号量和无名信号量之间的区别主要在于它们的可见性、生命周期以及如何在进程或线程之间共享。根据这些特点,它们各自更适合不同的应用场景: 命名信号量: 可见性:命名信号量由一个与其关联的名称标识,通常在某种文…...
【C/C++】STL——深度剖析list容器
👻内容专栏: C/C编程 🐨本文概括:list的介绍与使用、深度剖析及模拟实现。 🐼本文作者: 阿四啊 🐸发布时间:2023.10.12 一、list的介绍与使用 1.1 list的介绍 cpluplus网站中有关…...
#力扣:136. 只出现一次的数字@FDDLC
136. 只出现一次的数字 - 力扣(LeetCode) 一、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 英:Virtual Reality 中文翻译:虚拟现实 又称计算机模拟现实。是指由计算机生成3D内容,为用户提供视觉、听觉等感官来模拟现实,具有很强的“临场感”和“沉浸感”。我们可以使用耳机、控制器…...
UE5射击游戏案例蓝图篇(一)
一、使用到的资源 1.小白人动画包 2.基础武器包 3.虚幻商城免费的模型包 二、角色创建 1.以Character为基类创建出需要的角色,双击打开之后并在已有组件的基础上,添加摄像机臂和摄像机两个组件。添加完成之后可以根据自己的需要调整摄像机臂的位置&…...
excel管理接口测试用例
闲话休扯,上需求:自动读取、执行excel里面的接口测试用例,测试完成后,返回错误结果并发送邮件通知。 分析: 1、设计excel表格 2、读取excel表格 3、拼接url,发送请求 4、汇总错误结果、发送邮件 开始实现…...
根文件系统制作并启动 Linux
根文件系统制作并启动 Linux busybox 下载链接: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教学编程机器人使用介绍 为了避免被编程语言固有的复杂性所困扰,有一个被称为卡雷尔(Karel)机器人的微型世界(microworld)的简化环境,可以让编程初学者从中学习理解编程的基本概念,而不…...
换低挡装置(Kickdown, ACM/ICPC NEERC 2006, UVa1588)rust解法
给出两个长度分别为n1,n2(n1,n2≤100)且每列高度只为1或2的长条。需要将它们放入一个高度为3的容器(如图3-8所示),问能够容纳它们的最短容器长度。 样例 2112112112 2212112 1012121212 2121…...
Windows10用Navicat 定时备份报错80070057
直接按照网上的教程配置定时任务发现报错,提示参数非法之类的,80070057。 搜索加自己测试发现是用户权限问题。 设置任务计划的时候,我用了用户组,选了administors,在勾选上run with hightest privileges。 查找用户…...
JimuReport 积木报表 v1.6.4 稳定版本正式发布 — 开源免费的低代码报表
项目介绍 一款免费的数据可视化报表,含报表和大屏设计,像搭建积木一样在线设计报表!功能涵盖,数据报表、打印设计、图表报表、大屏设计等! Web 版报表设计器,类似于excel操作风格,通过拖拽完成报…...
为什么要把 String 设计为不可变?
将字符串设计为不可变具有多个重要的原因: 线程安全性: 不可变字符串可以在多线程环境中共享而无需额外的同步措施。因为字符串不会改变,多个线程可以同时访问它而不会导致竞态条件或数据不一致性。 缓存和性能优化: 字符串不可变…...
华为OD机考算法题:服务器广播
题目部分 题目服务器广播难度难题目说明服务器连接方式包括直接相连,间接连接。A 和 B 直接连接,B 和 C 直接连接,则 A 和 C 间接连接。直接连接和间接连接都可以发送广播。 给出一个 N * N 数组,代表 N 个服务器,mat…...
Android ViewBinding和DataBinding功能作用区别
简述 ViewBinding和DataBinding都是用于在 Android 应用程序中处理视图的工具,但它们有不同的作用和用途。 ViewBinding: ViewBinding 是 Android Studio 的一个工具,用于生成一个绑定类,能够轻松访问 XML 布局文件中的视图。ViewBinding 为…...
【云计算网络安全】DDoS 攻击类型:什么是 ACK 洪水 DDoS 攻击
文章目录 一、什么是 ACK 洪水 DDoS 攻击?二、什么是数据包?三、什么是 ACK 数据包?四、ACK 洪水攻击如何工作?五、SYN ACK 洪水攻击如何工作?六、文末送书《AWD特训营》内容简介读者对象 一、什么是 ACK 洪水 DDoS 攻…...
DDoS攻击:企业与个人都应了解的基本知识
一、DDoS攻击的基本原理 DDoS攻击的基本原理在于通过超载目标系统、服务或网络的资源,使其无法正常响应合法用户的请求。这类攻击通常涉及大量计算机或设备,这些设备被操纵成一个庞大的“僵尸网络”(botnet)。攻击者利用这个庞大…...
VSCode经典体验配置指南:从界面净化到键盘流工作流打造
1. 项目概述:为什么我们需要一个“经典体验”的VSCode?如果你和我一样,是个在代码编辑器里泡了十多年的老程序员,那你一定经历过从记事本、Notepad、Sublime Text到Visual Studio Code(VSCode)的漫长迁徙。…...
程序员,真要失业了:Claude Code新增/goal指令,一个命令,AI替你干完整个项目
最近,GitHub上发生了一件小事。 一个全美排名Top 5的软件工程师,发了一条帖子,只有三句话: “我用/goal重构了一个3万行的遗留项目,花了4小时。” “没有人盯着我,没有PR被拒,没有半夜爬起来看…...
Cursor AI插件开发指南:构建企业级智能编码助手
1. 项目概述:一个为开发者而生的智能编码伴侣如果你是一名开发者,每天在IDE里敲代码的时间超过8小时,那你一定对“上下文切换”和“信息查找”这两件事深恶痛绝。想象一下,你正在写一个复杂的API接口,突然需要回忆上周…...
Python热重载工具Reloadium:原理、配置与实战避坑指南
1. 项目概述:重新定义Python热重载的开发体验如果你是一名Python开发者,无论是做Web后端、数据分析脚本还是机器学习模型训练,大概率都经历过这样的场景:修改了一行代码,保存文件,然后不得不手动停止当前运…...
Motorola LS2208条码扫描器USB接口模式解析与Python数据采集实战
1. 项目概述:从“扫码枪”到数据采集终端在仓库、快递站或者超市收银台,我们每天都能看到工作人员拿着一个像手枪一样的东西,“嘀”一声,商品信息就录入了系统。这个设备就是条码扫描器,很多人习惯叫它“扫码枪”。你可…...
Belullama:本地大模型部署的瑞士军刀,兼容Ollama API
1. 项目概述:一个为本地大模型量身定制的“瑞士军刀”如果你和我一样,热衷于在本地部署和折腾各种开源大语言模型,那你一定遇到过这样的场景:好不容易从Hugging Face或者ModelScope上拖下来一个几十GB的模型文件,兴冲冲…...
Windows驱动管理专业解决方案:Driver Store Explorer完全指南
Windows驱动管理专业解决方案:Driver Store Explorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer Driver Store Explorer(简称Rapr)是一款…...
如何一键修复Windows系统依赖问题:VisualCppRedist AIO终极解决方案指南
如何一键修复Windows系统依赖问题:VisualCppRedist AIO终极解决方案指南 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过打开游戏或…...
JSON Schema驱动智能体交互:构建结构化协作的接口契约
1. 项目概述:一个为智能体交互而生的“接口契约” 在构建基于大型语言模型的智能体(Agent)系统时,我们常常会遇到一个核心痛点:如何让智能体之间、智能体与工具之间、甚至是智能体与外部系统之间,进行结构…...
