Unity 简易第一人称角色控制器移动和视角控制

Unity之角色控制器 PS:公司终于给我派任务了,最近几天都没学Unity🤧。 阅读详情

交互方式:WASD控制摄像机移动,鼠标右键控制摄像机视角旋转。

实现操作

1、unity 工程中创建胶囊体,移除Mesh Renderer组件
2、添加Rigidbody组件,按照下图设置参数
在这里插入图片描述

3、创建一个平面(使用Plane或Cube均可),调整胶囊体与摄像机位置,使摄像机位于胶囊体上方合适位置,设置胶囊体为摄像机的父物体,并设置胶囊体在平面上方的位置。
4、将 playerMove.cs脚本添加到胶囊体物体上,并将摄像机物体拖到脚本中Eye物体中,代码如下。

using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Threading;
using UnityEngine;
using UnityEngine.EventSystems;

public class playerMove : MonoBehaviour
{
    
    private float moveSpeed;//摄像机的移动速度
    public GameObject Eye;
    void Start()
    {
        moveSpeed = 2;
    }

    Vector3 rot = new Vector3(0, 0, 0);

    void Update()
    {
            //鼠键控制移动
            WASD();

        if ( Input.anyKey )
        {
            this.GetComponent<Rigidbody>().constraints = RigidbodyConstraints.FreezeRotation;

        }
        else
        {
            this.GetComponent<Rigidbody>().constraints = RigidbodyConstraints.FreezeAll;
        }
    }

    /// <summary>
    /// 鼠键控制player移动
    /// </summary>
    void WASD()
    {
        if (Input.GetMouseButton(1))
        {
            if ( Input.GetAxis("Mouse X") != 0 )
            {
                //Debug.Log(Input.GetAxis("Mouse X"));
                if ( Input.GetAxis("Mouse X") < 0.1f && Input.GetAxis("Mouse X") > -0.1f )
                {         
                   // return;
                }
                this.gameObject.transform.Rotate(new Vector3(0, Input.GetAxis("Mouse X") * Time.fixedDeltaTime * 200, 0));//摄像机的旋转速度
                //clearArrow(false);
            }
            if ( Input.GetAxis("Mouse Y") != 0 )
            {
                if ( Input.GetAxis("Mouse Y") < 0.1f && Input.GetAxis("Mouse Y") > -0.1f )
                {
                    Debug.Log("返回");
                  //  return;
                }
                Eye.transform.Rotate(new Vector3(Input.GetAxis("Mouse Y") * Time.fixedDeltaTime * -200, 0, 0));//摄像机的旋转速度
            }
        }
        if (Input.GetKey(KeyCode.W))
        {
            gameObject.transform.Translate(Vector3.forward * Time.deltaTime * moveSpeed);    
        }
        if (Input.GetKey(KeyCode.S))
        {
            gameObject.transform.Translate(-Vector3.forward * Time.deltaTime * moveSpeed); 
        }

        if (Input.GetKey(KeyCode.A))
        {
            gameObject.transform.Translate(-Vector3.right * Time.deltaTime * moveSpeed);    
        }
        if (Input.GetKey(KeyCode.D))
        {
            gameObject.transform.Translate(Vector3.right * Time.deltaTime * moveSpeed);         
        }        
    }    
}
unity学习之角色控制器 欢迎来到unity学习、unity培训 这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d培训、学习第一品牌 角色控制器     定义:第三人称或第一人称游戏主角控制使用角色控制器,而不用刚体物理效果。使用角色控制器可以实现非常好的控制效果。     手动添加角色控制器:给游戏对象添加角色控制器 阅读详情

相关推荐

unity实现坦克第一人称视角移动 鼠标发射,位置改变

Holle 好久没更新了,实在想不到更新啥了,就更新下最近痴迷的unity吧。 分为四个板块,实现第三人称视角,上下左右移动,鼠标进行发射炮弹,鼠标改变移动方向 我们的需要准备的工作有:unity 自己制作一个喜欢的模型player(玩家) 坦克 士兵 飞机什么都行 将玩家放在地面上 一,实现上下左右移动 镜头跟随玩家 实现第一人称视角 鼠标实现位置方向的改变 注意事项: 三维和二维的上下左右是不一样的 二维的上是up 下是down 而三维是没有上(除了跳跃,飞行)三维世界中...

m0_46540496的博客 4324

Unity:角色控制器(CharacterController)

角色控制器的简单应用

m0_61777011的博客 1万+

Unity入门操作_ 角色控制器_015

CharacterController 编写第一人称控制器using UnityEngine; using System.Collections;public class Controller : MonoBehaviour {CharacterController _characterController; Rigidbody _rigidbody;float _horizontal; flo

wy小骑士 1466

角色控制器 CharacterController.Move

角色控制器没有碰撞效果和刚体最明显的区别   属性面板参数: Slope Limit:爬坡限制 Step Offset:台阶高度 Skin Width :皮肤厚度 皮肤厚度决定了两个碰撞器可以互相渗入的深度。较大的皮肤厚值度会导致颤抖。小的皮肤厚度值会导致角色被卡住。一个合理的设定是使该值等于半径(Radius)的10%。 Min Move Distance:最小移动距离 如果角色移动的...

清风ai明月的专栏 6614

Unity简单的第一人称控制器编写

using UnityEngine; using System.Collections;public class Practise : MonoBehaviour { private Transform _transfrom; private const float _viewXUp = 60; private const float _viewXDown = -30;

tianduyingcai0113的博客 1487

【Unity每日一记】角色控制器Character Contorller

角色控制器Character Contorller

秩沅 3865

Unity 制作第一人称角色控制器、移动和视角控制

1、player1面板 2、player下加上一个摄像机。 3、脚本如下: public class player : MonoBehaviour { private float moveSpeed;//摄像机的移动速度 public GameObject Eye; void Start() { moveSpeed = -8; } ...

谁为拨动染血的时空苍穹 4674

Unity终极角色控制器 Ultimate Character Controller 2.1.7.unitypackage

Ultimate Character Controller是是一款专业的运动角色控制器,旨在包括最流畅的第一和第三人称控制,并在所有领域表现出色:PC,移动,控制台,AI,网络和VR 它包含许多其他角色控制器中通常不具备的独特功能 - 从无缝的第一和第三人称视角切换到弹簧系统,允许流畅的,程序化的第一人称动画。其他独特功能包括能力系统,动态重力,以及能够根据每个角色更改时间刻度 运动特征控制器 第一和第三人称摄像机控制器 无缝切换视角 动态重力系统 高级移动平台系统 可扩展能力系统 支持双重挥舞 程序性弹簧动画 全身意识 可见轨迹曲线 反向运动学(IK) 各种各样的可射击武器 各种近战武器

Unity使用键盘wasd控制绑定角色和第一人称摄像机随鼠标移动

首先创建一个物体,然后里面加上摄像机并且调整到相应的位置 在创建的物体上添加一个组件character controller 键盘控制移动代码 public float speed = 6.0F; public float jumpSpeed = 8.0F; public float gravity = 20.0F; private Vector3 moveDirection = Vector...

pikefish的博客 1万+

calibre QRC提取寄生参数

typical将上面的文件QCI_flow里面的文件 在Cp 到当前 ,其实应该是某几个文件,但是我给忘记了 就全cp过来了 ,无影响,不过也希望大佬指正。

2202_75711937的博客 1515

海康H304NAS 刷机飞牛

本文旨在分享如何将闲置的海康威视H304 NAS刷入飞牛NAS系统,并利用iStoreOS作为安装媒介。之前因为使用极空间NAS,这台H304闲置已久。最近尝试了飞牛NAS,在虚拟机上安装后挂载极空间的电影资源,体验不错,于是决定重新折腾这台H304。我个人喜欢尝试新系统,之前经常更新H304的固件,但设备总在使用一两年后出现故障,需要联系技术清理日志才能恢复。最后一次设备“变砖”后,连技术人员也联系不上了,自己尝试修复未果,设备就此闲置两三年。

u012985257的博客 2743

【unity 】第一人称角色控制器手机虚拟双摇杆

首先新建一个image,改名为JoyStick-move(创建 image会自动创建一个Canvas),表示一个控制移动的摇杆,再建一个 image 子组件,改名为ViewPort,表示摇杆外面的圈圈,然后再建一个image孙子组件,改名为Content,表示摇杆里面的小圈圈,所以JoyStick-move、ViewPort、Content都是image。之后我们分别修改ViewPoint和Content的图片为摇杆应该有的样子,摇杆图片网上搜一下,或者自己用PS做一个 ,反正也就是两个圈圈。

冰冷的希望的博客 5233

便携式水下动态实时视频色彩还原设备,一键快速实现对水下偏色视频和图像的色彩还原处理

便携式水下动态实时视频色彩还原,一键快速对水下图像进行色彩校正,清晰度提升和亮度均衡处理,为水下资源勘探和科学考古,海洋生态环境监测,水下机器作业等应用提供有力的协助

weixin_43518680的博客 633

unity第三人称鼠标控制视角_技术宅基地——3D角色控制器的简易制作

3D角色控制器的简易制作倘若你是一名游戏爱好者,那么第一人称的游戏相必你都或多或少的接触过,或玩过,或见过,或听过,近期人气相当火爆的赛博朋克2077同样也是一款第一人称视角的游戏。那么,你是否好奇,如何通过鼠标控制人物视角,又如何通过‘w’,‘a’,‘s’,‘d’等键位去操控游戏角色的移动呢,接下来就让我们来实现这些功能。首先要声明的是我们使用的软件是unity,使用的编程语言是c#,...

weixin_40003451的博客 830

快速搭建SpringBoot3+Vue3+ElementPlus管理系统

快速搭建SpringBoot3+Vue3管理系统前端项目搭建(默认开发环境:node20,Jdk17)创建项目并下载依赖--执行以下命令 前端项目搭建(默认开发环境:node20,Jdk17) 创建项目并下载依赖–执行以下命令 创建项目 yarn create vite admin-vue --template 2.下载依赖(也可按需下载) yarn add echarts --save yarn add vue-router --save yarn add element-plus --save y

adingyb的博客 2817

熵编码(五)-CABAC(一) 基础篇

前两篇算术编码文章介绍了算术编码原理和步骤。本篇文章介绍CABAC,基于上下文自适应的二进制算术编码。本文对CABAC的基本原理进行了详细的介绍和分析,下篇文章将会对H264编码中的CABAC熵编码的实际应用进行介绍。

尹佑壮的博客 3879

Unity手游之路<七>角色控制器

我们要控制角色的移动,可以全部细节都由自己来实现。控制角色模型的移动,同时移动摄影机,改变视角。当然Unity也提供了一些组件,可以让我们做更少的工作,实现我们所期望的功能。今天我们就一起系统来学习相关的内容吧。 Charactor Controller(角色控制器) "角色控制器允许你在受制于碰撞的情况下很容易的进行运动,而不用处理刚体。角色控制器不受力的影响,仅仅当你调用M

sxl_0305 531

MTK Linux DRM分析(十一)- MTK KMS Panel显示屏驱动

面板扩展(Panel Extension)是指 MediaTek 在标准 DRM 面板驱动框架之上添加的定制化功能模块。

iTom1900 1678

Unity第一人称移动+镜头旋转

简单实现第一人称镜头移动

KKKKKzhu的博客 1627

你知道吗?其实这些都是AI——农作物监控AI

随着全球人口的不断增长,粮食需求日益增加。为了应对这一挑战,现代农业正在迅速转型,引入了许多先进技术来提高生产效率和作物产量。在这些技术中,人工智能(AI)在农作物监控方面的应用显得尤为重要。通过利用AI技术,农民和农业专家可以更好地管理农作物的生长,预防病虫害,并优化灌溉和施肥方案,从而实现农业生产的智能化和精准化。

AI科研社 367

【深度解析TI InstaSPIN】无传感器FOC控制的核心方案

TI InstaSPIN通过“自动识别+通用观测器+开源工具链”的组合,解决了无传感器FOC控制开发难度大、周期长的核心痛点。其核心优势在于快速统一软件观测器的通用性与高精度,以及Fly Start闭环零速启动策略的高可靠性,可适配空调压缩机等家电电机的复杂运行需求。在空调外机双电机控制场景中,InstaSPIN与TI C2000系列MCU(F280013x/F28E12x)完美契合,借助MCU的高性能DSP内核与丰富外设,可实现双电机的精准同步控制,同时降低硬件成本与开发周期。

昔时扬尘处 322

Unity实现角色控制器流畅控制人物

Hello,有缘人,这里是橘子广场,this is a Unity角色控制器的代码,实现人物的流场控制和视角的转换。我这里使用的是第一人称人物控制,当然第三人称重新设置下相机即可。 首先搭建好场景,空物体加角色控制器,设置好碰撞体大小,将主摄像机房放在角色头上。 接下来就是具体代码: using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerController:

nice_short的博客 1753

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Unity第一人称角色控制器

创建一个player(胶囊),然后把camera挂在player身上 public class 给摄像机的脚本 : MonoBehaviour { private float xMouse, yMouse;//获取鼠标转动的值 public float mouseSpeed=30;//鼠标灵敏度 public GameObject player;//获取player private float xRotate;//用来接收yMouse的值 void Start() { } void Update

Dore__的博客 1239

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Unity3d之角色控制器

我们要控制角色的移动,可以全部细节都由自己来实现。控制角色模型的移动,同时移动摄影机,改变视角。当然Unity也提供了一些组件,可以让我们做更少的工作,实现我们所期望的功能。今天我们就一起系统来学习相关的内容吧。 (转载请注明原文出处http://blog.youkuaiyun.com/janeky/article/details/17406095) Charactor Controller(角色

LazyChun的专栏 1万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

上一篇: Unity与单片机进行串口通信时鼠标乱跳的解决方案
下一篇: Unity 使用Loom插件实现主线程与C#线程之间的切换
爱尚游Bin
博客等级 码龄9年 86粉丝 71原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值