using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
using System;namespace Combat.Test
{public class ChargeInputTest : MonoBehaviour{[Header("动作名称")]public string start_name;public string chargeing_name; public string normalAttack_name;public string chargeAttck_name;int Hash_Start;int Hash_Chargeing; int Hash_NormalAttack;int Hash_ChargeAttack;[Header("蓄力设置")] public float chargeMaxTime = .5f;//充能最大值达到后释放蓄力攻击,否则转换为普通攻击public float chargeMinTime = .1f;//充能时间小于最少值则不算蓄力[SerializeField] float chargeTime;[SerializeField] bool chargeDone;//蓄力完成[SerializeField] bool chargeing;//是否在蓄力中[SerializeField] bool MianAct;Animator anim;void Start(){anim = GetComponent<Animator>();Hash_NormalAttack = Animator.StringToHash(normalAttack_name);Hash_Chargeing = Animator.StringToHash(chargeing_name);Hash_ChargeAttack = Animator.StringToHash(chargeAttck_name);Hash_Start = Animator.StringToHash(start_name);OnChargeStart = ChargeStart;OnChargeing = Chargeing;OnChargeDone = ChargeDone;OnChargeCancelled = ChargeCancelled;}public void ChargeStart(){anim.CrossFade(Hash_Start, .2f, 1, 0, .1f);}public void Chargeing(){anim.CrossFade(Hash_Chargeing, .2f, 1, 0, .1f);}public void ChargeDone(){anim.CrossFade(Hash_ChargeAttack, .2f, 1, 0, .1f);}public void ChargeCancelled(){anim.CrossFade(Hash_NormalAttack, .2f, 1, 0, .1f);}private void Update(){MianAct = Input.GetKey(KeyCode.Mouse0)  ;}private void FixedUpdate(){SetCharge(MianAct, Time.fixedDeltaTime); }#region 蓄力模块Action OnChargeStart;//当蓄力开始Action OnChargeing;//蓄力中Action OnChargeDone;//蓄力完成Action OnChargeCancelled;//蓄力取消bool start_invoked;bool normal_invoked;void SetCharge(bool _value, float deltaTime)//这在物理帧执行{if (_value){if (chargeDone) return;//蓄力完成 则退出 normal_invoked = false;chargeTime += deltaTime; if (!start_invoked){OnChargeStart?.Invoke();start_invoked = true;} if (chargeTime >= chargeMinTime && !chargeing){OnChargeing?.Invoke();normal_invoked = true; chargeing = true;//蓄力时间大于最小时间才算作蓄力 } if (chargeTime >= chargeMaxTime && !chargeDone){OnChargeDone?.Invoke();chargeTime = 0;chargeDone = true;normal_invoked = true; chargeing = false;}}else{if (chargeing) //蓄力中断{  OnChargeCancelled?.Invoke(); chargeing = false;  normal_invoked = true;}  if(chargeTime < chargeMinTime && !normal_invoked)//未达到蓄力要去时间 直接取消{OnChargeCancelled?.Invoke();normal_invoked = true;}start_invoked = false;chargeDone = false;chargeTime = 0;}}#endregion}}

面板绑定

animator绑定

Unity 实现蓄力攻击相关推荐

  1. unity 敌人自动攻击和寻路_【A*Pathfinding】超级简单的Unity2D寻路

    哈喽~我是yumir. 写过俯视角射击和"元气骑士"地图生成之后,不做个敌人AI总觉得差点什么,所以又研究了一下Unity的2D寻路. 这次我用的是A*Pathfinding的免费 ...

  2. 鬼泣模仿秀01——Unity3D实现类似鬼泣的蓄力攻击(C#)

    1 float KeyTime=0f; 2 bool addTime=false; 3 void Update () { 4 if (Input.GetKeyDown (KeyCode.J)) { 5 ...

  3. 每日一皮:没想到现实比赛里也能和拳皇一样蓄力攻击...

    游戏里的蓄力 .   .   . 往期推荐 每日一皮:公鸡说,你不会下蛋上去瞎扭啥嘛... 每日一皮:是金子无论到哪里.哪怕变个形状都会发光.. 每日一皮:风起云涌!太极八卦!这才是真"马保 ...

  4. unity 敌人自动攻击和寻路_Unity暑期萌新入门:环境篇

    大家好,新一期又跟大家见面了. 上一节我们完成了角色的移动控制,然而John只能在空白的场景中移动.因此接下来这一节我们将添加关卡.调节光照,让John来到阴森的鬼屋.然后设置NavMesh(导航网格 ...

  5. Unity Animation 动画相关总结

    一.Animator 1.动画渐变 CrossFade是按照动画的自身时间进行混合.如果动画10秒,混合持续时间0.2,会在2秒后混合完成 CrossFadeInFixedTime是按照实际时间进行混 ...

  6. Unity制作RPG游戏——按键功能的分类与实现

    这一部分跟大家分享一个游戏开发中一个必须明白的问题,那就是怎么设计按键,有哪几种按键,怎么实现? 一.按键的种类 简单来说,一般有三类, press signal :键位输入等,按下时获取并更新输入 ...

  7. 角色动作系统概述:战斗、3C相关

    *有一个很重要的点我忘记说了,就是游戏策略-实际上在制作动作系统的时候要考虑兼容各种策略,但是在调手感前,要先想清楚自己的战斗策略,所为战斗策略是指博弈方式,以及对玩家的操作进行约束,约束具体是指你需 ...

  8. 每日一皮:学PHP的不容易...

    往期推荐 每日一皮:学会说话很重要... 每日一皮:你偷偷藏私房钱时被老婆发现的样子... 每日一皮:当你感觉上升瓶颈的时候,不妨换个环境... 每日一皮:美丽的背后都妙不可言... 每日一皮:没想到 ...

  9. 每日一皮:学会说话很重要...

    往期推荐 每日一皮:你偷偷藏私房钱时被老婆发现的样子... 每日一皮:当你感觉上升瓶颈的时候,不妨换个环境... 每日一皮:美丽的背后都妙不可言... 每日一皮:没想到现实比赛里也能和拳皇一样蓄力攻击 ...

  10. 每日一皮:你偷偷藏私房钱时被老婆发现的样子...

    往期推荐 每日一皮:当你感觉上升瓶颈的时候,不妨换个环境... 每日一皮:美丽的背后都妙不可言... 每日一皮:没想到现实比赛里也能和拳皇一样蓄力攻击... 每日一皮:公鸡说,你不会下蛋上去瞎扭啥嘛. ...

最新文章

  1. PHP 使用POST 获取不到部分数据问题
  2. Java中书写要注意的地方
  3. restful api接口规范_如何理解RESTful API设计规范?
  4. 通过VirtualQuery获取当前模块的句柄
  5. grpc双向流究竟是什么情况?2段代码告诉你
  6. 解决VScode在保存less文件时,自动生成对应的css文件以及安装Easy less之后,计算式子不显示结果的问题
  7. 《版式设计——日本平面设计师参考手册》—第1章段落样式和字符样式的基础知识...
  8. 自己动手实现一个简单的 IOC,牛皮!!
  9. vassistx插件
  10. rbf神经网络参数设置_基于梯度下降法的RBF神经网络逼近(03)
  11. 2022年度成都市工程系列专业技术高级职称申报评审工作内容及所需材料
  12. 记一次mykings暗云挖矿木马的排查与解决
  13. 【课程下载】基于Cocos2d-x游戏引擎实战开发超人
  14. word2vec损失函数
  15. java基础猜拳游戏
  16. 微信小程序修改数组中的元素_微信小程序——this.setData()动态修改数组中的某一值...
  17. 一文搞懂go并发编程设计原理
  18. Python环境迁移
  19. SharkCDN,极速构建 CDN DNS 运营平台
  20. 企业发布无线安装APP

热门文章

  1. 老庙黄金2016春晚抢红包活动技术架构详解
  2. JavaWeb之【web站点的欢迎页面】
  3. 高频信号发生器设计—串联型晶体振荡电路
  4. 计算机网络知识总结与面经
  5. 帝国cms php循环,帝国cms 灵动标签 循环嵌套
  6. 淘宝、百度、腾讯、京东 那不得不说的四角恋故事
  7. 求超大文件上传方案( c# )
  8. 编程十年 (13):毁人不倦1
  9. 不符合直接升级win11?教你怎么直接安装win11系统
  10. kafka最全面试题汇总