runtimeObject.myValue = 42; // 将修改后的属性保存回原始对象 originalObject.myValue = runtimeObject.myValue; } } 在上面的示例中,我们在Start方法中使用Instantiate方法创建了ScriptableObject的副本。然后,在Update方法中修改了副本的myValue属性,并将修改后的属性值保存回原始对象。
ScriptableObject能够保存值很好理解,而MonoBehavior能够保存值得原因也很好理解,因为MonoBehavior作为组件会挂载在GameObject对象上,这时就算停止运行了之后,写在MonoBehavior里的字段值也会保留下来,这样我们就达到了保存值得目的,而本项目中也是使用了MonoBehavior来保存值。
减少不必要的字符串创建或操作。避免解析基于字符串的数据文件,例如 JSON 和 XML ;改用 ScriptableObject 或 MessagePack、Protobuf 等格式存储数据。如果需要在运行时构建字符串,请使用StringBuilder类。 Unity 函数调用 :请注意,某些函数会创建堆分配。缓存数组引用,不要在循环中分配数组。此外,请使用某些避免产生垃圾...
首先,创建一个名为TestScriptableObject的新c#脚本,其中包含以下代码。 TestScriptableObject.cs using UnityEngine; [CreateAssetMenu(fileName = "TestScriptableObject")] public class TestScriptableObject : ScriptableObject { public AudioClip[] audioClips; public void PlayAudioClip(int i) { AudioSource.PlayClip...
Can’t save during runtime,once you’ve built the game meaning that this is not solution for saving a player’s data.This is only for saving game development data. Let's take one example to understand how to use ScriptableObject in game. Let me give you one task first. Suppose, we ha...
Scriptable Object常用用法之Runtime Set RuntimeSet也就是运行时集,比如在游戏运行时游戏内的所有敌人就是一个运行时集,有些情况下我们需要得到这个RuntimeSet来对所有集合内的object做统一的处理,那么ScriptableObject就是运来存放运行时集RuntimeSet的最佳选项,我们只需要让需要的object在被生成时将自己注册进存放进Sc...
ScriptableObject类型经常用于存储一些unity3d本身不可以打包的一些object,比如字符串,一些类对象等。用这个类型的子类型,则可以用BuildPipeline打包成assetbundle包供后续使用,非常方便。这样除了playerpref和c#文件读取外,另外的一种存取一些数据对象的方法 1. using UnityEngine; ...
通过使你的类从ScriptableObject脚本对象化这个类派生,使你的类称为一种资源类型,这样的话,你可以在硬盘上存储他们,并使用unity3d的IDE接口去资源文件拖拽他们的行为或者任何其他。 usingUnityEngine; publicclassTieFighter : MonoBehaviour { publicXMLContainer myXMLSettings; ...
首先,创建一个名为TestScriptableObject的新c#脚本,其中包含以下代码。 TestScriptableObject.cs 代码语言:javascript 复制 using UnityEngine;[CreateAssetMenu(fileName="TestScriptableObject")]publicclassTestScriptableObject:ScriptableObject{publicAudioClip[]audioClips;publicvoidPlayAudioClip(int i){AudioSource.PlayClip...
assetsfolder onto the myXMLSettings public field.Please note that this example is much better at showing how you could use a ScriptableObject than how to properly implement a TieFighter, as I would never really have that parse an actual xml file on runtime. Tiefighters are too cool for xml...