赞
踩
开发平台:Unity 2019版本以上
编程平台:Visual Studio 2017版本以上
编程语言:C#
描述:只用于存储数据Assets的静态函数,无需附加到游戏对象上。
例如:角色移动参数、攻击参数、道具参数等
CreateInstance()
:实例化(创建)一个与类名相同的对象OnDestroy()
:销毁对象OnDisable()
:禁用对象OnEnable()
:激活对象
如图所示,ScriptableObject
继承于Object
对象,其可使用来自于父类的Protected/Public级别成员方法。
变量
hideFlags
:是否隐藏对象,是否保存在场景中、是否允许被用户修改?name
:对象名称方法
GetInstanceID()
:获取实例化对象的ID编号ToString()
:转换为字符串string
数据类型静态方法
Destroy()
:销毁对象DestroyImmediate()
:立即销毁对象Destroy()
,其包含对DestroyImmediate()
的立即销毁功能和自身额外的延时销毁功能DontDestroyOnLoad()
:加载新场景过程中,该目标对象不会被自动销毁FindObjectOfType()
:返回Type类型的第一个活动加载对象FindObjectsOfType()
:返回Type类型的所有对象列表Instantiate()
:克隆对象,并返回这个对象的克隆对象运算符
bool
:返回true/false,这里用于判断对象是否存在operator !=
:比较两个对象是否为不同的对象operator ==
:比较两个对象是否为同类的对象
SkillInfo
,并继承于ScriptableObject
using UnityEngine;
namespace Skill
{
//技能信息
public class SkillInfo : ScriptableObject
{
public string name; //技能名称
public AnimationClip animation; //技能释放动画
public Sprite icon; //技能图标
public string description; //技能描述
public float dmageValue; //技能伤害
}
}
Editor
,并创建脚本SkillUtility
,内容如下using UnityEditor; using UnityEngine; namespace Skill { // 生成技能信息文件 public class SkillUtility { [MenuItem("Tools/Skill/Create SkillInfo")] static void Create() { //生成 SkillInfo实例 SkillInfo info = ScriptableObject.CreateInstance<SkillInfo>(); //生成文件 AssetDatabase.CreateAsset(info, "Assets/Skills/skill.asset"); //自动选中 Selection.activeObject = info; } } }
[MenuItem("Tools/Skill/Create SkillInfo")]
行,从Unity菜单栏上,依循 Tools -> Skill -> Create SkillInfo 创建实例对象。Assets/Skills/skill.asset
路径Selection.activeObject = info
,为我们自动选中实例化对象在Assets中的具体位置Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。