Weak references to scenes work in the same way as weak references to objects. For more information, refer to Weakly reference an object.
Unity uses an UntypedWeakReferenceId to weakly reference scenes so, to weakly reference a scene from a C# script, you can use the same workflow as described in Weakly reference an object from a C# script.
Weakly reference a scene from the Inspector
The RuntimeContentManager has a specific set of APIs to manage weakly-referenced scenes at runtime. This means that theWeakObjectReference wrapper doesn't work for scenes. The scene equivalent to this wrapper is WeakObjectSceneReference which provides the same runtime and editor workflow benefits as WeakObjectReference, but for scenes.
To weakly reference a scene from the Inspector, substitute WeakObjectSceneReference for WeakObjectReference in the Weakly reference an object from the Inspector workflow. The following code sample shows how to do this.
using Unity.Entities;
using Unity.Entities.Content;
using UnityEngine;
publicclassSceneRefSample : MonoBehaviour
{
public WeakObjectSceneReference scene;
classSceneRefSampleBaker : Baker<SceneRefSample>
{
publicoverridevoidBake(SceneRefSample authoring)
{
var entity = GetEntity(TransformUsageFlags.Dynamic);
AddComponent(entity, new SceneComponentData { scene = authoring.scene });
}
}
}
publicstruct SceneComponentData : IComponentData
{
public WeakObjectSceneReference scene;
}
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.