Object.DontDestroyOnLoad 加载时不销毁
static function DontDestroyOnLoad (target : Object) : void
加载新场景的时候使目标物体不被自动销毁。
当加载一个新关卡时,所有场景中所有的物体被销毁,然后新关卡中的物体被加载进来。为了保持在加载新关卡时物体不被销毁,使用DontDestroyOnLoad保持,如果物体是一个组件或游戏物体,它的整个transform层次将不会被销毁,全部保留下来。
然而我们在使用的时候要注意一下,否则会出现很多的游戏物体,比如你的角色进入一个关卡,然后进入另外一个关卡,然后回到原来的关卡,此时该关卡出现了两个角色,角色只会叠加,我们想要的只是一个角色,那么写代码的时候就要注意了,代码如下:
using UnityEngine;
using System.Collections;
public class Test: MonoBehaviour {
public GameObject prefab; // 这是个预制,直接拖拽赋值
GameObject clone; // 用来接收预制的克隆体
static bool isHaveClone = false; // 静态变量,所有脚本共用,也就是保证预制只能被克隆一次,不会出现多个角色
// Use this for initialization
void Start () {
if (!isHaveClone)
{
clone = (GameObject)GameObject.Instantiate(prefab);
isHaveClone = true;
GameObject.DontDestroyOnLoad(clone);
}
}
// Update is called once per frame
void Update () {
}
}