首页 > 其他分享 >3-1. 野猪 - 基本的移动逻辑和动画

3-1. 野猪 - 基本的移动逻辑和动画

时间:2024-02-24 19:44:07浏览次数:19  
标签:动画 野猪 faceDir void 逻辑 rb public

野猪实现移动

添加一个 Enemy 类

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Enemy : MonoBehaviour
{
    protected Rigidbody2D rb;
    protected Animator anim;

    [Header("基本参数")]
    public float normalSpeed;
    public float chaseSpeed;
    public float currentSpeed;
    public Vector3 faceDir;

    private void Awake()
    {
        rb = GetComponent<Rigidbody2D>();
        anim = GetComponent<Animator>();
        currentSpeed = normalSpeed;
    }

    private void Update()
    {
        if (transform.localScale.x > 0)
        {
            // 此时野猪是朝左的
            faceDir = new Vector3(-1, 0, 0);
        }
        else if (transform.localScale.x < 0)
        {
            // 此时野猪是朝右的
            faceDir = new Vector3(1, 0, 0);
        }
    }

    private void FixedUpdate()
    {
        Move();
    }

    public virtual void Move()
    {
        rb.velocity = new Vector2(currentSpeed * faceDir.x, rb.velocity.y);
    }
}

根据野猪当前的 localScale.x,修改它刚体的 velocity

野猪增加空闲、走路、跑步动画

切图做动画片段

增加 walk 和 run 这两个 bool 变量,通过这两个变量控制野猪的状态

最后 Boar类 继承 Enemy类,重写 Move 方法

这样就能在播放动画的同时移动了

项目相关代码

代码仓库:https://gitee.com/nbda1121440/2DAdventure.git

标签:20240224_1936

标签:动画,野猪,faceDir,void,逻辑,rb,public
From: https://www.cnblogs.com/hellozjf/p/18031480

相关文章

  • 2-12. 三段攻击动画的实现
    创建动画片段修改动画状态机增加AttackLayer,把刚才制作好的动画片段加进去再增加两个变量,bool类型的isAttack和trigger类型的attackNewState->blueAttack1,isAttack=true并且attack触发blueAttack1->blueAttack2,isAttack=true并且attack触发,有exi......
  • 2-11. 受伤和死亡的逻辑和动画
    添加受伤和死亡动画片段通过新的层来实现受伤和死亡动画点击动画控制器右上角的+,然后新建一个Layer注意Weight要改成1,Blending要改成Additive受伤的话,我们通过hurt来触发,死亡我们通过isDead来控制在HurtLayer中,当hurt触发的时候,就会播放blueHurt动画,......
  • 2-9. 实现人物下蹲逻辑和动画
    动画片段做成动画片段,命名为blueCrouchStart和blueCrouchIdle动画状态机这里我们再接触一个新的东西,Sub-StateMachine,可以通过右键CreateSub-StateMachine来实现点开Crouch,把之前创建好的blueCrouchStart和blueCrouchIdle片段加进来另外添加一个变量,isCrouc......
  • 2-8. 创建人物跳跃动画
    人物跳跃的五个阶段根据这张图把图片切好,并做好动画状态使用BlendTree实现跳跃动画在动画状态机中新建一个BlendTree,然后给它添加三个Motion因为我设置的JumpForce是5,所以人物速度54时候是起跳阶段,41的时候是上升阶段,1~-1的时候是空中换腿阶段,-1以后是下降阶段。虽然......
  • 2-6. 创建人物基本动画
    给帧图片命名添加动画首先需要给Player添加Animator组件然后创建Animations/Player文件夹,并在该文件夹下面添加AnimatorController,起名叫Player然后把Player拖到Animator的Controller上面打开动画状态机Window->Animation->Animator创建Idle动......
  • css 动画
    <divclass="quan-box">逐渐放大消失<div>  /*申明一个div的class用于执行动画*/.quan-box{opacity:0;background:#70D97C;position:absolute;//3秒执行完成quan动画,infinite动画会无限次重复播放,steps(40)表示将整个动画过程分割成40个......
  • three-第三方动画库-让物体动起来更简单(gsap)
    gsap介绍:GreenSockAnimationPlatform(GSAP)是一个业界知名的动画库,它被1100多万个网站使用,有超过50%的获奖的网站都是用了它。不管是在原生环境中,还是任意的框架中,你可以使用GSAP去让非常多的东西动起来。不管你是想要去让UI界面产生交互动画,还是SVG图形产生动画,甚至是Three......
  • R语言逻辑回归(Logistic Regression)、回归决策树、随机森林信用卡违约分析信贷数据集
    原文链接:http://tecdat.cn/?p=23344最近我们被客户要求撰写关于信用卡违约分析的研究报告,包括一些图形和统计输出。本文中我们介绍了决策树和随机森林的概念,并在R语言中用逻辑回归、回归决策树、随机森林进行信用卡违约数据分析决策树是由节点和分支组成的简单树状结构。根据每......
  • 解密C语言选择结构:掌握条件语句与分支逻辑的利器
    ✨✨欢迎大家来到贝蒂大讲堂✨✨......
  • 迪文屏TA指令开发_开机动画
    迪文屏TA指令开发_开机动画1.新建项目新建一个空白文件夹,点击新建工程之后选择新建文件夹地址即可创建完成之后,文件夹结构如下:2.导入背景图片素材说是设置开机动画,实际上是通过多个背景图片的连续播放实现的动画效果点击加号键,可以直接选中所有的背景图片素材进行一键导......