欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

unity 切換場(chǎng)景不銷毀物體問題的解決

 更新時(shí)間:2021年04月13日 15:13:37   作者:xmhwjzabc  
這篇文章主要介紹了unity 切換場(chǎng)景不銷毀物體問題的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

在用unity進(jìn)行游戲開發(fā)時(shí)我們有時(shí)需要一些物體在場(chǎng)景切換時(shí)不需要被銷毀這時(shí)我們可以用官方給的DontDestroyOnLoad()方法,

這個(gè)方法可以讓我們?cè)趫?chǎng)景切換時(shí)不銷毀場(chǎng)景。但如果你又返回這個(gè)場(chǎng)景(創(chuàng)建不可銷毀物體的場(chǎng)景)時(shí)就會(huì)發(fā)現(xiàn)會(huì)有兩個(gè)這個(gè)物體(標(biāo)記為不可銷毀的物體)。

這個(gè)問題有一個(gè)較為簡單的解決方法就是:

在物體的Awake()或Star()方法中加入這段代碼。如果找到和自己一樣的名字卻不是自己的物體就將自己銷毀,這樣就解決了這個(gè)問題。(別的地方不知道,我的項(xiàng)目是可以用);

if (GameObject.Find("Players").gameObject != this.gameObject)
            Destroy(this.gameObject);

補(bǔ)充:Unity加載場(chǎng)景、計(jì)時(shí)器、加載時(shí)不銷毀某物體

異步加載場(chǎng)景,SceneManager.LoadSceneAsync(SceneName);需引用 using UnityEngine.SceneManagement;命名空間,

Application.LoadLevel這個(gè)方法不再適用;

可以用協(xié)同程序做一個(gè)簡單的計(jì)時(shí)器,詳見代碼;

DontDestroyOnLoad (this.gameObject);方法可以在加載場(chǎng)景時(shí)不銷毀指定物體;

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);
   }
}

補(bǔ)充:Unity小技巧——延時(shí)銷毀GameObject

當(dāng)我們希望延遲一段時(shí)間銷毀GameObject,Component,或者 asset 的時(shí)候可以利用下面的函數(shù)來實(shí)現(xiàn)。

不用自己再去實(shí)現(xiàn)延遲計(jì)時(shí)操作。

Destroy(Object obj, float t = 0.0F);

第二個(gè)參數(shù)單位為秒,物體將在t秒后被銷毀。

using UnityEngine;
public class ScriptExample : MonoBehaviour
{
    void DestroyGameObject()
    {
        Destroy(gameObject);
    }
    void DestroyScriptInstance()
    {
        // 立刻從gameobject上移除該腳本
        Destroy(this);
    }
    void DestroyComponent()
    {
        // 從gameobject上移除rigidbody腳本
        Destroy(GetComponent<Rigidbody>());
    }
    void DestroyObjectDelayed()
    {
        // 5秒后銷毀當(dāng)前gameobject
        Destroy(gameObject, 5);
    }
    // 當(dāng)用戶按下Ctr鍵后,將會(huì)從gameobject上移除boxcollider腳本
    void Update()
    {
        if (Input.GetButton("Fire1") && GetComponent<BoxCollider>())
        {
            Destroy(GetComponent<BoxCollider>());
        }
    }
}

在做編輯器擴(kuò)展開發(fā)的時(shí)候,非運(yùn)行時(shí)環(huán)境,只能使用 Object.DestroyImmediate()

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • C#窗體通訊錄系統(tǒng)的示例代碼

    C#窗體通訊錄系統(tǒng)的示例代碼

    本文主要介紹了C#窗體通訊錄系統(tǒng)的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • C#實(shí)現(xiàn)將Word轉(zhuǎn)化分享為電子期刊

    C#實(shí)現(xiàn)將Word轉(zhuǎn)化分享為電子期刊

    曾經(jīng)由一個(gè)項(xiàng)目,要求實(shí)現(xiàn)制作電子期刊定期發(fā)送給企業(yè)進(jìn)行閱讀,由編輯人員使用 Microsoft Word先生成PDF文件,然后將生成的PDF文件轉(zhuǎn)化為JPEG文件,最后將JPEG文件生成電子書模式,本文給大家介紹了C#實(shí)現(xiàn)將Word轉(zhuǎn)化分享為電子期刊,需要的朋友可以參考下
    2023-12-12
  • C#實(shí)現(xiàn)獲取文件夾大小的方法

    C#實(shí)現(xiàn)獲取文件夾大小的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)獲取文件夾大小的方法,實(shí)例分析了兩種獲取方法,涉及C#針對(duì)文件夾操作的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • C# Stream 和 byte[] 之間的轉(zhuǎn)換

    C# Stream 和 byte[] 之間的轉(zhuǎn)換

    Stream 和 byte[] 之間的轉(zhuǎn)換
    2008-03-03
  • VS里使用C#制作窗口應(yīng)用的項(xiàng)目實(shí)踐

    VS里使用C#制作窗口應(yīng)用的項(xiàng)目實(shí)踐

    C#窗體的頻率使用特別高,本文主要介紹了VS里使用C#制作窗口應(yīng)用的項(xiàng)目實(shí)踐,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • 如何從dump文件中提取出C#源代碼

    如何從dump文件中提取出C#源代碼

    這篇文章主要介紹了如何從dump文件中提取出C#源代碼,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-03-03
  • C#中is與as的區(qū)別分析

    C#中is與as的區(qū)別分析

    這篇文章主要介紹了C#中is與as的區(qū)別,較為詳細(xì)的分析了is與as的原理與特性及用法區(qū)別,具有很好的學(xué)習(xí)借鑒價(jià)值,需要的朋友可以參考下
    2014-10-10
  • WinForm實(shí)現(xiàn)程序一段時(shí)間不運(yùn)行自動(dòng)關(guān)閉的方法

    WinForm實(shí)現(xiàn)程序一段時(shí)間不運(yùn)行自動(dòng)關(guān)閉的方法

    這篇文章主要介紹了WinForm實(shí)現(xiàn)程序一段時(shí)間不運(yùn)行自動(dòng)關(guān)閉的方法,涉及WinForm計(jì)時(shí)器及進(jìn)程操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-09-09
  • WCF實(shí)現(xiàn)雙向通信

    WCF實(shí)現(xiàn)雙向通信

    這篇文章介紹了WCF實(shí)現(xiàn)雙向通信的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • C#技巧之快速刪除bin和obj文件夾的方法

    C#技巧之快速刪除bin和obj文件夾的方法

    C#程序總會(huì)生成bin和obj文件夾,為了減小源碼的大小,就有必要將這兩個(gè)文件夾刪除,于是想到用批處理文件來刪除
    2013-07-07

最新評(píng)論