Unity3d,将组件添加到资源中的预制
有一次我在Unity玩资源系统时发现: 如果仅加载但未实例化预制,则说明:Unity3d,将组件添加到资源中的预制,unity3d,Unity3d,有一次我在Unity玩资源系统时发现: 如果仅加载但未实例化预制,则说明: GameObject testObj = Resource.Load("testPrefab"); 您有一个名为“TestScript”的脚本,并将该脚本添加到testObj testObj.AddComponent<TestScript>(); testObj.AddComponent(); 运行并关闭它后,此TestScript仍将位于资源文件夹中的testPrefab内,如果再次运行,则资源文件夹
GameObject testObj = Resource.Load("testPrefab");
您有一个名为“TestScript
”的脚本,并将该脚本添加到testObj
testObj.AddComponent<TestScript>();
testObj.AddComponent();
运行并关闭它后,此TestScript仍将位于资源文件夹中的testPrefab
内,如果再次运行,则资源文件夹中的testPrefab
将有两个TestScript
组件
我知道,Resource.Load()
只是指向资源文件夹中的预置,没有复制
但是,如果说,在这个预置中放置一个
cleanpreafact()
函数,以确保它首先恢复到原始配置,然后根据需要添加其他组件,这是一个好主意吗?不要修改预置。预制件用作可重复使用的对象。您不应该尝试修改它的原因有很多。其中之一是它将影响预置的实例化对象引用。对预制件进行修改后,无法保证您的关卡将按照预期的方式开始。这会把你的比赛搞砸的
您运行它,然后关闭它,这个测试脚本仍然在里面
资源文件夹中的TestPrefable,如果再次运行,则
资源文件夹中的TestPrefable将有两个TestScript组件
您描述的行为仅在编辑器中为真。一旦你建立了它,行为就完全不同了。在独立版本中,一旦重新启动程序,预置将自动重置自身。您真正要修改的是内存中加载的预置,而不是磁盘上存储的预置。还要注意,Resources文件夹中的所有内容都是只读的。它们不能被修改
如果直接修改预设,即使重新加载场景,它也会保留在内存中。只有在重新启动应用程序时,修改才会消失。不要修改预设 不要修改预制件。预制件用作可重复使用的对象。您不应该尝试修改它的原因有很多。其中之一是它将影响预置的实例化对象引用。对预制件进行修改后,无法保证您的关卡将按照预期的方式开始。这会把你的比赛搞砸的 您运行它,然后关闭它,这个测试脚本仍然在里面 资源文件夹中的TestPrefable,如果再次运行,则 资源文件夹中的TestPrefable将有两个TestScript组件 您描述的行为仅在编辑器中为真。一旦你建立了它,行为就完全不同了。在独立版本中,一旦重新启动程序,预置将自动重置自身。您真正要修改的是内存中加载的预置,而不是磁盘上存储的预置。还要注意,Resources文件夹中的所有内容都是只读的。它们不能被修改 如果直接修改预设,即使重新加载场景,它也会保留在内存中。只有在重新启动应用程序时,修改才会消失。不要修改预设