最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

unity 切換場景不銷毀物體問題的解決

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

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

這個方法可以讓我們在場景切換時不銷毀場景。但如果你又返回這個場景(創(chuàng)建不可銷毀物體的場景)時就會發(fā)現(xiàn)會有兩個這個物體(標記為不可銷毀的物體)。

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

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

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

補充:Unity加載場景、計時器、加載時不銷毀某物體

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

Application.LoadLevel這個方法不再適用;

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

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 的時候可以利用下面的函數(shù)來實現(xiàn)。

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

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

第二個參數(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秒后銷毀當前gameobject
        Destroy(gameObject, 5);
    }
    // 當用戶按下Ctr鍵后,將會從gameobject上移除boxcollider腳本
    void Update()
    {
        if (Input.GetButton("Fire1") && GetComponent<BoxCollider>())
        {
            Destroy(GetComponent<BoxCollider>());
        }
    }
}

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

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關文章

  • c#中object、var和dynamic的區(qū)別小結

    c#中object、var和dynamic的區(qū)別小結

    這篇文章主要給大家介紹了關于c#中object、var和dynamic的區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • C#中倒序輸出字符串的方法示例

    C#中倒序輸出字符串的方法示例

    這篇文章主要給大家介紹了C#中倒序輸出字符串的方法示例,本文中的字符串倒序指的是將“嗎? 好 近 最”輸出“最 近 好 嗎?”,文中給出了兩種方法,需要的朋友可以參考借鑒,下面來跟著小編一起學習學習吧。
    2017-01-01
  • C#使用checkedListBox1控件鏈接數(shù)據(jù)庫的方法示例

    C#使用checkedListBox1控件鏈接數(shù)據(jù)庫的方法示例

    這篇文章主要介紹了C#使用checkedListBox1控件鏈接數(shù)據(jù)庫的方法,結合具體實例形式分析了數(shù)據(jù)庫的創(chuàng)建及checkedListBox1控件連接數(shù)據(jù)庫的相關操作技巧,需要的朋友可以參考下
    2017-06-06
  • 輕松學習C#的異常處理

    輕松學習C#的異常處理

    輕松學習C#的異常處理,對C#的異常處理感興趣的朋友可以參考本篇文章,幫助大家更靈活的運用C#的異常處理
    2015-11-11
  • C# File類中的文件讀寫方法詳解

    C# File類中的文件讀寫方法詳解

    C#提供了多種操作文件的方案,尤其是File類中封裝的靜態(tài)方法,本文將通過一些簡單的示例為大家講講C#讀寫文件的方法,需要的可以參考一下
    2023-05-05
  • c#中var關鍵字用法淺談

    c#中var關鍵字用法淺談

    這篇文章介紹了c#中var關鍵字用法,有需要的朋友可以參考一下
    2013-10-10
  • C#視頻轉換類分享

    C#視頻轉換類分享

    這篇文章主要為大家分享了C#視頻轉換類,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • C# 中使用正則表達式匹配字符的含義

    C# 中使用正則表達式匹配字符的含義

    正則表達式的作用用來描述字符串的特征。本文重點給大家介紹C# 中使用正則表達式匹配字符的含義,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-10-10
  • WPF實現(xiàn)XAML轉圖片的示例詳解

    WPF實現(xiàn)XAML轉圖片的示例詳解

    這篇文章主要為大家詳細介紹了如何利用WPF實現(xiàn)XAML轉圖片,文中的示例代碼講解詳細,對我們學習或工作有一定幫助,感興趣的小伙伴可以了解一下
    2022-11-11
  • C#實現(xiàn)格式化文本并導入到Excel

    C#實現(xiàn)格式化文本并導入到Excel

    這篇文章主要為大家詳細介紹了如何使用C#實現(xiàn)格式化文本并導入到Excel,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-05-05

最新評論

绍兴市| 葫芦岛市| 平塘县| 雷州市| 绥棱县| 平潭县| 雅江县| 拜城县| 永善县| 金湖县| 如皋市| 右玉县| 凌海市| 肃宁县| 桐柏县| 陈巴尔虎旗| 石景山区| 延庆县| 西充县| 隆回县| 东海县| 昌都县| 佛山市| 海林市| 双柏县| 云阳县| 龙口市| 库尔勒市| 顺义区| 新乡市| 青龙| 余庆县| 蕉岭县| 上虞市| 凤庆县| 绥宁县| 绥德县| 益阳市| 海淀区| 三门县| 武定县|