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. }
因篇幅问题不能全部显示,请点此查看更多更全内容