Unity 实现蓄力攻击
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 实现蓄力攻击相关推荐
- unity 敌人自动攻击和寻路_【A*Pathfinding】超级简单的Unity2D寻路
哈喽~我是yumir. 写过俯视角射击和"元气骑士"地图生成之后,不做个敌人AI总觉得差点什么,所以又研究了一下Unity的2D寻路. 这次我用的是A*Pathfinding的免费 ...
- 鬼泣模仿秀01——Unity3D实现类似鬼泣的蓄力攻击(C#)
1 float KeyTime=0f; 2 bool addTime=false; 3 void Update () { 4 if (Input.GetKeyDown (KeyCode.J)) { 5 ...
- 每日一皮:没想到现实比赛里也能和拳皇一样蓄力攻击...
游戏里的蓄力 . . . 往期推荐 每日一皮:公鸡说,你不会下蛋上去瞎扭啥嘛... 每日一皮:是金子无论到哪里.哪怕变个形状都会发光.. 每日一皮:风起云涌!太极八卦!这才是真"马保 ...
- unity 敌人自动攻击和寻路_Unity暑期萌新入门:环境篇
大家好,新一期又跟大家见面了. 上一节我们完成了角色的移动控制,然而John只能在空白的场景中移动.因此接下来这一节我们将添加关卡.调节光照,让John来到阴森的鬼屋.然后设置NavMesh(导航网格 ...
- Unity Animation 动画相关总结
一.Animator 1.动画渐变 CrossFade是按照动画的自身时间进行混合.如果动画10秒,混合持续时间0.2,会在2秒后混合完成 CrossFadeInFixedTime是按照实际时间进行混 ...
- Unity制作RPG游戏——按键功能的分类与实现
这一部分跟大家分享一个游戏开发中一个必须明白的问题,那就是怎么设计按键,有哪几种按键,怎么实现? 一.按键的种类 简单来说,一般有三类, press signal :键位输入等,按下时获取并更新输入 ...
- 角色动作系统概述:战斗、3C相关
*有一个很重要的点我忘记说了,就是游戏策略-实际上在制作动作系统的时候要考虑兼容各种策略,但是在调手感前,要先想清楚自己的战斗策略,所为战斗策略是指博弈方式,以及对玩家的操作进行约束,约束具体是指你需 ...
- 每日一皮:学PHP的不容易...
往期推荐 每日一皮:学会说话很重要... 每日一皮:你偷偷藏私房钱时被老婆发现的样子... 每日一皮:当你感觉上升瓶颈的时候,不妨换个环境... 每日一皮:美丽的背后都妙不可言... 每日一皮:没想到 ...
- 每日一皮:学会说话很重要...
往期推荐 每日一皮:你偷偷藏私房钱时被老婆发现的样子... 每日一皮:当你感觉上升瓶颈的时候,不妨换个环境... 每日一皮:美丽的背后都妙不可言... 每日一皮:没想到现实比赛里也能和拳皇一样蓄力攻击 ...
- 每日一皮:你偷偷藏私房钱时被老婆发现的样子...
往期推荐 每日一皮:当你感觉上升瓶颈的时候,不妨换个环境... 每日一皮:美丽的背后都妙不可言... 每日一皮:没想到现实比赛里也能和拳皇一样蓄力攻击... 每日一皮:公鸡说,你不会下蛋上去瞎扭啥嘛. ...
最新文章
- PHP 使用POST 获取不到部分数据问题
- Java中书写要注意的地方
- restful api接口规范_如何理解RESTful API设计规范?
- 通过VirtualQuery获取当前模块的句柄
- grpc双向流究竟是什么情况?2段代码告诉你
- 解决VScode在保存less文件时,自动生成对应的css文件以及安装Easy less之后,计算式子不显示结果的问题
- 《版式设计——日本平面设计师参考手册》—第1章段落样式和字符样式的基础知识...
- 自己动手实现一个简单的 IOC,牛皮!!
- vassistx插件
- rbf神经网络参数设置_基于梯度下降法的RBF神经网络逼近(03)
- 2022年度成都市工程系列专业技术高级职称申报评审工作内容及所需材料
- 记一次mykings暗云挖矿木马的排查与解决
- 【课程下载】基于Cocos2d-x游戏引擎实战开发超人
- word2vec损失函数
- java基础猜拳游戏
- 微信小程序修改数组中的元素_微信小程序——this.setData()动态修改数组中的某一值...
- 一文搞懂go并发编程设计原理
- Python环境迁移
- SharkCDN,极速构建 CDN DNS 运营平台
- 企业发布无线安装APP