当前位置: 首页 > news >正文

学习游戏制作记录(各种独特物品效果)8.18

1.实现雷击物品效果

自行创建一个雷击的预制体,需要有碰撞器和动画控制器

创建ThunderStrike_Effect脚本:

[CreateAssetMenu(fileName = "ThunderStrikeEffect", menuName = "Data/Effect/ThunderStrike")]
public class ThunderStrike_Effect : ItemEffect//继承
{
[SerializeField] private GameObject thunderStrikePrefab;//预制体
public override void ExcuteEffect(Transform _enemyPositon)
{
GameObject thunderStrike =Instantiate(thunderStrikePrefab, _enemyPositon.position,Quaternion.identity);在敌人位置生成预制体


    }
}

创建ThunderStrike_Control脚本并挂载在雷击预制体上:

    protected void OnTriggerEnter2D(Collider2D collision)//触发器
{
PlayerStats playerStats = PlayerManage.instance.player.GetComponent<PlayerStats>();

        if(collision.GetComponent<EnemyStats>() != null )//检测到敌人则对敌人造成魔法伤害
{
EnemyStats enemyStats = collision.GetComponent<EnemyStats>();

            playerStats.DoMagicDamage(enemyStats);

            Destroy(gameObject, 1f);
}
}

PlayerAnimationTriggers脚本:

                ItemData_Equipment itemData_Equipment=Inventory.instance.GetEquipment(EquipmentType.Weapon);

                if (itemData_Equipment!=null)//确保玩家装装备时才会调用效果函数
{
itemData_Equipment.Effect(hit.transform);//雷击
}

2.实现冰与火的物品效果

当玩家攻击到第三下时会发出一个飞弹

自行创建冰与火飞弹攻击的预制件,挂载刚体,碰撞器,动画控制器等组件

创建IceAndFireEffect脚本:

[CreateAssetMenu(fileName = "Ice And Fire Effect", menuName = "Data/Effect/IceAndFire")]
public class IceAndFireEffect : ItemEffect
{
[SerializeField] GameObject iceAndfirePrefab;//预制体
[SerializeField] private float xVelocity;//飞行速度

    public override void ExcuteEffect(Transform _respawnPositon)
{
Player player = PlayerManage.instance.player;

bool thirdAttack = player.primaryAttackState.comboCount == 2;//检查是否攻击到第三下

        if(thirdAttack)
{
GameObject iceAndFire = Instantiate(iceAndfirePrefab, _respawnPositon.position, player.transform.rotation);//生成

            iceAndFire.GetComponent<Rigidbody2D>().velocity = new Vector2(xVelocity * player.facingDir, 0);//设置速度

            Destroy(iceAndFire,10);//10秒后销毁
}

    }
}

创建IceAndFIre_Control挂载在预制体上:


public class IceAndFIre_Control : ThunderStrike_Control//造成伤害
{
protected override void OnTriggerEnter2D(Collider2D collision)
{
base.OnTriggerEnter2D(collision);
}
}

3.实现雷击饰品效果

当装备该饰品时,水晶和剑攻击将附带雷击效果

Crystal_Skill_Control脚本:

    public void AnimationExplodeEvent()//水晶造成伤害的函数
{
Collider2D[] collider2Ds = Physics2D.OverlapCircleAll(transform.position,cd.radius);

        foreach (var hit in collider2Ds)
{
if (hit.GetComponent<Enemy>() != null)
{
player.state.DoMagicDamage(hit.GetComponent<CharactorState>());

                ItemData_Equipment itemAmulet = Inventory.instance.GetEquipment(EquipmentType.Amulet);//检测是否装备饰品

               if(itemAmulet != null)
{
itemAmulet.Effect(hit.transform);//调用效果
}
}
}
}

Sword_Skill_Control脚本:

    private void SwordSkillDamage(Enemy enemy)//剑造成伤害的函数
{
player.state.DoDamage(enemy.GetComponent<CharactorState>());
enemy.StartCoroutine("FreezeTimeFor", freezeTimeDuration);

        ItemData_Equipment itemAmulet = Inventory.instance.GetEquipment(EquipmentType.Amulet);//同理

        if (itemAmulet != null)
{
itemAmulet.Effect(enemy.transform);
}
}

http://www.lryc.cn/news/624972.html

相关文章:

  • 【Langchain系列二】LangChain+Prompt +LLM智能问答入门
  • Prompt engineering(PE) —— prompt 优化如何进行?
  • 集成电路学习:什么是Face Detection人脸检测
  • leetcode4_452 and 763
  • 【论文学习】UoMo: 一个用于无线网络优化的移动流量预测通用模型
  • 学习嵌入式的第二十天——数据结构
  • 如何解决机器翻译的“幻觉“问题(Hallucination)?
  • 特赞内容运营解决方案,AI重构品牌内容价值链
  • (Arxiv-2025)OPENS2V-NEXUS:一个面向主体到视频生成的详细基准与百万规模数据集
  • 知识蒸馏 - 各类概率分布
  • 概率论基础教程第4章 随机变量(三)
  • 基于 Ansible 与 Jinja2 模板的 LNMP 环境及 WordPress 自动化部署实践
  • 数据库:表和索引结构
  • 【68页PPT】智慧方案信息物理系统与数字孪生某著名企业(附下载方式)
  • 从零开始搭建React+TypeScript+webpack开发环境——多环境配置管理方案
  • 图论:Floyd算法
  • WPF---数据模版
  • 算法题打卡力扣第26. 删除有序数组中的重复项(easy))
  • 计算机网络-IPv6
  • 使用 uv管理 Python 虚拟环境:比conda更快、更轻量的现代方案
  • 保姆级教学:使用 Jenkins 部署前端项目(2025 年最新版)
  • 知识蒸馏 Jensen-Shannon散度
  • Vue3 全新特性 defineModel 深度解析
  • [Oracle数据库] Oracle 进阶应用
  • BPO(Business Process Optimization,业务流程优化)
  • 信创产业:从技术突围到生态重构的强国之路
  • redis持久化机制:RDB和AOF
  • 手机视频怎么提取音频?3步转成MP3,超简单!
  • 十年回望:Vue 与 React 的设计哲学、演进轨迹与生态博弈
  • PLC 控制系统中 PCB 板的选型与设计要点