【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.hqwc.cn/news/195354.html

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

相关文章

linux文件IO

文件IO截断 截断对文件的偏移量没有影响。

【Go入门】Web工作方式

【Go入门】 Web工作方式 我们平时浏览网页的时候,会打开浏览器,输入网址后按下回车键,然后就会显示出你想要浏览的内容。在这个看似简单的用户行为背后,到底隐藏了些什么呢? 对于普通的上网过程,系统其实是这样做的&…

python-opencv 培训课程笔记(1)

python-opencv 培训课程笔记(1) 博主参加了一次opencv库的培训课程,把课程所学整理成笔记,供大家学习,第一次课程包括如下内容: 1.读取图像 2.保存图像 3.使用opencv库显示图像 4.读取图像为灰度图像 …

大数据安全 测试

测试1、用户 hive/1.common2.hadoop.fql.comLEXIN.COM 和 nn/1.common2.hadoop.fql.com 分别对 Hive 进行查询 &#xff08;1&#xff09;HDFS 配置 vim /usr/local/fqlhadoop/hadoop/conf/core-site.xml <property><name>hadoop.proxyuser.hive.hosts</name&g…

度加创作工具 演示

度加创作工具 功能图功能测试文比润色测试经验分享测试测试输出测试输出工具地址功能图 功能测试 文比润色测试 经验分享测试 测试输出 在人工智能领域,我们一直在追求一个终极目标:让机器能够像人类一样,能够理解、学习和解决各种复杂问题。而要实现这个目标,我们需要将…

BGP综合实验

一、实验拓扑 二、实验要求 1、AS1中存在两个环回&#xff0c;一个地址为192.168.1.0/24&#xff0c;该地址不能在任何协议中宣告&#xff1b; AS3中存在两个环回&#xff0c;一个地址为192.168.2.0/24&#xff0c;该地址不能在任何协议中宣告&#xff…

10_6 input输入子系统,流程解析

简单分层 应用层 内核层 --------------------------- input handler 数据处理层 driver/input/evdev.c1.和用户空间交互,实现fops2.不知道数据怎么得到的,但是可以把数据上传给用户--------------------------- input core层1.维护上面和下面的两个链表2.为上下两层提供接口--…

uniapp 微信小程序登录 新手专用 引入即可

预览 第一步导入插件 在引入的页面的登录按钮下拷贝一下代码 <template><view class"content"><button type"primary" click"login">微信登录</button></view><TC-WXlogin :wxloginwxlogin /> </templ…

YOLOv5 学习记录

文章目录 整体概况数据增强与前处理自适应Anchor的计算Lettorbox 架构SiLU激活函数YOLOv5改进点SSPF 模块 正负样本匹配损失函数 整体概况 YOLOv5 是一个基于 Anchor 的单阶段目标检测&#xff0c;其主要分为以下 5 个阶段&#xff1a; 1、输入端&#xff1a;Mosaic 数据增强、…

SpirngBoot + Vue 前后端分离开发工具代码

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; Java从入门到精通 ✨特色专栏&#xf…

MIB 6.S081 System calls(1)using gdb

难度:easy In many cases, print statements will be sufficient to debug your kernel, but sometimes being able to single step through some assembly code or inspecting the variables on the stack is helpful. To learn more about how to run GDB and the common iss…

linux系统环境下mysql安装和基本命令学习

此篇文章为蓝桥云课--MySQL的学习记录 块引用部分为自己的实验部分&#xff0c;其余部分是课程自带的知识&#xff0c;链接如下&#xff1a; MySQL 基础课程_MySQL - 蓝桥云课 本课程为 SQL 基本语法及 MySQL 基本操作的实验&#xff0c;理论内容较少&#xff0c;动手实践多&am…