【0到1学习Unity脚本编程】第一人称视角的角色控制器

这篇具有很好参考价值的文章主要介绍了【0到1学习Unity脚本编程】第一人称视角的角色控制器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【0到1学习Unity脚本编程】第一人称视角的角色控制器,【0到1】Unity脚本游戏开发宝典,学习,unity,游戏引擎


👨‍💻个人主页:@元宇宙-秩沅

👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

👨‍💻 本文由 秩沅 原创

👨‍💻 收录于专栏:【0到1】Unity脚本游戏开发宝典

⭐🅰️⭐




⭐第一人称视角的角色控制器⭐


🎶(1) 场景创建


【0到1学习Unity脚本编程】第一人称视角的角色控制器,【0到1】Unity脚本游戏开发宝典,学习,unity,游戏引擎


🎶(2) 相机设置


  • 将摄像机变为胶囊体的子物体,按住 ctrl +shift +F 调整视野。让他变成胶囊体的眼睛
    【0到1学习Unity脚本编程】第一人称视角的角色控制器,【0到1】Unity脚本游戏开发宝典,学习,unity,游戏引擎

🎶(3) 初步脚本


【0到1学习Unity脚本编程】第一人称视角的角色控制器,【0到1】Unity脚本游戏开发宝典,学习,unity,游戏引擎

  • 判断要前进时按照哪个方向前进,一般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;  //乘上一个四元数就相当于进行了旋转     
    }
}

【0到1学习Unity脚本编程】第一人称视角的角色控制器,【0到1】Unity脚本游戏开发宝典,学习,unity,游戏引擎


🎶(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;  //乘上一个四元数就相当于进行了旋转     
    }
}

【0到1学习Unity脚本编程】第一人称视角的角色控制器,【0到1】Unity脚本游戏开发宝典,学习,unity,游戏引擎

⭐🅰️⭐


⭐【Unityc#专题篇】之c#进阶篇】

⭐【Unityc#专题篇】之c#核心篇】

⭐【Unityc#专题篇】之c#基础篇】

⭐【Unity-c#专题篇】之c#入门篇】

【Unityc#专题篇】—进阶章题单实践练习

⭐【Unityc#专题篇】—基础章题单实践练习

【Unityc#专题篇】—核心章题单实践练习


你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!


【0到1学习Unity脚本编程】第一人称视角的角色控制器,【0到1】Unity脚本游戏开发宝典,学习,unity,游戏引擎文章来源地址https://www.toymoban.com/news/detail-751897.html


到了这里,关于【0到1学习Unity脚本编程】第一人称视角的角色控制器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Unity 3D脚本编程与游戏开发(2.5)

    4.3.4 向量的点积         两个向量的点积是⼀个标量,其数值为两者⻓度相乘,再乘以两者夹⾓的余弦: a·b=|a|·|b|cosθ⽤坐标表⽰,公式为 (x1,y1,z1)·(x2,y2,z2)=x1x2+y1y2+z1z2         注意到,两个向量的点积是⼀个数(标量),只有⼤⼩,没有⽅向。⽽且点乘满⾜交换律,

    2024年02月03日
    浏览(46)
  • Unity 3D脚本编程与游戏开发【4.1】

    7.2.5 后期处理举例 Post Processing(后期处理)并不属于特效,但现代的特效表现离不开后期处理的⽀持。本⼩节以眩光(Bloom)为例,展⽰⼀种明亮的激光的制作⽅法,其效果如图7-13所⽰。 1. 安装后期处理扩展包         较新的Unity版本(如2018.4版本)已经内置了新版的后

    2024年04月26日
    浏览(42)
  • Unity 3D脚本编程与游戏开发(2.6)

    4.5.2 四元数的概念         四元数包含⼀个标量分量和⼀个三维向量分量,四元数Q可以记作Q=[w,(x,y,z)]         在3D数学中使⽤单位四元数表⽰旋转,下⾯给出四元数的公式定义。对于三维空间中旋转轴为n,旋转⾓度为a的旋转,如果⽤四元数表⽰,则4个分量分别为

    2024年02月03日
    浏览(50)
  • Unity 3D脚本编程与游戏开发(3.5)

    6.2.8 总结和拓展         本节利⽤Unity官⽅素材,以有限的篇幅解释了动画状态机的原理,以及动画制作中最基本但最重要的步骤。总的来看,⽬前的动画只做了4种状态——站⽴、⾛、跑和跳跃,还缺少下蹲、下蹲移动和落地缓冲等动作。好在这些动作只是对现有动作的

    2024年04月10日
    浏览(51)
  • Unity 3D脚本编程与游戏开发(2.8)

    5.1.2 矩形变换(Rect Transform)组件         如果选中界⾯上的控件,读者会发现每个物体并不带有基本的Transform组件,取⽽代之的是Rect Transform(矩形变换)组件。其实Rect Transform组件是Transform组件的⼦类,因此并不违反“每个物体必须有且只有⼀个Transform组件”的规定。

    2024年02月03日
    浏览(37)
  • Unity 3D脚本编程与游戏开发【4.0】

    7.2.3 DOTween插件使⽤⽅法简介 缓动动画既是⼀种编程技术,也是⼀种动画的设计思路。从设计⾓度来看,可以有以下描述。 ①事先设计很多基本的动画样式,如移动、缩放、旋转、变⾊和弹跳等。但这些动画都以抽象⽅式表⽰,⼀般封装为程序函数。 ②动画的参数可以在使⽤

    2024年04月09日
    浏览(48)
  • Unity 3D脚本编程与游戏开发(3.4)

    6.2.3 动画的制作步骤         接下来为⾓⾊配上动画,整体思路分以下3个部分。⼀是准备好单个的动画素材,包含站⽴、跑和跳等动作。也就是说,把原始素材中的图⽚串联起来,形成⼏个单独的动画。⼆是⽤Animator把这些单独的动作有机地组合起来,形成⼀张状态转移

    2024年04月26日
    浏览(36)
  • Unity 3D脚本编程与游戏开发(2.2)

    3.2.7 修改物理材质         每个物体都有着不同的摩擦⼒。光滑的冰⾯摩擦⼒很⼩,⽽地毯表⾯的摩擦⼒则很⼤。另外每种材料也有着不同的弹性,橡⽪表⾯的弹性⼤,硬质地⾯的弹性⼩。在Unity中这些现象都符合⽇常的理念。         虽然从原理上讲,物体的摩擦⼒

    2024年02月04日
    浏览(40)
  • Unity 3D脚本编程与游戏开发【4.2】

    8.2.3 ⾳频管理器         在实际游戏开发中,⾳效既是⼀个相对独⽴的部分,⼜与其他游戏逻辑密切关联。也就是说,与⾳效相关的代码会插⼊很多细节代码中。         ⽽且在⾳效⾮常丰富的情况下,如果每⼀个游戏模块都单独播放⾳效,那么可能会带来⼀些问题。

    2024年04月24日
    浏览(43)
  • Unity 3D脚本编程与游戏开发【3.8】

    6.4.5 动画层         图6-42显⽰了动画层设置窗⼝。在动画状态机⾥可以添加很多层,层之间可以是覆盖关系也可以是叠加关系,当然也可以随时屏蔽⼀些层、启⽤另⼀些层。 每⼀个动画层可以有单独的设置,其选项解释如下。 ①Weight(权重),本层对总体动画效果的影

    2024年04月16日
    浏览(47)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包