Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Unity游戏管理器。脚本只工作一次

Unity游戏管理器。脚本只工作一次
EN

Stack Overflow用户
提问于 2016-03-09 11:55:33
回答 2查看 68.8K关注 0票数 60

我在做一个简单的游戏管理器。我有一个脚本,这将从游戏中的所有场景可访问。在加载新场景后,我需要检查它的变量的值。但我的代码在开始模拟后只运行一次,而所有场景中都存在使用此脚本的对象。怎么啦?为什么它在加载新场景后不起作用?

EN

回答 2

Stack Overflow用户

发布于 2018-08-29 13:57:20

这是如何开始你喜欢的任何场景,并确保重新整合你的_preload场景,每次你点击播放按钮在unity编辑器中。从Unity 2017 RuntimeInitializeOnLoadMethod开始有新的属性可用,关于它的更多信息here

基本上,您有一个简单的plane c#类和一个带有RuntimeInitializeOnLoadMethod的静态方法。现在,每次你开始游戏时,这个方法都会为你加载预加载的场景。

代码语言:javascript
运行
AI代码解释
复制
using UnityEngine;
using UnityEngine.SceneManagement;

public class LoadingSceneIntegration {

#if UNITY_EDITOR 
    public static int otherScene = -2;

    [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
    static void InitLoadingScene()
    {
        Debug.Log("InitLoadingScene()");
        int sceneIndex = SceneManager.GetActiveScene().buildIndex;
        if (sceneIndex == 0) return;

        Debug.Log("Loading _preload scene");
        otherScene = sceneIndex;
        //make sure your _preload scene is the first in scene build list
        SceneManager.LoadScene(0); 
    }
#endif
}

然后,在_preload场景中有另一个脚本,该脚本将加载回所需的场景(从开始的位置):

代码语言:javascript
运行
AI代码解释
复制
...
#if UNITY_EDITOR 
    private void Awake()
    {

        if (LoadingSceneIntegration.otherScene > 0)
        {
            Debug.Log("Returning again to the scene: " + LoadingSceneIntegration.otherScene);
            SceneManager.LoadScene(LoadingSceneIntegration.otherScene);
        }
    }
#endif
...
票数 10
EN

Stack Overflow用户

发布于 2020-05-14 04:38:19

从2019年5月起不使用_preload的替代解决方案

https://low-scope.com/unity-tips-1-dont-use-your-first-scene-for-global-script-initialization/

我从上面的博客中改写成了下面的操作指南:

为所有场景加载静态资源预置

Project > Assets中,创建一个名为Resources的文件夹。

从一个空的GameObject创建一个Main预置并放置在Resources文件夹中。

Assets > Scripts中或任何位置创建一个Main.cs C#脚本。

代码语言:javascript
运行
AI代码解释
复制
using UnityEngine;

public class Main : MonoBehaviour
{
    // Runs before a scene gets loaded
    [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
    public static void LoadMain()
    {
        GameObject main = GameObject.Instantiate(Resources.Load("Main")) as GameObject;
        GameObject.DontDestroyOnLoad(main);
    }
    // You can choose to add any "Service" component to the Main prefab.
    // Examples are: Input, Saving, Sound, Config, Asset Bundles, Advertisements
}

Main.cs添加到Resources文件夹中的Main预置中。

请注意它是如何使用RuntimeInitializeOnLoadMethod以及Resources.Load("Main")DontDestroyOnLoad的。

将需要跨场景全局的任何其他脚本附加到此预置。

请注意,如果将其他场景游戏对象链接到这些脚本,则可能需要在这些脚本的Start函数中使用类似以下内容:

代码语言:javascript
运行
AI代码解释
复制
if(score == null)
    score = FindObjectOfType<Score>();
if(playerDamage == null)
    playerDamage = GameObject.Find("Player").GetComponent<HitDamage>();

或者更好的是,使用资产管理系统,如Addressable AssetsAsset Bundles

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35890932

复制
相关文章
超越stacking, 使用optuna对多模型进行加权融合
有些方案是使用线性回归或者逻辑回归模型进行学习,这种方案一般叫做stacking ensemble,但是这种方案一般是对可微的Loss进行优化的,无法直接对auc,acc等不可微的评价指标进行优化。
lyhue1991
2023/02/23
1.1K0
超越stacking, 使用optuna对多模型进行加权融合
使用onnx对pytorch模型进行部署
1.onnx runtime安装# 激活虚拟环境conda activate env_name # env_name换成环境名称# 安装onnxpip install onnx # 安装onnx runtimepip install onnxruntime # 使用CPU进行推理# pip install onnxruntime-gpu # 使用GPU进行推理复制代码2.导出模型import torch.onnx # 转换的onnx格式的名称,文件后缀需为.onnxonnx_file_name = "xx
阿珍
2022/09/27
8420
「PowerBI」使用TabularEditor进行PowerBIDeskTop模型开发最佳实践
虽然大体上都是同一个引擎,但最终的定位的原因PowerBIDeskTop数据模型只是单机版的运行,其运行的方式未能如Sqlserver的完整,所以使用TabularEditor读取到的元数据也有所不同。
Excel催化剂
2021/08/19
9010
「PowerBI」使用TabularEditor进行PowerBIDeskTop模型开发最佳实践
windows上使用TNN对模型进行性能分析
本文主要介绍如何使用TNN来对模型性能进行分析,并打印网络结构的每一个op耗时。主要步骤TNN的官方文档已经有介绍,但是官方使用平台都是基于Linux系统进行一些编译操作。
languageX
2021/11/01
1.9K0
ES(ElasticSearch)数据建模最佳实践之「一对多对多关系建模」
https://www.elastic.co/guide/en/elasticsearch/reference/6.3/joining-queries.html
IT技术小咖
2023/01/30
2.7K0
ES(ElasticSearch)数据建模最佳实践之「一对多对多关系建模」
windows环境下使用virtualenv对python进行多版本隔离
最近在用python做一个文本的情感分析的项目,用到tensorflow,需要用python3的版本,之前因为《机器学习实战》那本书的缘故,用的是python2.7.所以目前的情况是要两个版本共存,之前看到身边有人为了解决这个问题,居然装了两款软件,pycharm用来做python2.7的开发,另一款用来做python3.6的开发,估计一定是不知道python的虚拟环境工具virtualenv.本文就来讲述一下这个工具是怎么用的,同时也讲一下,如何在pycharm中使用virtualenv.
小小科
2018/09/28
1.9K0
windows环境下使用virtualenv对python进行多版本隔离
最近在用python做一个文本的情感分析的项目,用到tensorflow,需要用python3的版本,之前因为《机器学习实战》那本书的缘故,用的是python2.7.所以目前的情况是要两个版本共存,之前看到身边有人为了解决这个问题,居然装了两款软件,pycharm用来做python2.7的开发,另一款用来做python3.6的开发,估计一定是不知道python的虚拟环境工具virtualenv.本文就来讲述一下这个工具是怎么用的,同时也讲一下,如何在pycharm中使用virtualenv. 1. v
小小科
2018/05/03
1.4K0
windows环境下使用virtualenv对python进行多版本隔离
如何使用多类型数据预训练多模态模型?
在训练过程中使用更多数据一直是深度学习提效的重要方法之一,在多模态场景也不例外。比如经典的CLIP模型,使用了大规模的网络图文匹配数据进行预训练,在图文匹配等任务上取得非常好的效果。
圆圆的算法笔记
2022/09/22
2.2K0
如何使用多类型数据预训练多模态模型?
linux 使用jq对json数据进行操作
背景: 通过jmeter生成的resultReport报告,在linux上需要获取到报告结果数据。
小白will
2019/01/28
3.9K0
理解回归分析--机器学习与R语言实战笔记(第四章)
回归是一种有监督的学习方式,用于建模分析一个独立变量(响应变量)和一个或多个非独立变量(预测变量)之间的关联。
用户1075469
2021/12/18
9930
理解回归分析--机器学习与R语言实战笔记(第四章)
数据库(三)--多对多,一对多,一对一
那么,我们要是想查询python是由那几家出版社出版的(虽然一般只是一家) ,我们可以这样做:
西西嘛呦
2020/08/26
1.4K0
RESTful API 最佳实践(阮一峰)
它的大原则容易把握,但是细节不容易做对。本文总结 RESTful 的设计细节,介绍如何设计出易于理解和使用的 API。
java思维导图
2018/12/13
2.8K0
RESTful API 最佳实践(阮一峰)
使用Trimmomatic对NGS数据进行质量过滤
Trimmomatic 软件可以对NGS测序数据进行质量过滤,其去除adapter的功能只是针对illumina的序列,从reads的3’端识别adapter序列并去除,相比cutadapt,少了几分灵活性。但是在过滤低质量序列时,采用了滑动窗口的算法,给定窗口长度和步长,如果该窗口内所有碱基的平均质量值低于阈值,则将该窗口及其以后的碱基全部去除。对于数据量很多的reads, 滑动窗口算法比cutadapt的算法运行速度更快。官网如下
生信修炼手册
2020/05/08
3.3K0
使用Trimmomatic对NGS数据进行质量过滤
使用Python对Instagram进行数据分析
Instagram是最大的照片分享社交媒体平台,每月有5亿活跃用户,每天会上传9500万张照片和视频到Instagram上。它有大量的数据和巨大的潜力。这篇文章将教会你如何使用Instagram作为数据的来源,以及如何将它作为你的项目的开发者。 关于API和工具 Instagram有一个官方的API,但它已经过时了,目前在你能用它做的事情非常有限。因此,在这篇文章中,我将使用LevPasha的非官方Instagram API,它支持所有的主要功能,如follow,上传照片和视频等。它是用Python编写的。
AiTechYun
2018/03/02
2.9K1
使用Python对Instagram进行数据分析
RESTful API 最佳实践(阮一峰)
它的大原则容易把握,但是细节不容易做对。本文总结 RESTful 的设计细节,介绍如何设计出易于理解和使用的 API。
用户1257393
2018/12/19
1.7K0
RESTful API 最佳实践(阮一峰)
MATLAB对Googlenet模型进行迁移学习
使用训练好的模型进行图像分类 我这里训练的模型是对细胞显微图像进行分类,包括BYST,GRAN,HYAL,MUCS,RBC,WBC,WBCC七种细胞。
全栈程序员站长
2022/09/21
9930
MATLAB对Googlenet模型进行迁移学习
使用fastp对NGS数据进行质量过滤
fastp是最近新出的一款NGS数据质量过滤工具,相比传统的QC工具,有两个主要特点,第一个就是运行速度快,第二个就是提供了质控前后数据详细统计结果。github地址如下
生信修炼手册
2020/05/08
5.7K0
小程序使用WXS对页面数据进行处理
WXS(WeiXin Script)是小程序的一套脚本语言,WXS 就是在 page-frame 中运行的 JS,可以对 view 数据做一些变换。在wxml页面中,只能在插值{{ }}中写简单的js表达式,而不能调用方法。
青年码农
2020/11/23
1.7K0
小程序使用WXS对页面数据进行处理
使用Python对Excel数据进行排序,更高效!
表排序是Excel中的一项常见任务。我们对表格进行排序,以帮助更容易地查看或使用数据。然而,当你的数据很大或包含大量计算时,Excel中的排序可能会非常慢。因此,这里将向你展示如何使用Python对Excel数据表进行排序,并保证速度和效率!
fanjy
2022/11/16
5.3K0
使用Python对Excel数据进行排序,更高效!
点击加载更多

相似问题

Lmfit分峰拟合

11

使用LMFIT将多峰函数拟合到DataSet

11

用lmfit库拟合python中的多峰曲线

12

使用Lmfit对Python中的数据进行高斯拟合

11

无法使用lmfit进行拟合

119
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档