Unity切换场景不销毁物体

脚本名称

IOSManager.cs
使用方法:创建一个空物体,挂上此脚本,将不销毁的物体拖入数组。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

/// <summary>
/// 加载场景时不删除的物体
/// </summary>
public class DontDestroyOnLoad : MonoBehaviour
{
//加载场景时不销毁的物体
public GameObject[] DontDestroyObjects;

//是否已经存在DontDestroy的物体
private static bool isExist;

//-------------------------------------------------------------------------------

void Awake()
{
if (!isExist)
{
for (int i = 0; i < DontDestroyObjects.Length; i++)
{
//如果第一次加载,将这些物体设为DontDestroy
DontDestroyOnLoad(DontDestroyObjects[i]);
}

isExist = true;
}
else
{
for (int i = 0; i < DontDestroyObjects.Length; i++)
{
//如果已经存在,则删除重复的物体
Destroy(DontDestroyObjects[i]);
}
}
}

//-------------------------------------------------------------------------------
}

解决问题不易,转载请注明”gamemode1.com”