介绍

在你想制作一个技能的时候,一般情况下你需要有一个技能类,然后你需要实例化这个技能类,制作一个单例,填入不同的构造函数。

而这个时候,就可以选择使用Scriptable Object,脚本化对象。
Scriptable Object在unity中的图标样式:

Scriptable Object简单来说就是个数据容器,它将实例化的对象都以脚本的方式存储在文件夹中。

以我现在做的项目为例简单介绍Scriptable Object的使用:

一,创建一个模板来定义每个对象包含的信息:

注意:此技能类是需要继承ScriptableObject,不需要挂载在任何gameobject上。因为是保存在文件夹当中,也可以利用此特性做到数据的储存。

using UnityEngine;[CreateAssetMenu(fileName ="New Skill",menuName ="Skills/Minion")]
public class Skill:ScriptableObject
{[Header("技能名称")]public new string skillName;[Header("最小释放距离")]public int minDistance;[Header("最大释放距离")]public int maxDistance;[Header("立即伤害值/恢复值")]public int damage;[Header("技能图标")]public Sprite skillIcon;[Header("技能CD回合数")]public int CD;[Header("技能已经进入CD几回合")]//当nowCD==CD 技能可以释放public int nowCD;[Header("是否是个buff类技能")]public bool isDot;[Header("对谁释放的技能:0对自己,1对敌人")]public int isToEnemy;[Header("持续回合数")]public int keepRound;[Header("已经持续的回合数")]//当nowRound == keepRound 技能效果消失public int nowRound;[Header("增加/降低生命值")]public int addHp;[Header("增加/降低攻击力")]public int addPower;[Header("增加/降低防御力")]public int addDef;[Header("增加/降低攻击距离")]public int addAttackDistance;[Header("增加/降低移动距离")]public int addMoveDistance;[Header("是否是个群体技能")]public bool isAOE;[Header("群体技能最小范围")]public int aoeMinDistance;[Header("群体技能最大范围")]public int aoeMaxDistance;[Header("技能特效")]public GameObject skillEffects;
}

二,从模板创建对象:

第一步完成之后,在Asset窗口点击右键–Create–Skills–Minion就可以创建ScriptableObject了。这个时候你只需要填值就可以了。每次新建一个Skill的ScriptableObject,都相当于新建了一个技能。可以把这个技能有关的任何数据都储存在里面。包括音乐,特效,谁可以释放,动画,持续几回合等等。而它的数据类型就是之前建的Skill类。

碎碎念

因为Scriptable Object的特性,在游戏中对Scriptable Object的更改,在游戏结束之后,也会保存下来。所以说游戏进行的过程中,应该用某些方法,将技能的scriptable Object中的数据复制一份作为临时数据。而游戏中操作和更改的都是临时数据。这样就会保证游戏结束的时候技能的Scriptable Object不会改变。

学习笔记:Unity 使用Scriptable Object制作装备技能卡牌相关推荐

  1. Unity学习笔记(7) Unity2D骨骼动画制作流程

    用骨骼动画最大的好处就是方便之后做换装系统. 无论对3Dor2D游戏都是这样的. 这篇博文记录一下2D骨骼动画的制作流程,参考b站麦扣的系列教程: https://space.bilibili.com ...

  2. Python学习笔记:‘’AttributeError: NoneType object has no attribute‘’

    前言 最近在学习python,犯了很多低级错误,总结一下 目录 文章目录 前言 目录 问题 出处 方案 问题 AttributeError: 'NoneType' object has no attr ...

  3. unity3d学习笔记(九)--NGUI制作英雄和怪物的头像和血条

    本系列文章由Aimar_Johnny编写,欢迎转载,转载请标明出处,谢谢. http://blog.csdn.net/lzhq1982/article/details/12710797 上一篇讲了NG ...

  4. DNN学习笔记 最简单的皮肤制作

    说明: 在学习DNN时,使用的版本为 DNN8.参考资料:http://www.dnnsoftware.com/docs/designers/creating-themes/index.html 制作 ...

  5. 部份API学习笔记(Math,System,Object,Date,SimpleDateFormat)

    一.Math类:Math包含执行基本数字运算的方法,如基本指数,对数,平方根和三角函数.是静态类,用static修饰的,没有构造方法,不有实例化对象,直接用类名调用方法例属于:java.lang 使用 ...

  6. 【VR】Unity3d VR学习笔记——Unity烘焙

    转载:http://m.manew.com/thread-45006-1-1.html?_dsign=f931ed77 1.立方映射:Cubemap 生成立方映射是用脚本生成的,建立Editor文件夹 ...

  7. 学习笔记——HTML实现个人简历制作

    只是用HTML实现个人简历的制作,练习使用table等表格标签及其属性的使用. 1.代码: <table border="1px" cellspacing="0&q ...

  8. python软件设计数据分析统计服_学习笔记(一)-python制作数据分析工具

    本文使用numpy.pandas.scipy等依赖包,利用python制作数据分析工具,了解数据的特征分布.缺失.异常情况,实现数据的预处理.常用的描述性统计指标主要包括基本均值.中位数.最大最小值. ...

  9. UnityShader学习笔记 Unity的表面着色器

    将渲染流程划分为表面着色器.光照模型和光照着色器这样的层面. 其中,表面着色器定义了模型表面的反射率.法线和高光等,光照模型选择是使用兰伯特还是Blinn-Phong等模型.而光照着色器负责计算光照衰 ...

最新文章

  1. android 添加日程失败,Andriod向系统日历添加日程
  2. 【Android 安装包优化】WebP 图片格式兼容与性能 ( Android 中的 WebP 图片格式兼容问题 | Android 中的 WebP 图片格式性能 )
  3. 使用SAX解析XML文件
  4. 使Win10用户获得特殊权限以便删除相应文件(夹)
  5. [51nod1376] 最长递增子序列的数量
  6. 机器学习偏差方差_机器学习101 —偏差方差难题
  7. 《假如编程是魔法之零基础看得懂的Python入门教程 》——(六)精简魔法更强大
  8. 北京计算机一级2020,2020北京市一级计算机基础及MS Office应用考试在线自测试题库(不限设备,登陆即可做题)...
  9. java 监听窗口是否改变_JAVA项目监听文件是否发生变化
  10. java consul服务发现_分布式项目(七)consul 服务注册与发现
  11. redis docker安装、进入命令行后启动服务
  12. 一款很好看的个人主页html源码
  13. 计算机系军训口号四句霸气,大一新生军训四句口号霸气押韵
  14. 堆料堆不出电视头部玩家
  15. webrtc与stunserver、turnserver建立连接花费时间十秒左右
  16. 鸿湖万联与龙芯中科共建“芯片+操作系统”全自主产业生态链
  17. input框不可编辑的三种方法
  18. 解决tomcat7安装后启动时一闪而退的bug
  19. java mp3 信息_java读取MP3的信息
  20. Abaqus2021关联Solidworks2022成功方法

热门文章

  1. 1.2.1 用继电器实现1+1=2
  2. Notallowedtosetthedevice owner because there are already some accounts on thedevice
  3. chatgpt赋能python:Python做动画视频教程-如何入门
  4. html表单按钮颜色修改,当表单有效时更改提交按钮颜色
  5. 国产数据库VastBase适配指南
  6. 实例:Gson解析泛型对象
  7. 多台Linux服务器一起关机,求!linux 统一远程关机的方法?
  8. javaweb-青橙项目-10-85
  9. 【人工智能AI2.0】清华发布了 ChatGLM-6B 中国大模型5支学术界团队和10大产业界力量介绍
  10. JAVA毕业设计家用饰品在线销售系统计算机源码+lw文档+系统+调试部署+数据库