当前位置: 首页 > 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.dtcms.com/a/337377.html

相关文章:

  • 代码随想录-数组练习
  • 矿物识别案例(数据处理:六种填充方法)
  • 深度剖析PyTorch分布式训练:从原理到工程实践
  • Centos7使用lamp架构部署wordpress
  • 安全基础DAY6-服务器安全检测和防御技术
  • 网站服务器使用免费SSL证书安全吗?
  • 计算机网络技术学习-day3《交换机配置》
  • ⭐CVPR2025 RigGS:从 2D 视频到可编辑 3D 关节物体的建模新范式
  • 一个基于前端开发的经典飞机大战游戏,具有现代化的UI设计和流畅的游戏体验。
  • OpenAL技术详解:跨平台3D音频API的设计与实践
  • 飞机起落架轮轴深孔中间段电解扩孔内轮廓检测 - 激光频率梳 3D 轮廓检测
  • 【verge3d】如何在项目里调用接口
  • Gateway中Forward配置+源码观赏
  • Pandas 核心数据结构详解(精简版)
  • Drawnix:一款免费开源的白板工具,支持思维导图、流程图、类图和手绘图
  • mybatisplus oracle 数据库OracleKeyGenerator使用序列生成主键原理
  • Redis-缓存-穿透-布隆过滤器
  • Linux 系统(如 Ubuntu / CentOS)阿里云虚拟机(ECS)上部署 Bitnami LAMP
  • 用随机森林填补缺失值:原理、实现与实战
  • 大型语言模型(LLM)存在演示位置偏差:相同示例在提示中位置不同会导致模型预测结果和准确率显著变化
  • 基于NLP的文本生成系统设计与实现(LW+源码+讲解+部署)
  • 牛津大学xDeepMind 自然语言处理(1)
  • 【论文阅读69】-DeepHGNN复杂分层结构下的预测
  • 力扣 hot100 Day77
  • 深入浅出讲透IPD:三层逻辑实例详解 —— 卫朋
  • Mysql实战案例 | 利用Mycat实现MYSQL的读写分离
  • 计算机视觉(9)-实践中遇到的问题(六路相机模型采集训练部署全流程)
  • Linux命令大全-rm命令
  • Java发送企业微信通知
  • Python开篇:2024全链路指南,从入门到架构解锁未来