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 Singletonpublic static BuffManage instance;private void Awake(){instance = this;}#endregionpublic List<Buff> list_buff = new List<Buff>();public void ForeachListBuffBool(bool IsEffect){for (int i=0; i<list_buff.Count ;i++){list_buff[i].isEffect = IsEffect;}}
}

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 itemDebug.Log("    BuffFunction:" + BuffName);}public virtual void EffectBuff(GameObject player_gameobject){//use the itemDebug.Log("    EffectBuff:"+ BuffName);}public virtual void FailureBuff(GameObject player_gameobject){//use the itemDebug.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 initializationvoid Start () {buffManage = BuffManage.instance;}// Update is called once per framevoid 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.

unity-flexible-buff-system

2.

3.

[Unity]BuffDebuffSystem增益减益系统(1)相关推荐

  1. (转)[EntLib]微软企业库5.0 学习之路——第十步、使用Unity解耦你的系统—PART2——了解Unity的使用方法(1)...

    原文地址:http://www.cnblogs.com/kyo-yo/archive/2010/11/01/Learning-EntLib-Tenth-Decoupling-Your-System-U ...

  2. unity FBX模型导出系统源码WRP FBX Exporter下载

    unity FBX模型导出系统源码WRP FBX Exporter Requires Unity 5.0.4 or  higher. Fast and easy way to export FBX f ...

  3. Unity 影音视频播放中控系统(适用于展厅、影音厅),带UDP控制切换!

    Unity - 影音视频播放中控系统(适用于展厅.影音厅等等),带有关机.音量控制.UDP控制切换! 一:效果图 二:所用插件 三:项目说明! 三:工程详解! 四:Demo学习 五:关于AB资源打包的 ...

  4. [EntLib]微软企业库5.0 学习之路——第十步、使用Unity解耦你的系统—PART5——使用Unity自身的拦截器...

    在前一篇文章中,介绍了如何使用Unity来接管PIAB进行拦截操作,而Unity自身也提供了类似于ICallHandler的拦截处理程序--IInterceptionBehavior,今天这篇文章就是 ...

  5. 详解Unity 5 全局光照系统Enlighten问题(下)

    昨天在 Unity 5 全局光照系统Enlighten问题的文章中,我们为大家解答了:"为什么场景烘焙出来的lightmap上有Realitime灯光的颜色?"和"为什么 ...

  6. unity 对Animator动画系统的研究

    unity的新动画系统叫Mecanim,使用Animator来取代旧系统Animation,按Unity文档的惯例:知识点主要分2部分:unity manual和unity script,读者可以边看 ...

  7. unity桌面设置vnc_win7系统通过VNCViewer访问Ubuntu桌面环境的操作方法

    电脑系统通过VNCViewer访问Ubuntu桌面环境的问题每个人都有不同的操作门路,小编在大量的搜集通过VNCViewer访问Ubuntu桌面环境的解法之后,总结出来一套比较简单的通过VNCView ...

  8. 升级浏览器_升级Unity 8,优化系统组件,添加键盘手势,升级浏览器,UbuntuTouch最大的一次更新

    Ubuntu Touch OTA-12正式发布了,官方声称这是Ubuntu Touch有史以来最大的一次发布,加入了许多新功能,可以在许多支持的Ubuntu Touch设备上使用. Ubuntu To ...

  9. 【游戏开发Unity】捏脸系统(附源码)

    本着"没有捏脸系统算什么RPG"的想法,着手做一个2d简易捏脸demo.其实换装游戏都差不多啦~ github代码地址:Simple-Character-Edit-System ( ...

最新文章

  1. Mogees将手势识别技术运用于新产品
  2. 使用 Boost.Lambda 库创建并存储在 Boost.Function 对象中的函子中使用 Boost.Units 的数量、单位和绝对类型
  3. 几行代码搞定树形文本转XML和JSON
  4. react改变checkbox的文字类型_reactjs – React复选框事件和处理程序的Typescript类型?...
  5. MVC+EF 入门教程(四)
  6. 利用python自动发邮件
  7. 小D课堂 - 新版本微服务springcloud+Docker教程_1_02技术选型
  8. Ubuntu wine QQ卡死
  9. 【毕业设计源码】基于SSM的小程序任务调度管理信息系统设计与实现
  10. Ios王者微信抢先服务器,王者荣耀iOS微信57区最强王者
  11. python3 gzip解压_使用 Python 解压缩 gzip 数据流
  12. android系统应用程序电量消耗计算方法
  13. 你是否也陷入了《能力陷阱》?
  14. 2019年南京大学计算机研究生复试分数线,2019年南京大学研究生复试分数线
  15. 怎么快速将图片表格转换为Excel表格?
  16. 警告 Invalid cookie header: Set-Cookie:
  17. RuntimeWarning: Mean of empty slice
  18. 专访阿里云高级技术专家吴威:Kafka、Spark和Flink类支持流式计算的软件会越来越流行...
  19. 小程序构建npm问题
  20. 三星R528成功安装Mac Lion10.7系统

热门文章

  1. 计算机一级演示文稿操作,计算机一级ppt操作
  2. js中数组排序的五种方式
  3. Qt request获取百度界面(最简单的例子)
  4. 美团地推主要是做什么的
  5. HTML层问题之如何能将文字至于视频上面?
  6. 路飞学城python开发ftp_路飞学城-Python开发-第二章
  7. 图像清晰度评价(C#)
  8. xmake v2.3.1 发布, 无缝对接其他构建系统
  9. 【JavaScript】面向对象——构造函数(详解)
  10. vue - vue中实现对图片添加水印和截图的功能