Unity之角色控制器

PS:公司终于给我派任务了,最近几天都没学Unity🤧。

 一、角色控制器的实现方式

目前小编知道的角色控制器实现方式有三种:

  1. 应用商店的角色控制系统
  2. Unity自己的角色控制器
  3. 通过物理系统去做角色控制器

本篇介绍的是第二种Unity自己的角色控制器,实现起来也较为简单。

二、虚拟轴

2.1 概念

在实现角色控制器之前先介绍一个概念:虚拟轴,可以看做游戏手柄的摇杆。


这是来自飞羽老师书上关于虚拟轴概念的截图:

 比如左和右对应键盘的A和D就可以看做一个虚拟轴。

Unity角色控制器的实现是通过获取虚拟轴创建方向向量加上移动来实现的

2.2 查看Unit的的虚拟轴设置

 编辑 ——>  项目设置 ——>  输入管理器,在轴线里边查看:

 比如说这里的水平轴,名称为Horizontal,我们获取水平轴的时候就是通过名称来获取,a和d就是代表对应键盘的键位,我们也可以自己编辑改变键位。

三、角色控制器

开始动手实现角色移动:

  1. 新建两个3D对象,一个平面一个胶囊,平面代表地面胶囊代表我们控制的角色。
  2. 给胶囊添加组件Rigidbody、Character Controller
  3. 新建一个脚本命名为Move Control挂载到胶囊上,打开编辑脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;


public class MoveControl : MonoBehaviour
{
    //获取角色控制组件
    private CharacterController player;
    void Start()
    {
        player = GetComponent<CharacterController>();
    }

    // Update is called once per frame
    void Update()
    {
        //获取水平轴  左右方向
        float horizontal = Input.GetAxis("Horizontal");
        //获取垂直轴  前后方向
        float vertical = Input.GetAxis("Vertical");
        //创建成一个方向向量,第二个参数数值为 0 防止原地起飞
        Vector3 dir = new Vector3(horizontal, 0, vertical);
        //player.Move(dir);      //不受重力影响 
        player.SimpleMove(dir*10);  //受重力影响
    }
}

方向向量用来控制角色移动方向,移动在Unity的方法有两个,这里我们用受重力影响的SimpleMove方法。dir*10  这里的  *10代表了移动速度*10,当然你想做一个闪电侠也可以  *9999999,保证让你连影子都看不到😋

我们来看一下效果:可以看到在重力组件的作用下我们控制闪电侠跳崖了😃

离做一个fps游戏demo又近了一步,拜拜┏(^0^)┛~

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

电商新趋势:解析养号的必要性及海外云手机运用攻略

在电商领域&#xff0c;什么最为关键&#xff1f;答案无疑是流量&#xff01;然而&#xff0c;如何以较低成本获取大量流量成为了许多电商从业者头疼的问题。虽然直接投放广告是一种方式&#xff0c;但在内卷的情况下效果越来越难以令人满意&#xff0c;高昂的广告费用也原来越…

Java零基础教学文档第三篇:JDBC

今日新篇章 【JDBC】 【主要内容】 JDBC概述 使用JDBC完成添加操作 使用JDBC完成更新和删除 DBUtils的简单封装 使用JDBC完成查询 使用JDBC完成分页查询 常用接口详解 JDBC批处理 SQL注入问题 事务处理解决转账问题 连接池 使用反射对DBUtils再次的封装 BaseDAO的封…

供水管网动态模型分类及应用分析

当供水管网中发生启停泵、快速关阀等事件时, 延时时段模拟 (即准稳态模型) 不能准确预测系统的瞬时动态变化, 而需要采用更为准确复杂的瞬变流动态模型。为明确多种动态模型之间的差异, 探讨和分析了供水管网动态模型的分类、模型理论以及在管网运行管理中的应用。结果表明, 准…

react 项目结构配置

1 项目整体目录结构的搭建 如下图&#xff1a; 2 重置css样式: normalize.css reset.less ; 第一步 安装 npm i normalize.css 入口文件index.tsx导入&#xff1a;import ‘noremalize.css’ 第二步 创建自己的css样式&#xff1a;在assets文件夹中创建css…

关于mysql OR使用的细节,加上()避免OR扩大sql查询范围

错误场景描述&#xff1a;现在在我的预约订单里面截止日期明明已经超过了当前时间却还显示&#xff0c;这个时候正常逻辑是只显示在历史订单中的。 错误归因&#xff1a;关于下面这段查询中 这一组条件加上&#xff08;&#xff09;与不加上括号天差地别&#xff0c;也是导致业…

网络安全全栈培训笔记(WEB攻防-51-WEB攻防-通用漏洞验证码识别复用调用找回密码重定向状态值)

第51天 WEB攻防-通用漏洞&验证码识别&复用&调用&找回密码重定向&状态值 知识点&#xff1a; 1、找回密码逻辑机制-回显&验证码&指向 2、验证码验证安全机制-爆破&复用&识别 3、找回密码客户端回显&Response状态值&修改重定向 4、…

使用nginx+HTML2canvas将任意html网页转为png图片自定义张数

文章目录 概述网页的转换html2canvas的使用导入导入HTML2canvas库函数定义 nginx部署编写控制截图网页代码iframe 网页控制代码 测试说明 概述 本文简述如何使用nginxhtml2canvas将任意网页html转为png图片 网页的转换 如果是本地网页&#xff0c;直接进行nginx反向代理就行…

DFT中的SCAN、BIST、ATPG基本概念

DFT中的SCAN、BIST、ATPG基本概念 SCAN 定义 扫描路径法是一种针对时序电路芯片的DFT方案&#xff0c;目标是在不影响正常功能的情况下来能够提高可控性和可观测性。 原理 原理是将时序电路可以模型化为一个组合电路网络和带触发器(Flip-Flop&#xff0c;简称FF)的时序电路…

vue开发H5 实现滑动图片获取验证码

<template><div><van-button type"primary" click"sendVerification">获取验证码</van-button><van-popupv-model"captchaVisible"closeableposition"bottom"class"login-captcha":close-on-cli…

Java接入Apache Spark(入门环境搭建、常见问题)

Java接入Apache Spark&#xff08;环境搭建、常见问题&#xff09; 背景介绍 Apache Spark 是一个快速的&#xff0c;通用的集群计算系统。它对 Java&#xff0c;Scala&#xff0c;Python 和 R 提供了的高层 API&#xff0c;并有一个经优化的支持通用执行图计算的引擎。它还支…

腾讯云服务器建站教程——2024更新部署网站教程

使用腾讯云服务器搭建网站全流程&#xff0c;包括轻量应用服务器和云服务器CVM建站教程&#xff0c;轻量可以使用应用镜像一键建站&#xff0c;云服务器CVM可以通过安装宝塔面板的方式来搭建网站&#xff0c;腾讯云服务器网txyfwq.com分享使用腾讯云服务器建站教程&#xff0c;…

UCB Data100:数据科学的原理和技巧:第二十一章到第二十六章

二十一、SQL II 原文&#xff1a;SQL II 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 学习成果 介绍过滤组的能力 在 SQL 中执行数据清理和文本操作 跨表连接数据 在本讲座中&#xff0c;我们将继续上次的工作&#xff0c;介绍一些高级的 SQL 语法。 首先&…

【kafka】记录用-----------1

主题&#xff08;topic&#xff09;&#xff1a;消息的第一次分类 根据人为的划分条件将消息分成不同的主题 主题的划分是人为的根据不同的任务情景去划分 比如&#xff0c;我们有两个主题&#xff0c;一个是"订单"&#xff0c;另一个是"库存"。每个主题代…

eureka-server项目工程搭建、linux集群部署

Eureka是Netflix开发的服务发现框架&#xff0c;本身是一个基于REST的服务&#xff0c;主要用于定位运行在AWS域中的中间层服务&#xff0c;以达到负载均衡和中间层服务故障转移的目的。SpringCloud将它集成在其子项目spring-cloud-netflix中&#xff0c;以实现SpringCloud的服…

与纸质合同相比,电子合同有哪些优势?

在无纸化办公的当下&#xff0c;电子合同软件成为了企业数字化转型必不可少的工具。而随着国内电子合同软件功能的完善&#xff0c;电子合同拥有便捷&#xff0c;安全&#xff0c;功能等要素&#xff0c;因此&#xff0c;电子合同是更多人的选择方式。 电子合同指的是双方或者多…

antd时间选择器,设置显示中文

需求 在实现react&#xff0c;里面引入antd时间选择器&#xff0c;默认显示为英文 思路 入口处使用ConfigProvider全局化配置&#xff0c;设置 locale 属性为中文来实现。官方文档介绍全局化配置 ConfigProvider - Ant Design 代码 import React from react; import { Prov…

Shutter Encoder多媒体转换v17.8

软件介绍 多媒体包含种类繁多的各种文件格式&#xff0c;每种格式都有其不同的特征和所谓的“怪癖”。 因此&#xff0c;如果使用多种图像、视频或音频格式&#xff0c;找到一个集中的软件来从一个地方处理所有这些格式可能会非常棘手。 这就是 Shutter Encoder 基本上允许做的…

Git的安装

1、下载 官网地址&#xff1a; https://git-scm.com/或https://github.com/git-for-windows/git/releases 百度网盘链接&#xff1a;链接&#xff1a;https://pan.baidu.com/s/13_asGO-XQb5KWWH_V7rq6g?pwd0630 2、安装 ①查看GNU协议&#xff0c;可以直接点击下一步。 ②…

加速 Android Studio 依赖项下载

在某些网络环境中&#xff0c;访问互联网可能受到限制&#xff0c;在Android Studio中&#xff0c;项目构建时可能需要下载依赖项&#xff0c;如果网络受到限制&#xff0c;就无法下载或下载速度非常慢只有十几 kb/s &#xff0c;设置可以帮助解决下载问题。 进入设置页面找到…

HTTP数据请求

文章目录 1 概述2 什么是HTTP3 如何发起HTTP请求4 参考链接 1 概述 日常生活中我们使用应用程序看新闻、发送消息等&#xff0c;都需要连接到互联网&#xff0c;从服务端获取数据。例如&#xff0c;新闻应用可以从新闻服务器中获取最新的热点新闻&#xff0c;从而给用户打造更…