ScriptableObject可克达拉隔热条设备厂家家
Switch to Scripting
ScriptableObject 是一个可立于类实例来保存大量数据的数据容器。ScriptableObject 的一个主要用例是通过避免重复值来减少项目的内存使用量。如果项目有一个预制件在附加的 MonoBehaviour 脚本中存储不变的数据可克达拉隔热条设备厂家家,这将非常有用。
每次实例化预制件时,都会产生单的数据本。这种情况下可以不使用该方法并且不存储重复数据,而是使用 ScriptableObject 来存储数据,然后通过所有预制件的引用访问数据。这意味着内存中只有一个数据本。
就像 MonoBehaviour 一样,ScriptableObject 派生自基本 Unity 对象,但与 MonoBehaviour 不同,不能将 ScriptableObject 附加到游戏对象。正确的做法是需要将它们保存为项目中的资源。
手机:18631662662(同微信号)如果使用 Editor,可以在编辑时和运行时将数据保存到 ScriptableObject,因为 ScriptableObject 使用 Editor 命名空间和 Editor 脚本。但是,在已部署的构建中,不能使用 ScriptableObject 来保存数据,但可以使用在开发期间设置的 ScriptableObject 资源中保存的数据。
从 Editor 工具作为资源保存到 ScriptableObject 的数据将写入磁盘,因此将在会话之间一直保留。
此页面概述 ScriptableObject 类及其在脚本编写中的常见用法。有关 ScriptableObject 类的每个成员的详尽参考,请参阅 ScriptableObject 脚本参考。
上海的模特Ku是一名自媒体创作者,她的穿搭需要多角度呈现服饰的细节与整体果。“全景相机的镜头与伸缩杆水平时可克达拉隔热条设备厂家家,就能轻松实现伸缩杆‘隐形’的果,一个人也能拍出完整又好看的全身OOTD(今日穿搭)。”
该系统由中国盲文出版社与科技公司共同研发,捕捉盲童阅读中的操作壁垒、理解瓶颈、情感缺失三大核心痛点,解决盲童阅读“看不见”“读不懂”“无互动”的问题。
互联网业务收入平稳增长。1-10月份,我国规模以上互联网和相关服务企业(以下简称互联网企业)完成互联网业务收入16189亿元,同比增长1.1%,增速较前三季度下降1.7个百分点。
今年以来,市场监管总局聚焦社会各方反映强烈的直播虚假营销、假冒伪劣等问题,塑料挤出设备组织开展直播电商突出问题项整治,依法严厉查处各类违法违规行为。市场监管总局网监司司长吴东美表示,为适应直播电商行业发展的新特点新趋势,科学界定直播电商活动各方责任,保护消费者和经营者法权益,市场监管总局会同国家网信办制定《直播电商监督管理办法》,目前已完成各项审核程序,将于近期正式出台,构建经营主体规、部门监管执法、行业协同共治的全方位制度体系,为直播电商创新和健康发展保驾护航。
使用 ScriptableObjectScriptableObjects 的主要用例为:
在 Editor 会话期间保存和存储数据 将数据保存为项目中的资源,以便在运行时使用要使用 ScriptableObject,须在应用程序的 Assets 文件夹中创建一个脚本,并使其继承自 ScriptableObject 类。您可以使用 CreateAssetMenu 属,从而使用您的类轻松创建自定义资源。例如:
using UnityEngine;
[CreateAssetMenu(fileName = "Data", menuName = "ScriptableObjects/SpawnManagerScriptableObject", order = 1)]
public class SpawnManagerScriptableObject : ScriptableObject
{
public string prefabName;
public int numberOfPrefabsToCreate;
public Vector3[] spawnPoints;
}
使用上述在 Assets 文件夹中创建的脚本,您可以通过导航到 Assets > Create > ScriptableObjects > SpawnManagerScriptableObject 来创建 ScriptableObject 的实例。为新的 ScriptableObject 实例提供有意义的名称并更改值。要使用这些值,须创建一个引用 ScriptableObject(在本例中为 SpawnManagerScriptableObject)的新脚本。例如:
using UnityEngine;
public class Spawner : MonoBehaviour
{
// 要实例化的游戏对象。
public GameObject entityToSpawn;
//上面定义的 ScriptableObject 的一个实例。
public SpawnManagerScriptableObject spawnManagerValues;
//这将附加到创建的实体的名称,并在创建每个实体时递增。
int instanceNumber = 1;
void Start()
{
SpawnEntities();
}
void SpawnEntities()
{
int currentSpawnPointIndex = 0;
for (int i = 0; i < spawnManagerValues.numberOfPrefabsToCreate; i++)
{
//在当前生成点处创建预制件的实例。
GameObject currentEntity = Instantiate(entityToSpawn, spawnManagerValues.spawnPoints[currentSpawnPointIndex], Quaternion.identity);
//将实例化实体的名称设置为 ScriptableObject 中定义的字符串,然后为其附加一个唯一编号。
currentEntity.name = spawnManagerValues.prefabName + instanceNumber;
// 移动到下一个生成点索引。如果出范围,则回到起始点。
currentSpawnPointIndex = (currentSpawnPointIndex + 1) % spawnManagerValues.spawnPoints.Length;
instanceNumber++;
}
}
}
Note: The script file must have the same name as the class.
将上述脚本附加到场景中的游戏对象。然后,在 Inspector 中,将 Spawn Manager Values 字段设置为新设置的 SpawnManagerScriptableObject。
将 Entity To Spawn 字段设置为 Assets 文件夹中的任何预制件,然后在 Editor 中单击 Play 。在 Spawner 中引用的预制件会使用在 SpawnManagerScriptableObject 实例中设置的值来实例化。
如果在 Inspector 中使用 ScriptableObject 引用,可以双击引用字段来打开 ScriptableObject 的 Inspector。还可以创建自定义编辑器来定义该类型的 Inspector 外观,从而帮助管理它所代表的数据。
2018–10–15 页面已发布ScriptableObject
