【0到1学习Unity脚本编程】第一人称视角的角色控制器

在这里插入图片描述


👨‍💻个人主页:@元宇宙-秩沅

👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

👨‍💻 本文由 秩沅 原创

👨‍💻 收录于专栏:【0到1】Unity脚本游戏开发宝典

🅰️



文章目录

    • 🅰️
    • 第一人称视角的角色控制器
    • 🎶(==1==) 场景创建
    • 🎶(==2==) 相机设置
    • 🎶(==3==) 初步脚本
    • 🎶(==4==) 优化脚本
    • 🅰️


第一人称视角的角色控制器


🎶(1 场景创建


在这里插入图片描述


🎶(2 相机设置


  • 将摄像机变为胶囊体的子物体,按住 ctrl +shift +F 调整视野。让他变成胶囊体的眼睛
    在这里插入图片描述

🎶(3 初步脚本


在这里插入图片描述

  • 判断要前进时按照哪个方向前进,一般UnityZ轴为前后UnityX轴为左右,
  • 判断要旋转,是按照哪个轴进行旋转(左右视角,是旋转Y轴,上下视角是旋转Z轴)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class PlayerMove : MonoBehaviour
{[ExecuteAlways]private float  moveSpeed =  1f;[ExecuteAlways]private float  rotateSpeed = 1f;void Update(){Move();}private void Move(){ float xPosition = Input.GetAxis("Horizontal") * Time.deltaTime;  //水平轴向float zPosition = Input.GetAxis("Vertical") * Time.deltaTime;    //垂直轴向//旋转不用加TimedeleTime ,因为加上会变得很慢float YRotation = Input.GetAxis("Mouse X");float XRotation = -Input.GetAxis("Mouse Y");transform.position += new Vector3(xPosition ,0 , zPosition) * moveSpeed  ;Quaternion rotateAngle = Quaternion.Euler(XRotation, YRotation, 0);  //欧拉角转换成四元数transform.rotation *= rotateAngle;  //乘上一个四元数就相当于进行了旋转     }
}

在这里插入图片描述


🎶(4 优化脚本


  • 优化1:纵轴的视野,变化幅度太大,需要进行约束
  • 优化2:点击开始时,隐藏鼠标,并将其固定到中央确保,开始时的屏幕是正的
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class PlayerMove : MonoBehaviour
{[SerializeField]private float  moveSpeed =  5f;[SerializeField]private float  rotateSpeed = 1f;private void Start(){Cursor.visible = false; //鼠标隐藏Cursor.lockState = CursorLockMode.Locked;//将光标锁定到“游戏”视图的中心。}private void Update(){Move();}private void Move(){ float xPosition = Input.GetAxis("Horizontal") * Time.deltaTime;  //水平轴向float zPosition = Input.GetAxis("Vertical") * Time.deltaTime;    //垂直轴向//旋转不用加TimedeleTime ,因为加上会变得很慢float YRotation = Input.GetAxis("Mouse X");float XRotation = -Input.GetAxis("Mouse Y");//进行抬头约束(速度减慢的效果)XRotation = Mathf.Clamp(XRotation , -0.1f ,0.1f);transform.position += new Vector3(xPosition ,0 , zPosition) * moveSpeed  ;Quaternion rotateAngle = Quaternion.Euler(XRotation, YRotation, 0);  //欧拉角转换成四元数transform.rotation *= rotateAngle;  //乘上一个四元数就相当于进行了旋转     }
}

在这里插入图片描述

🅰️


⭐【Unityc#专题篇】之c#进阶篇】

⭐【Unityc#专题篇】之c#核心篇】

⭐【Unityc#专题篇】之c#基础篇】

⭐【Unity-c#专题篇】之c#入门篇】

【Unityc#专题篇】—进阶章题单实践练习

⭐【Unityc#专题篇】—基础章题单实践练习

【Unityc#专题篇】—核心章题单实践练习


你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!


在这里插入图片描述


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/201210.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

7.Gin 路由详解 - 路由分组 - 路由文件抽离

7.Gin 路由详解 - 路由分组 - 路由文件抽离 前言 在前面的示例中,我们直接将路由的定义全部写在 main.go 文件中,如果后面 路由越来越多,那将会越来越不好管理。 所以,下一步我们应该考虑将路由进行分组管理,并且将其抽…

腾讯云代金券怎么领取(腾讯云代金券在哪领取)

腾讯云代金券是可抵扣费用的优惠券,领券之后新购、续费、升级腾讯云相关云产品可以直接抵扣订单金额,节省购买腾讯云的费用,本文将详细介绍腾讯云代金券的领取方法和使用教程。 一、腾讯云代金券领取 1、新用户代金券【点此领取】 2、老用户…

SVN创建分支

一 从本地创建方式可指定版本号进行分支创建。 1、在本地目录右击 -----> 点击branch/tag(分支/标签) From: 源,可指定具体的版本号, To path: 可通过"..."选择分支路径 最后点击确定,交由服务器执行创建。 二 通过SVN客…

3D 纹理渲染如何帮助设计师有效、清晰地表达设计理念

在线工具推荐: 三维数字孪生场景工具 - GLTF/GLB在线编辑器 - Three.js AI自动纹理化开发 - YOLO 虚幻合成数据生成器 - 3D模型在线转换 - 3D模型预览图生成服务 定义 3D 渲染可视化及其用途 3D 可视化是一种艺术形式。这是一个机会。这是进步。借助 3D 纹理…

CNVD-2023-12632:泛微E-cology9 browserjsp SQL注入漏洞复现 [附POC]

文章目录 泛微E-cology9 browserjsp SQL注入漏洞(CNVD-2023-12632)漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 泛微E-cology9 browserjsp SQL注入漏洞(CNVD-2023-12632)漏洞复现 [附POC] 0x…

visionOS空间计算实战开发教程Day 1:环境安装和编写第一个程序

安装 截至目前visionOS还未在Xcode稳定版中开放,所以需要下载​​Xcode Beta版​​。比如我们可以下载Xcode 15.1 beta 2,注意Xcode 15要求系统的版本是macOS Ventura 13.5或更新,也就是说2017年的MacBook Pro基本可以勉强一战,基…

海外IP代理:数据中心代理IP是什么?好用吗?

数据中心代理是代理IP中最常见的类型,也被称为机房IP。这些代理服务器为用户分配不属于 ISP(互联网服务提供商)而来自第三方云服务提供商的 IP 地址。数据中心代理的最大优势——它们允许在访问网络时完全匿名。 如果你正在寻找海外代理IP&am…

【JavaEE】Servlet实战案例:表白墙网页实现

一、功能展示 输入信息: 点击提交: 二、设计要点 2.1 明确前后端交互接口 🚓接口一:当用户打开页面的时候需要从服务器加载已经提交过的表白数据 🚓接口二:当用户新增一个表白的时候,…

MEMS制造的基本工艺——晶圆键合工艺

晶圆键合是一种晶圆级封装技术,用于制造微机电系统 (MEMS)、纳米机电系统 (NEMS)、微电子学和光电子学,确保机械稳定和气密密封。用于 MEMS/NEMS 的晶圆直径范围为 100 毫米至 200 毫米(4 英寸至 8 英寸),用于生产微电…

单链表(数据结构与算法)

✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅ ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨ 🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿&#x1…

PostgreSQL导出表结构带注释

我们在平时开发过程中,经常会在字段的注释中,加上中文,解释字段的相关含义,也可以避免时间太久忘记这个字段代表什么,毕竟英文水平不好。我们可能要经常整理数据库表结构,提供他人去收集数据,但…

【SpringBoot】通过profiles设置环境

效果图&#xff0c;通过profiles设置环境 在父级pom.xml中添加配置 <profiles><profile><id>dev</id><properties><application.environment>dev</application.environment></properties><activation><activeByDefau…

前端数组方法汇总集锦

前言 数组主要使用场景有&#xff1a; 存储和处理数据&#xff1a;数组是一种有序的数据结构&#xff0c;可以用来存储和处理多个相关的数据。在前端开发中&#xff0c;我们经常使用数组来存储和处理列表、表格、选项等数据。 循环和遍历&#xff1a;数组提供了循环和遍历的功能…

DependencyProperty.Register:wpf 向别的xaml传递参数

一.使用背景&#xff1a;在A.xaml中嵌入B.xaml&#xff0c;并且向B.xaml传递参数。 函数介绍&#xff1a; public static DependencyProperty Register(string name, Type propertyType, Type ownerType );name&#xff08;string&#xff09;&#xff1a; 依赖属性的名称。在…

CmakeLists编译的动态库.so移动到其他位置后,提示找不到该库的依赖库解决办法

主要问题&#xff1a; 最近在搞海康SDK调用相机&#xff0c;发现在linux下一直调用不起来相机&#xff0c;总是提示error code&#xff1a;29&#xff0c;注册失败&#xff0c;重新编译优惠存在找不到依赖库的问题。 1.异常 CmakeLists编译的动态库.so移动到其他位置后&#…

【擎标】CCID信息系统服务商交付能力等级认证标准

为顺应信息技术服务业发展趋势及市场需求&#xff0c;维护市场秩序&#xff0c;加强行业自律&#xff0c;促进信息系统服务商交付能力的不断提高&#xff0c;增强信息系统服务商创新能力和国际竞争力&#xff0c;支撑信息系统服务商转型提升&#xff0c;中国软件行业协会、企业…

Python (十二) 文件

程序员的公众号&#xff1a;源1024&#xff0c;获取更多资料&#xff0c;无加密无套路&#xff01; 最近整理了一份大厂面试资料《史上最全大厂面试题》&#xff0c;Springboot、微服务、算法、数据结构、Zookeeper、Mybatis、Dubbo、linux、Kafka、Elasticsearch、数据库等等 …

CCFCSP试题编号:201912-2试题名称:回收站选址

这题只要比较坐标的四周&#xff0c;然后计数就可以了。 #include <iostream> using namespace std;int main() {int n;cin >> n;int arr[1005][2] { 0 };int res[5] { 0 };int up 0;int down 0;int left 0;int right 0;int score 0;for (int i 0; i <…

矩阵运算_矩阵的协方差矩阵/两个矩阵的协方差矩阵_求解详细步骤示例

1. 协方差矩阵定义 在统计学中&#xff0c;方差是用来度量单个随机变量的离散程度&#xff0c;而协方差则一般用来刻画两个随机变量的相似程度。 参考&#xff1a; 带你了解什么是Covariance Matrix协方差矩阵 - 知乎 2. 协方差矩阵计算过程 将输入数据A进行中心化处理得到A…