【2023unity游戏制作-mango的冒险】-5.攻击系统的简单实现


在这里插入图片描述


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

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

本文由 秩沅 原创

👨‍💻 专栏交流🧧
🟥Unity100个实战基础✨🎁
🟦 Unity100个精华一记✨🎁
🟩 Unity50个demo案例教程✨🎁
🟨 Unity100个精华细节BUG✨🎁

在这里插入图片描述


⭐攻击系统的简单实现⭐



👨‍💻前言


在这里插入图片描述
🎶版本: 为 Ltp 2021年版本的unity
🎶类型: 简单2D类冒险游戏
🎶目的: 熟悉掌握基本unityAPI
🎶视频教程:【2023小白狂飙unity2D冒险类游戏制作【mango的冒险】】


👨‍💻攻击动画的添加


🎶步骤实现


  • step1:控制器中添加攻击动画或者脚本中用代码添加
  • step2: 设置动画转换的条件,如图一
  • step3:添加预制体法炮,加上特效和刚体,实例化发射 ,特效添加如图二和图三

图一

在这里插入图片描述

图二
Grid模式播放,将粒子材质分割程多张图片进行播放
在这里插入图片描述
以下就是将其分割成了6X6进行播放
加粗样式

图三

在这里插入图片描述

  • step4:添加刚体进行发射,实现左右发射衔接,添加发射音效
  • step5:法炮添加自动消失脚本

在这里插入图片描述


🎶相关脚本


//添加攻击动画
   if(Input.GetKeyDown(KeyCode.K)  )
        {
            Switch1 = true;
            MGanimator.SetBool("Attack", Switch1);
            Invoke("closeShoot", 0.5f);
        }
        
    }

    private void closeShoot()
    {
        {
            Switch1 = false;
            MGanimator.SetBool("Attack", Switch1);
            bow = Instantiate(Resources.Load<GameObject>(@"prefab1/bow"), transform.GetChild(6).position, Quaternion.identity);
            Rigidbody2D dd = new Rigidbody2D();
            dd = bow.AddComponent<Rigidbody2D>();
            dd.AddForce(new Vector2(transform.localScale.x * 5000, transform.position.y));
        }
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//-----------------------
//--作用:法球的自动销毁
//-----------------------
public class DestoryBall : MonoBehaviour
{
    private float Time = 3f ;
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
       Time = Mathf.MoveTowards(Time, 0, 0.1f);
        Debug.Log(Time);
        if(Time == 0)
        {
            Destroy(gameObject);
        }
    }

    private void OnCollisionEnter2D(Collision2D collision)
    {
        if(collision.transform.tag =="sBoss")
        {
            Destroy(this);
        }
    }
}


🎶攻击动画的改进(连贯效果)


使用淡入淡出效果的方法和只设置 单个退出条件,可达到发射动画连贯的效果

在这里插入图片描述

 private void closeShoot() //法炮发射功能
    {
        
            if (Input.GetKeyDown(KeyCode.K))
            {

            MGanimator.CrossFade("Attack", 0.2f);

            bow = Instantiate(Resources.Load<GameObject>(@"prefab1/bow"), transform.GetChild(6).position, Quaternion.identity);
            Rigidbody2D dd = new Rigidbody2D();
            dd = bow.AddComponent<Rigidbody2D>();
            dd.AddForce(new Vector2(transform.localScale.x * 5000, transform.position.y));
            MGanimator.SetBool("Attack", false);
               
              
            
        }

🎶🎶我们继续后面的制作。


⭐相关文章⭐

【2023unity游戏制作-mango的冒险】-4.场景二的镜头和法球特效跟随

【2023unity游戏制作-mango的冒险】-3.基础动作和动画API实现

【2023unity游戏制作-mango的冒险】-2.始画面API制作

【2023unity游戏制作-mango的冒险】-1.场景搭建

“狂飙”游戏制作—游戏分类图鉴(网易游学)

本站最全-unity常用API大全(万字详解),不信你不收藏



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

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秩沅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值