您的当前位置:首页正文

Unity3DDontDestroyOnLoad函数使用注意事项

来源:九壹网
Unity3DDontDestroyOnLoad函数使用注意事项 Object.DontDestroyOnLoad 加载时不销毁

static function DontDestroyOnLoad (target : Object) : void

加载新场景的时候使目标物体不被自动销毁。

当加载一个新关卡时,所有场景中所有的物体被销毁,然后新关卡中的物体被加载进来。为了保持在加载新关卡时物体不被销毁,使用DontDestroyOnLoad保持,如果物体是一个组件或游戏物体,它的整个transform层次将不会被销毁,全部保留下来。

然而我们在使用的时候要注意一下,否则会出现很多的游戏物体,比如你的角色进入一个关卡,然后进入另外一个关卡,然后回到原来的关卡,此时该关卡出现了两个角色,角色只会叠加,我们想要的只是一个角色,那么写代码的时候就要注意了,代码如下:

[csharp] view plain copy 1. using UnityEngine; 2. using System.Collections; 3.

4. public class Test: MonoBehaviour { 5.

6. public GameObject prefab; // 这是个预制,直接拖拽赋值

7. GameObject clone; // 用来接收预制的克隆体 8. static bool isHaveClone = false; // 静态变量,所有脚本共用,也就是保证预制只能被克隆一次,不会出现多个角色

9.

10. // Use this for initialization 11. void Start () { 12. if (!isHaveClone) 13. {

14. clone = (GameObject)GameObject.Instantiate(prefab);

15. isHaveClone = true;

16. GameObject.DontDestroyOnLoad(clone); 17. } 18. } 19.

20. // Update is called once per frame 21. void Update () { 22. 23. } 24. }

因篇幅问题不能全部显示,请点此查看更多更全内容

Top