Unity实现第一人称移动(胎教级教学)

这篇具有很好参考价值的文章主要介绍了Unity实现第一人称移动(胎教级教学)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第一步

需要一个场景和一个player作为操作角色,并且在player子目录创建一个camera作为视角

这里演示我就随便创建一个plane作为地面一个sphere作为player

Unity实现第一人称移动(胎教级教学),unity,c#,3d

Unity实现第一人称移动(胎教级教学),unity,c#,3d

然后调整好player的位置不要与地面镶嵌就像这样

Unity实现第一人称移动(胎教级教学),unity,c#,3d

然后需要给地面(你们自己的场景)和player添加一个Collider组件

在属性面板的Add Component添加

这个是碰撞体组件一般在Unity里创建3D物体会自动添加,不加会穿模

但是自己导入的模型需要自己添加,复杂的模型建议用Mesh Collider

Unity实现第一人称移动(胎教级教学),unity,c#,3d

Unity实现第一人称移动(胎教级教学),unity,c#,3d

同时要给player添加Character Controller组件

Unity实现第一人称移动(胎教级教学),unity,c#,3d

第二步

需要在Assets文件夹里创建一个Scripts文件夹用来保存脚本

Unity实现第一人称移动(胎教级教学),unity,c#,3d

然后在Scripts文件夹里创建一个脚本随你们命名,这里我命名为PlayerController

打开PlayerController脚本复制这个代码到里面,具体内容可以自己看一下改进

using UnityEngine;
/*
  @Author:Rekite
 */
public class PlayerController : MonoBehaviour
{
    CharacterController player;  //定义角色控制器组件
    public new Transform camera; //新建一个camera对象用于放入所要实现的第一人称相机
    public float speed = 2f;			 //角色移动速度
    float x, y;                  //相机旋转x,y轴控制
    float g = 10f;               //重力
    Vector3 playerrun;           //控制玩家运动的向量

    void Start()
    {
        player = GetComponent<CharacterController>();//获取人物的角色控制器组件    
    }

    void Update()
    {

        Cursor.lockState = CursorLockMode.Locked; // 锁定鼠标到视图中心
        Cursor.visible = false;//隐藏鼠标

        //控制玩家运动
        float _horizontal = Input.GetAxis("Horizontal");
        float _vertical = Input.GetAxis("Vertical");
        if (player.isGrounded)
        {
            playerrun = new Vector3(_horizontal, 0, _vertical);
        }
        playerrun.y -= g * Time.deltaTime;
        player.Move(player.transform.TransformDirection(playerrun * Time.deltaTime * speed));

        //使用鼠标来控制相机的视角的旋转
        x += Input.GetAxis("Mouse X");
        y -= Input.GetAxis("Mouse Y");
        transform.eulerAngles = new Vector3(0, x, 0);
        y = Mathf.Clamp(y, -45f, 45f);
        camera.eulerAngles = new Vector3(y, x, 0);

        //让相机z轴保持不变,防止相机倾斜
        if (camera.localEulerAngles.z != 0)
        {
            float rotX = camera.localEulerAngles.x;
            float rotY = camera.localEulerAngles.y;
            camera.localEulerAngles = new Vector3(rotX, rotY, 0);
        }
    }
}

然后保存这个脚本回到Unity,点击player就能看到player属性面板

鼠标左击长按PlayerController脚本将脚本拖入player属性面版内

Unity实现第一人称移动(胎教级教学),unity,c#,3d

第三步

在player属性面板里找到PlayerController脚本组件

鼠标左击长按player子目录下的camera拖入PlayerController脚本组件里的camera属性框中

Unity实现第一人称移动(胎教级教学),unity,c#,3d

(这个Speed是player移动速度,可以自己调节)

(不想在属性面板显示速度的可以在脚本中将定义speed的public改为private)

最后

因为项目创建的时候自带了一个maincamera,我们需要禁用这个maincamera

点击Main Camera,在属性面板上取消勾选

Unity实现第一人称移动(胎教级教学),unity,c#,3d

完成这一步就能运行并实现第一人称视角移动了

代码中有些内容可以根据自己需求改文章来源地址https://www.toymoban.com/news/detail-849723.html

到了这里,关于Unity实现第一人称移动(胎教级教学)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity 3D 实现第一人称视角

    第一人称视角的运用十分广泛,常见于我的世界、APEX、守望先锋以及许多FPS(First-Person Shooting第一人称射击)等游戏。 那么,这类第一人称视角是如何实现的呢? 其实并不复杂, 一个人物模型 , 一个摄像机 , 一个脚本 ,便可轻松实现。 在 Hierarchy 栏目右击随机创建一个

    2024年02月11日
    浏览(38)
  • Unity 第一人称视角控制移动、旋转

    第一人称视角操作 此功能主要是借鉴YouTube上一个博主的教程,写的蛮好我就搬运过来让大家也试试。 其原理是:左右旋转是控制父物体的欧拉角的Y轴 上下点头是子物体相机的欧拉角Z轴 水平方向 跳跃: 移动

    2024年04月27日
    浏览(36)
  • 【Unity】【Pico】手柄摇杆控制第一人称移动和旋转

    背景:开发影院系统 环境:Unity2021.3、PicoNeo3ProEye 描述 :已经在Unity项目中实现第一人称WASD移动和鼠标旋转(代码见我的其他博文) 需求 :希望项目在Pico一体机运行时可以通过手柄摇杆控制(unityxr的基础配置见我的其他博文) 解决 : Locomotion System XR Origin Continuous Move Pr

    2024年01月18日
    浏览(88)
  • 实现3D人物的移动和旋转。(Unity)

    首先,需要在人物身上加刚体和碰撞器。   如果需要人物身上有声音,可以添加AudioSource音频源。  然后创建脚本,需要把脚本挂载到对应的对象身上。 如果有动画,还需要创建状态机添加到对应的对象上面,并且设置好里面的动画。  代码实现: 图片实现:     上面代码

    2024年02月04日
    浏览(68)
  • Unity3D中实现人物的第一人称视角

    打开unity创建一个场景地图可以添加一个Plane作为地面 在Hierarchy视图中右键创建一个胶囊体(Capsule)作为Player,添加好后重置胶囊体的位置,并且调整胶囊体在一个合适的位置。 将Main Camera拖拽到到player内作为子对象,重置一下Main Camera的transform,并且再调整一下它在player中

    2024年02月11日
    浏览(73)
  • Unity3D中实现Player的第一人称视角

    效果,上面为Scene场景,下面为Game场景 0创建地形,当然可以先简单的创建一个空白的Terrain。这里我已经对地形进行了初步的编辑和渲染。 1.在Hierarchy视图中右键创建一个胶囊体(Capsule)作为Player,添加好后重置胶囊体的位置,并且调整胶囊体在一个合适的位置。  2.将Main

    2023年04月08日
    浏览(51)
  • Unity 3D之 利用Vector3 计算移动方向,以及实现位移多少

    这段代码是一个在游戏开发中常见的示例,用于获取玩家的输入,并将输入值转换为一个三维向量,以表示移动方向。让我们逐步解释这段代码: float horizontalInput = Input.GetAxis(\\\"Horizontal\\\"); :这一行代码获取水平方向上的输入。它调用 Input.GetAxis(\\\"Horizontal\\\") 来获取水平轴的输入

    2024年02月11日
    浏览(41)
  • unity3d 实现第三人称移动与摄像机调整

    首先展示效果 unity3d 关于人物移动,这里推荐使用Character Conrroller组件,优点就是可以不用处理刚体,不受重力的影响,自带物理碰撞检测。  人物移动代码包括转向 接下来就是摄影机的调整,这里使用unity自带的插件cinemachine,非常的推荐,无需使用冗杂的代码即可设计较好

    2024年02月11日
    浏览(50)
  • 【unity小技巧】unity最完美的CharacterController 3d角色控制器,实现移动、跳跃、下蹲、奔跑、上下坡,复制粘贴即用

    其实一开始我是不打算写的,我感觉这种简单的功能,原以为网上随便一搜一大堆,但是我实际去搜发现网上很多都是 复制粘贴 ,要么 没有实操过 ,要么就是 功能不全 ,或者毫无解释的把代码丢出来,我自以为简单的3D角色控制,我整整花了3-4天才研究明白(虽然每天只

    2024年02月03日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包