代码编织梦想

学Unity的第一天,跟着B站M_Studio的一个教程做,想着记点笔记记录一下我遇到的问题和解决方案。

问题:

在做角色的前后移动时,是在void Fixed Update()中写的

void FixedUpdate()
    {
        
        Move();
       
    }
   
    void Move()
    {
        float horizontalmove = Input.GetAxisRaw("Horizontal");
        rb.velocity = new Vector2(horizontalmove * speed * Time.fixedDeltaTime, rb.velocity.y);
        
        if (horizontalmove != 0)
        {
            transform.localScale = new Vector3(horizontalmove, 1, 1);
        } 
    }

于是我控制跳跃的代码也理所应当的写在了Move函数里,结果前后移动正常,跳跃反应不出来。

原因:

在查看文档后发现我的因为我的代码前后移动为了适应所有电脑,乘了Time.fixedDeltaTime,因此把Move函数放在了FixedUpdate()里,而读取Jump的GetButtonDown应在运用在upDate()中.

 

解决问题后的代码

public class playerController : MonoBehaviour
{
    public Rigidbody2D rb;
    public float speed;
    public float jumpForce;

    public bool isJump=false;
    
  

    // Start is called before the first frame update
    void Start()
    {

    }
    private void Update()
    {
        if (Input.GetButtonDown("Jump")) 
        {
            isJump = true;
        
        }
    }

    // Update is called once per frame
    void FixedUpdate()
    {
        
        Move();
        Jump();
    }
   
    void Move()
    {
        float horizontalmove = Input.GetAxisRaw("Horizontal");
        rb.velocity = new Vector2(horizontalmove * speed * Time.fixedDeltaTime, rb.velocity.y);
        
        if (horizontalmove != 0)
        {
            transform.localScale = new Vector3(horizontalmove, 1, 1);
        } 
    }

    void Jump()
    {
        if(isJump)
        {
            rb.velocity = new Vector2(rb.velocity.x, jumpForce * Time.fixedDeltaTime);
            isJump = false;
        }
       
    }
    



}

文章仅仅是我对自己学习的记录

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/pipixia2002/article/details/126983878

uvp课程project开发计划_中华狸花猫的博客-爱代码爱编程

UVP课程Project开发计划 1 软件简述     我们设计实现一个名字为”实验室”的软件。即在该软件中模仿各类化学、物理实验。 1.1功能 1.1.1化学实验        软件可以模拟化学实验。即用户可以选

unity2d横版移动跳跃问题——关于一段跳与二段跳_amzz的博客-爱代码爱编程

Unity2D横版移动跳跃问题——关于一段跳与二段跳. 前提:了解2D移动,可参考我另一篇博文https://blog.csdn.net/weixin_42622658/article/details/93972575

unity 简记(2)--2d移动-爱代码爱编程

Unity 简记(2)–2D移动 文章目录 Unity 简记(2)--2D移动1.输入1.1直接检测按下哪个按键1.2.检测水平输入和垂直输入 2.移动2.1.Transform组件2.2.RigidBody

unity2d人物真实跳跃实现(RigidBody添加力的作用)-爱代码爱编程

unity2d人物真实跳跃实现(RigidBody添加力的作用) 这里实现按空格跳跃,长按跳跃跳跃更高一点 加力方法,两个参数,第一个二维向量力,第二个力的种类 Force 普通力 Impulse 瞬时加上去的力 Rigidbody2D rig; rig = GetComponent<Rigidbody2D>(); pub

unity2D游戏学习笔记-爱代码爱编程

unity2D游戏自用学习笔记 1.2D游戏利用Rigidbody 2D来进行左右移动,转向,跳跃。 左右移动:获取移动物体的刚体,利用Input.GetAxisRaw("Horizontal")来获取左右方向键或者AD键按下时得到的值。把值给刚体的速度velocity的x来进行左右方向的位移。 转向:改变物体Scale x的正负值。或者transf

[Unity][2D]跳跃卡在平台边缘、跳跃后下降缓慢、每次跳跃高度不一致问题-爱代码爱编程

  使用Unity 2D自带的Rigidbody2D、BoxCollider2D组件,进行的横板2D的问题。   角色跳跃卡在平台边缘   改变角色的2D物理摩擦材质,的Pitch为0。 并且把角色的BOXCOLLIDER2D改为 其他形状的2D碰撞体。   跳跃后下降缓慢   使用这种方式进行跳跃。 ... FixUpdate()

Unity心血所著专栏导航-爱代码爱编程

总目录 欢迎来到TurBoQ的《Unity心血所著系列》,蓝色字体为传送门,点击进入即可,本专栏持续更新中,其他专栏筹备中。 Unity实现游戏逻辑模块 Unity吃豆人敌人BFS广度(宽度)优先算法实现怪物追踪玩家寻路Unity发射光线,光线反射详细实现unity2d人物头顶设置血条实现unity按钮实现场景切换的两种方法unity 最全U

Unity2D角色跳跃-爱代码爱编程

Unity2D角色跳跃 文章目录 Unity2D角色跳跃思路事前准备通过速度判断状态通过位置判断状态 思路来自B站麦扣的第一期教程:https://www.bilibili.com/video/BV1z4411o7W4 思路 跳跃的动作可以拆分为两个动作,即上升动作和下落动作。 玩家可以在站立过程中起跳,也可以在移动过程中起跳。所以在动

2D平台游戏操作:如何避免手感发软和手感僵硬-爱代码爱编程

矛盾的是,这两种感觉背后的问题往往是同样的:对玩家输入反应不灵敏,不精准。我的目标是帮助新手游戏设计师(也许是更有经验的游戏设计师)避免这种控制感受。但请记住,反应和精确控制不是必须的,也不适用于所有游戏。因此,在澄清这一点之后,让我们谈谈在我看来可能造成玩家会有这种感觉的常见原因:动画优先第一代波斯王子,另一个世界和黑暗灵魂(译注:如果你还不了解这三款游

Unity2D学习记录第十期-爱代码爱编程

Unity2D学习记录第十期 文章目录 一、前言说明二、目录三、未来规划 一、前言说明 这是一篇导言性质的系列完结博客,如果是来学习新知识的看客们可以跳过这一篇。 更新的时候在国庆休假,想起自己这个系列有九篇就加上一篇凑个整顺便做个目录也方便我自己查阅再做个未来规划,希望各位看官能点个赞啥的为我打个气啥的,谢谢各位。 二、目录 Unity2

unity实战:教你做黄豆君_肖尘的博客-爱代码爱编程

文章目录 前言 一、Unity2D入门 1.入门准备 1.1导入开发所需要的资源 1.2 创建地形 1.3改变地形颜色

unity初学 mstudio教程_unitystudio-爱代码爱编程

Unity2D瓦片地图tilemap出现瓦片间间隙问题解决 https://blog.csdn.net/qq_43301459/article/details/108848284 报错说没有把rigidbody2D拖到rb,才发现那个代码我tilemap和player都放了 Unity2018教程2D入门:05 角色方向&跳跃