本篇文章小编给大家分享一下unity切换场景不销毁物体问题解决方法,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
在用unity进行游戏开发时我们有时需要一些物体在场景切换时不需要被销毁这时我们可以用官方给的DontDestroyOnLoad()方法,
这个方法可以让我们在场景切换时不销毁场景。但如果你又返回这个场景(创建不可销毁物体的场景)时就会发现会有两个这个物体(标记为不可销毁的物体)。
这个问题有一个较为简单的解决方法就是:
在物体的Awake()或Star()方法中加入这段代码。如果找到和自己一样的名字却不是自己的物体就将自己销毁,这样就解决了这个问题。(别的地方不知道,我的项目是可以用);
if (GameObject.Find("Players").gameObject != this.gameObject) Destroy(this.gameObject);
补充:Unity加载场景、计时器、加载时不销毁某物体
异步加载场景,SceneManager.LoadSceneAsync(SceneName);需引用 using UnityEngine.SceneManagement;命名空间,
Application.LoadLevel这个方法不再适用;
可以用协同程序做一个简单的计时器,详见代码;
DontDestroyOnLoad (this.gameObject);方法可以在加载场景时不销毁指定物体;
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; public class Base : MonoBehaviour { public virtual void ScenesLoad(string SceneName,int AfterSomeMinutesToLoad) { StartCoroutine (Calculagraph(SceneName,AfterSomeMinutesToLoad)); } IEnumerator Calculagraph(string SceneName,int AfterSomeMinutesToLoad) { yield return new WaitForSeconds (AfterSomeMinutesToLoad*60); DontDestroyOnLoad (this.gameObject); SceneManager.LoadSceneAsync(SceneName); } }
补充:Unity小技巧——延时销毁GameObject
当我们希望延迟一段时间销毁GameObject,Component,或者 asset 的时候可以利用下面的函数来实现。
不用自己再去实现延迟计时操作。
Destroy(Object obj, float t = 0.0F);
第二个参数单位为秒,物体将在t秒后被销毁。
using UnityEngine; public class ScriptExample : MonoBehaviour { void DestroyGameObject() { Destroy(gameObject); } void DestroyScriptInstance() { // 立刻从gameobject上移除该脚本 Destroy(this); } void DestroyComponent() { // 从gameobject上移除rigidbody脚本 Destroy(GetComponent()); } void DestroyObjectDelayed() { // 5秒后销毁当前gameobject Destroy(gameObject, 5); } // 当用户按下Ctr键后,将会从gameobject上移除boxcollider脚本 void Update() { if (Input.GetButton("Fire1") && GetComponent ()) { Destroy(GetComponent ()); } } }
在做编辑器扩展开发的时候,非运行时环境,只能使用 Object.DestroyImmediate()
太极熊猫2百度版 安卓版v1.7.1
下载黎明觉醒应用宝版 安卓版v1.111.1
下载暗影格斗3国际版 (Shadow Fight 3)最新版v1.40.3
下载王者战魂华为版 安卓版v3.6.1
下载放置魔法学院免广告版 v2.9.5
放置魔法学院内置Mod菜单是游戏的破解版本,在该版本中为玩家
万乘之国qq版本 安卓版v1.0.5
万乘之国qq版本是一款极具魅力的策略游戏,玩家们可以通过不同
动物餐厅国际服无限内购版 v12.9
动物餐厅国际服免广告版是游戏的破解版本,在该版本中为玩家去除
欧洲卡车司机 安卓版v3.2
欧洲卡车司机是款模拟经营游戏,这款游戏的画面还是蛮逼真的,给
疯狂大酒店 (Grand Hotel Mania)最新中文版v4.10.0.20
疯狂大酒店(Grand Hotel Mania)是一款好玩的