Legacy Documentation: Version 4.6(go to latest)
Language: English
  • C#
  • JS
  • Boo

Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

Object.DontDestroyOnLoad

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Sumbission failed

For some reason your suggested change could not be submitted. Please try again in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

public static function DontDestroyOnLoad(target: Object): void;
public static void DontDestroyOnLoad(Object target);
public static def DontDestroyOnLoad(target as Object) as void

Description

Makes the object target not be destroyed automatically when loading a new scene.

When loading a new level all objects in the scene are destroyed, then the objects in the new level are loaded. In order to preserve an object during level loading call DontDestroyOnLoad on it. If the object is a component or game object then its entire transform hierarchy will not be destroyed either.

	// Make this game object and all its transform children
	// survive when loading a new scene.
	function Awake () {
		DontDestroyOnLoad (transform.gameObject);
	}
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    void Awake() {
        DontDestroyOnLoad(transform.gameObject);
    }
}
import UnityEngine
import System.Collections

public class ExampleClass(MonoBehaviour):

	def Awake() as void:
		DontDestroyOnLoad(transform.gameObject)