Unity 物体跨场景--DontDestroyOnLoad的使用

本文介绍了Unity中如何使用DontDestroyOnLoad保持物体在场景切换时不被销毁,以实现音效模块或联网模块的持久存在。文章详细讲解了DontDestroyOnLoad的基本用法,并针对场景重复进入导致物体数量增加的问题,提供了三种解决方案:确保在初始场景调用、检查场景中物体存在性以及静态初始化脚本。通过这些方法,可以有效管理跨场景的物体实例。
摘要由CSDN通过智能技术生成

DontDestroyOnLoad的使用

DontDestroyOnLoad(Gameobject) 它的作用就是让某物体创建之后不再随场景切换而销毁.例如音效模块\联网模块等都需要.

1.最简单的使用:

 void Start()
 {
 DontDestroyOnLoad(GameObject XXX);
}

2.直接这样使用的话会出现一个坑:当跳转到其他的场景后,每次跳回该场景的时候都会再增加一个该物体.
解决方案:
a.把DontDestroyOnLoad的调用写到最初始的场景,并且保证相应的场景中不存在再次进入的可能性
b.在每次调用DontDestroyOnLoad的时候,都去判断场景中是否有对应的物体,如果没有再去创建


using UnityEngine;
using System.Collections;

public class Test: MonoBehaviour {

    public GameObject prefab;          // 这是个预制,直接拖拽赋值
    GameObject clone;                  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值