
[Unity]BuffDebuffSystem增益减益系统(1)
发布日期:2021-05-09 11:56:13
浏览次数:4
分类:技术文章
本文共 3777 字,大约阅读时间需要 12 分钟。
BuffControl.cs有update函数不停的判断,调用。
BuffManage.cs里面含有BuffControl.cs判断的函数参数条件,并且可以随时改变,调用参数。
BloodBuff : Buff,public override void BuffFunction函数里面放类型 的函数的判断条件,判断 player_gameObject 的角色属性 是否符合条件,并且 BUFF是否在 player_gameObject 的角色 脚本里面 的List<Buff>,遍历List<Buff> 改变角色属性的函数,使其 BUFF改变角色属性 的函数 仅且执行1次,满足移除BUFF条件 。
或者是 把相关火焰参数的BUFF 放入BuffManage.cs的火焰list中,当火焰参数发生变化,增加或者减少的时候,就调用BuffManage.cs的火焰list遍历一遍,判断 相关的火焰参数的BUFF是否生效。
----------------------------------------------------代码
BuffManage.cs
using System.Collections;using System.Collections.Generic;using UnityEngine;public class BuffManage : MonoBehaviour { #region Singleton public static BuffManage instance; private void Awake() { instance = this; } #endregion public Listlist_buff = new List (); public void ForeachListBuffBool(bool IsEffect) { for (int i=0; i
Buff.cs
using UnityEngine;//.cs脚本 继承ScriptableObject,才能使得 CreateAssetMenu 生效[CreateAssetMenu(fileName = "New Buff", menuName = "Buff/Create Empty Buff")]public class Buff : ScriptableObject{ public string BuffName; public int CharacterDamage; public int CharacterArmor; public bool isEffect = false; public virtual void BuffFunction(GameObject player_gameobject) { //use the item Debug.Log(" BuffFunction:" + BuffName); } public virtual void EffectBuff(GameObject player_gameobject) { //use the item Debug.Log(" EffectBuff:"+ BuffName); } public virtual void FailureBuff(GameObject player_gameobject) { //use the item Debug.Log(" FailureBuff:" + BuffName); } public virtual void Tooltip() { //tool tip buff }}
BloodBuff.cs
using System.Collections;using System.Collections.Generic;using UnityEngine;[CreateAssetMenu(fileName = "New Equipment", menuName = "Buff/Create Buff/BloodBuff")]public class BloodBuff : Buff{ public override void BuffFunction(GameObject player_gameobject) { base.BuffFunction(player_gameobject); Debug.Log("BloodBuff BuffFunction:" + BuffName); if(isEffect == false) { FailureBuff(player_gameobject); } if (isEffect == true) { EffectBuff(player_gameobject); } } public override void EffectBuff(GameObject player_gameobject) { base.EffectBuff(player_gameobject); Debug.Log("BloodBuff EffectBuff:" + BuffName); } public override void FailureBuff(GameObject player_gameobject) { base.FailureBuff(player_gameobject); Debug.Log("BloodBuff FailureBuff:" + BuffName); }}
BuffControl.cs
using System.Collections;using System.Collections.Generic;using UnityEngine;public class BuffControl : MonoBehaviour { private BuffManage buffManage; public GameObject player_gameObject; // Use this for initialization void Start () { buffManage = BuffManage.instance; } // Update is called once per frame void Update () { ForeachList_Buff(); } private void ForeachList_Buff() { Buff[] array_buff = buffManage.list_buff.ToArray(); for (int i=0; i< array_buff.Length ;i++) { if (player_gameObject != null) { array_buff[i].BuffFunction(player_gameObject); } } }}
Buff_Button.cs
using System.Collections;using System.Collections.Generic;using UnityEngine;public class Buff_Button : MonoBehaviour { public void Button_EffectBuff()//Trigger buff { Debug.Log("Button_EffectBuff"); BuffManage.instance.ForeachListBuffBool(true); } public void Button_FailureBuff()//Trigger buff { Debug.Log("Button_FailureBuff"); BuffManage.instance.ForeachListBuffBool(false); }}
相关资源1,持续时间的BUFF的源码
相关资源:
1.
2.
3.
转载地址:https://blog.csdn.net/BuladeMian/article/details/80644582 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2023年09月20日 03时08分16秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
MyBatis_Plus联表分页查询
2019-03-07
基于SpringBoot的策略模式demo
2019-03-07
docker安装nacos
2019-03-07
Java设计模式之三---工厂模式
2019-03-07
javascript 获取接口返回的二进制blob 数据,后再转为对应mime 文件
2019-03-07
ceph radosgw实现在不同用户间的文件copy
2019-03-07
MySQL笔记 -- 单机多实例安装
2019-03-07
FrontEnd笔记 -- PhotoShop
2019-03-07
虚幻4—创造一个旋转的电池(其他物体也可以)
2019-03-07
ue4添加动画蓝图走和跳
2019-03-07
vue根据秒数转换成对应的时分秒
2019-03-07
vue-cli的安装
2019-03-07
Vue之脚手架vue-cli的搭建
2019-03-07
店宝宝:滴滴新业务,便宜“一口价”
2019-03-07
全球巨头相继布局主流算力,人人矿场占据先发优势
2019-03-07
ECRS原则下的vioovi-工厂提效神器~
2019-03-07
网络安全笔记-15-网络层-ARP协议
2019-03-07
网络安全笔记-16-VLAN
2019-03-07
网络安全笔记-17-单臂路由
2019-03-07
网络安全笔记-18-ICMP 协议
2019-03-07