[英]How do I assign an on click listener to a game object that is created at runtime in Unity using C#?
[英]UNITY C# - How can I save a Game Object, that has been instantiated in a runtime, in a runtime?
我有一个我在运行时实例化的游戏 Object。 然后,我对其进行了一些更改,例如:我添加了一些子对象、组件等。我想以某种方式保存这个新创建的 object 以供我在其他场景和会话中使用。 问题是:如何? 谢谢你。
PS 显然我不能使用 UnityEditor 命名空间
如果您想在其他场景中重复使用 object,您可以使用DontDestroyOnLoad
方法来防止它在切换场景时被破坏。 之后,如果您的目标是生成此 object 的副本,您可以禁用它并将其视为预制件并在必要时实例化它的副本。
如果您希望能够在重新启动游戏后重新使用 object,您可能想查看在 Unity 中保存数据的方法。 一种简单的方法是使用PlayerPrefs
,但您必须自己编写代码来加载/保存 object 的 state,因为它只能直接保存int
、 float
、 string
数据类型值。
Here are a couple of references: https://docs.unity3d.com/ScriptReference/Object.DontDestroyOnLoad.html https://docs.unity3d.com/ScriptReference/PlayerPrefs.html
您可以尝试的更具体的解决方案是将您制作的自定义 class 序列化为JSON
文件。 GameObject
将包含重新创建场景中任何游戏对象所需的数据。
在编辑器之外创建预制件不是一种选择。 这是一个参考: https://www.reddit.com/r/Unity3D/comments/a5c02u/save_gameobject_as_prefab_at_runtime/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.