unity学习32:角色相关1,基础移动控制

devtools/2025/2/8 6:45:48/

目录

0  应用商店

1 角色上新增CharacterController 组件

1.1 角色上新增CharacterController 组件

 1.2 如果没有这个则会报错​编辑

2 速度

2.1 默认速度

2.2 修改速度为按时间计算

2.2 movespeed,

3 测试移动的代码

3.1 CharacterController  变量的声明

3.2 实现移动

3.2.1 方向向量

3.2.2 移动语句

3.3 代码和移动效果


0  应用商店

  • 甚至外部,能找到很多免费,的角色控制,摄像机,等等资源
  • 不光是角色的资源,动作资源,甚至对应的动作脚本都写好了
  • 这个是不是起到了类似 python 各种包的效果,而且还是 官方应用商店,下载起来更方便

1 角色上新增CharacterController 组件

1.1 角色上新增CharacterController 组件

  • 新建角色
  • 角色上新增CharacterController 组件
  • 新建脚本
  • 拖到这个角色上

 1.2 如果没有这个则会报错

MissingComponentException: There is no 'CharacterController' attached to the "player" game object, but a script is trying to access it.
You probably need to add a CharacterController to the game object "player". Or your script needs to check if the component is attached before using it.
UnityEngine.CharacterController.SimpleMove (UnityEngine.Vector3 speed) (at <bff907ed581f483ab4bd129472866e97>:0)
TestPlayerControl.Update () (at Assets/TestPlayerControl.cs:26)

2 速度

2.1 默认速度

  • 每帧1米,肯定太快了
  • player1.Move(dir1*moveSpeed);

2.2 修改速度为按时间计算

  • player1.Move(dir1*moveSpeed*Time.deltaTime);
  • *Time.deltaTime 把移动速度,转化为按秒来计算
  • 但是,每秒1米太慢(这个是unity的基本速度)

2.2 movespeed,

  • player1.Move(dir1*moveSpeed*Time.deltaTime);
  • movespeed,声明为公共变量
  • public float moveSpeed = 5.0f; // 移动速度
  • 这样在脚本外unity里也可以修改

 

3 测试移动的代码

3.1 CharacterController  变量的声明

  • private CharacterController player1
  • player1=GetComponent<CharacterController>()

    

3.2 实现移动

3.2.1 方向向量

  • //水平轴
  • float horizontal=Input.GetAxis("Horizontal");
  • //垂直轴
  • float vertical=Input.GetAxis("Vertical");
  • //创建成一个方向向量
  • Vector3 dir1=new Vector3(horizontal,0,vertical);

显示移动方向

Debug.DrawRay(transform.position,dir1,Color.red);

3.2.2 移动语句

  • player1.SimpleMove(dir1);
  •  //player1.transform.Translate(2.0f*Time.deltaTime);
  •  player1.Move(dir1*moveSpeed*Time.deltaTime);

3.3 代码和移动效果

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class TestPlayerControl : MonoBehaviour
{private CharacterController player1;public float moveSpeed = 5.0f; // 移动速度// Start is called before the first frame updatevoid Start(){player1=GetComponent<CharacterController>();}// Update is called once per framevoid Update(){//水平轴float horizontal=Input.GetAxis("Horizontal");//垂直轴float vertical=Input.GetAxis("Vertical"); //创建成一个方向向量Vector3 dir1=new Vector3(horizontal,0,vertical);Debug.DrawRay(transform.position,dir1,Color.red);//player1.SimpleMove(dir1);//player1.transform.Translate(2.0f*Time.deltaTime);player1.Move(dir1*moveSpeed*Time.deltaTime);}
}


 


http://www.ppmy.cn/devtools/157033.html

相关文章

python:递归函数与lambda函数

递归函数&#xff1a;1.函数内调用自己 2.有一个出口 1.递归 一.有出口时 def sum(num):if num1:return 1return numsum(num-1) asum(3) print(a) #num3 3sum(2) #num2 2sum(1) #num1是返回1 #即3sum(2&#xff09;即32sum(1)即321运行结果 6 二.无出口时 def sum(num)…

探索从传统检索增强生成(RAG)到缓存增强生成(CAG)的转变

在人工智能快速发展的当下&#xff0c;大型语言模型&#xff08;LLMs&#xff09;已成为众多应用的核心技术。检索增强生成&#xff08;RAG&#xff09;&#xff08;RAG 系统从 POC 到生产应用&#xff1a;全面解析与实践指南&#xff09;和缓存增强生成&#xff08;CAG&#x…

M5AXXB 100v三端稳压ic ldo降压芯片工作原理及应用实例分析

M5AXXB 100v三端稳压ic ldo降压芯片工作原理及应用实例分析 ### M5AXXB 芯片工作原理及应用实例分析 #### 一、引言 M5AXXB 是一款高性能线性调压芯片&#xff0c;广泛应用于各种电源调节领域。本文将详细介绍其工作原理&#xff0c;并通过实际应用场景分析其在现代电子设备中…

录音质检,只质检录音,没有显卡的服务器配置分析

如果不做实时质检&#xff0c;只做录音质检&#xff0c;且需要支持 500并发&#xff0c;可以通过以下优化策略和资源配置来实现高效处理&#xff1a; 核心优化思路 批量处理&#xff1a; 将录音文件分批次处理&#xff0c;避免单次并发过高导致资源耗尽。使用任务队列&#xf…

达梦分布式集群DPC_表分区方式详细介绍_yxy

达梦分布式集群DPC_表分区方式详细介绍 1 范围分区1.1 建表语句示例1.2 优劣势分析 2 间隔分区2.1 建表语句示例2.2 优劣势 3 HASH分区3.1 建表示例3.2 优劣势分析 4 列表分区4.1 建表示例4.2 优劣势分析 5 以上分区组成的复合分区5.1 建表示例5.2 优劣势分析 6 分区方式适合场…

工作总结:上线篇

文章目录 前言一、上线流程二、各种问题流水线问题1.编译问题2.单测问题3.磁盘空间问题 发单问题上线后的问题前后端合作的情况后端项目和后端项目合作的情况后端项目和小程序合作的情况自己的项目代码的情况&#xff08;无任何合作&#xff09;发单问题 前言 上线算是我工作中…

部署DeepSeek-R1-Distill-Qwen-7B并进行推理

下载模型文件&#xff1a; 将https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B/tree/main目录下面的所有文件全部下载下来&#xff0c;稍微有点大&#xff0c;所有文件将近16个G 编写代码进行推理 $ more testDS.py from transformers import AutoModelForC…

基于keepalived+GTID半同步主从复制的高可用MySQL集群

文章目录 项目架构图项目名称项目环境项目描述ip地址规划项目步骤一.安装好8台全新的centos7.9的系统&#xff0c;关闭firewalld和selinux&#xff0c;配置每台主机的静态ip地址&#xff0c;设置每台主机对应的主机名。1、关闭firewalld2.关闭seLinux3.配置每台主机静态ip地址4…