CreateInstance:在游戏运行时创建一个Scriptable类型的实例,不使用时被GC回收;
//静态方法,使用了ScriptableObject类约束的泛型参数T
public static T CreateInstance<T>() where T : ScriptableObject;
Instantiate:实例化一个对象,返回一个实例;类似于GameObject的Instantiate(),其它函数也和GameObject类似;
public static T Instantiate(T original);
public static T Instantiate(T original, Transform parent);
public static T Instantiate(T original, Transform parent, bool worldPositionStays);
public static T Instantiate(T original, Vector3 position, Quaternion rotation);
public static T Instantiate(T original, Vector3 position, Quaternion rotation, Transform parent);
Parameters
Message:ScriptableObject内部实现上也继承自MonoBehavior,它只有四个消息函数,Awake()、OnDestroy()、OnEnable()、OnDisable();
[CreateAssetMenu(fileName = "data", menuName = "ScriptableObjects/SpawnManagerScriptableObject", order = 1)]
public class SpawnManagerScriptableObject : ScriptableObject {
public string prefabName;
public int numberOfPrefabsToCreate;
public Vector3[] spawnPoints;
}
然后,在Assets下创建一个可编程对象资源,设置好所需数据;如果需要在其它脚本中获取该数据,是需要声明一个该类型变量,然后为其赋值或加载该数据资源;然后,就像使用用一个类中的公有变量一样使用即可;
public SpawnManagerScriptableObject spawnManagerValues;
//spawnManagerValues.prefabName
提示:可以使用CustomEditor来为ScriptableOjbect创建自定义属性面板;
3.ScriptableObject与Json
打开CSDN,阅读体验更佳
Unity ScriptableObject序列化对象用法
Unity ScriptableObject序列化对象的简单用法,包含了怎么定义、创建、加载一个序列化对象
unity2020 webgl 加载配置文件 ScriptableObject 和StreamingAssets
一、使用ScriptableObject:(优点:unity自带无需配置,缺点:打包后无法在进行修改) 建议项目初期,配置项目数据相关的数值参数。便于新项目或策划修改。 1.创建配置文件相关的类型 using System; using System.Collections.Generic; using UnityEngine; public class Student : ScriptableObject { public List<StudentInfo> Clients=new
浏览器打开