步骤一:创建ScriptableObject脚本 打开Unity编辑器并创建一个新的项目(如果尚未有项目)。 在项目的Assets文件夹中,右键点击空白区域,选择Create > C# Script。 将新创建的脚本命名为例如MyScriptableObject,然后双击打开该脚本进行编辑。 删除继承自MonoBehaviour的部分,改为继承自ScriptableObject。 csharp using UnityEng...
ScriptableObject是一个Unity中的object,不是GameObject的实例。你可以使用它来创建一个具有自己的变量和方法的类,其开销会比MonoBehaviour更小。 Unity的GameObject会默认包含一个Transform组件,体现为:1、在Inspector中可以看到Transform组件;2、继承了MonoBehaviour的类中可以直接调用transform参数。 SO不包含Transform并且存在...
unity中的ScriptableObject(脚本化对象)案例 unity中的ScriptableObject(脚本化对象)案例 Scriptable Object被认为是可以重⽤的数据容器,这些数据容器⾸先通过C#脚本定义,再通过Asset菜单⽣产,然后作为Asset保存在Unity项⽬中。其有两个重要的⽤途,⼀为通过对Scriptable Object资源的实例的(直接)引⽤,...
ScriptableObject是一个数据容器,它可以用来保存大量数据,主要的用处就是在项目中通过将数据存储在ScriptableObject对象,避免值拷贝来减少游戏运行中的内存占用。当你有一个预制体,上面挂了一个存有不变数据的MonoBehaviour 脚本时,每次我们实例化预制体时都将产生一次数据拷贝,这时我们可以使用ScriptableObject对象来存储数据,...
“ScriptableObject 是一个可独立于类实例来保存大量数据的数据容器。ScriptableObject 的一个主要用例是通过避免重复值来减少项目的内存使用量。如果项目有一个预制件在附加的 MonoBehaviour 脚本中存储不变的数据,这将非常有用。 每次实例化预制件时,都会产生单独的数据副本。这种情况下可以不使用该方法并且不存储重复数据...
我们创建一个C#脚本然后做点修改: [CreateAssetMenu(fileName = "##创建Scriptable Obj时候默认的名字",menuName = "##右键菜单里的路径,比如Make a Bullet/Bullet")]//方便从菜单快速创建子弹副本publicclassBullets:ScriptableObject{publicfloatbulletSpeedpublicfloatdamagepublicintlifeSpanpublicBulletTypebulletType}...
Scriptable Object简单来说就是个数据容器,它将实例化的对象都以脚本的方式存储在文件夹中。 以我现在做的项目为例简单介绍Scriptable Object的使用: 一,创建一个模板来定义每个对象包含的信息: 注意:此技能类是需要继承ScriptableObject,不需要挂载在任何gameobject上。因为是保存在文件夹当中,也可以利用此特性做到数据的...
当使用编辑器运行游戏的时候,可以将数据保存到ScriptableObject里(当创建一个脚本化对象实例后使用AssetDatabase.CreateAsset()保存该资源),退出之后也不会丢失,因为它是作为Assets下的资源存在的;它是仅在编辑器中才可以保存修改的数据(因为ScriptableObject对象虽然声明在UnityEngine中,但是它的Scriptable是通过UnityEditor命...
ScriptableObject 是一个可独立于类实例来保存大量数据的数据容器。ScriptableObject 的一个主要用例是通过避免重复值来减少项目的内存使用量。如果项目有一个预制件在附加的 MonoBehaviour 脚本中存储不变的数据,这将非常有用。