使用参数变量 Unity 加载场景

2023-12-21

在我的游戏中,有一个地图视图,其中包含 50x50 的图块网格。当你点击图块时,你会被发送到该图块视图并攻击事物等。就代码而言,这些“图块”之间的唯一区别是图块 ID,即。网格上的哪个数字。该数字将在 init 时传递给服务器来处理其余部分。

显然,这是图块中的唯一区别,创建场景“1”、场景“2”...场景“2500”并调用 SceneManager.LoadScene 切换到特定图块视图将是错误的。

我可以使用 DontDestroyOnLoad();当单击图块以在场景切换上保留图块 ID 时,但是 1)它只接受游戏对象而不仅仅是 int 变量 2)我不需要/不想为图块视图中的 init 以外的任何内容保留该变量。因此,虽然它可以发挥作用,但似乎有点矫枉过正。

是否有更好的做法,本质上只是将参数传递给场景加载?


您可以创建一个静态类来为您保存信息。该类不会附加到任何游戏对象,并且在更改场景时不会被销毁。这是static这意味着只能有一个;你can't write StaticClassName scn = new StaticClassName()创建新的静态类。您可以直接访问它们StaticClassName.SomeStaticMethod()例如,可以访问从任何地方。请参阅此示例,了解如何在变量中存储值、更改场景,然后在该场景中使用它(请注意添加的using UnityEngine.SceneManagement;):

附加到场景“测试”中游戏对象的普通 Unity 脚本:

using UnityEngine;
using UnityEngine.SceneManagement;

public class TestingScript : MonoBehaviour 
{
    void Start()
    {
        StaticClass.CrossSceneInformation = "Hello Scene2!";
        SceneManager.LoadScene("Test2");
    }
}

一个新的静态类(不是从 monobehaviour 继承)保存信息:

public static class StaticClass 
{
    public static string CrossSceneInformation { get; set; }
}

附加到场景“Test2”中的游戏对象的脚本:

using UnityEngine;

public class TestingScript2: MonoBehaviour 
{
    void Start () 
    {
        Debug.Log(StaticClass.CrossSceneInformation);
    }
}

您不需要将整个类设为静态(如果您出于某种原因需要创建它的更多实例)。如果您要删除static从类(而不是变量)中,您仍然可以通过以下方式访问静态变量StaticClass.CrossSceneInformation但你也可以这样做StaticClass sc = new StaticClass();。有了这个sc您可以使用类的非静态成员,但不能使用static CrossSceneInformation因为只能有一个(因为它是静态的)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用参数变量 Unity 加载场景 的相关文章

  • 在下载的同时从 UnityWebRequest 获取数据?

    我有这段代码可以进行 REST 调用 public IEnumerator GetCooroutine string route string finalURL URL route UnityWebRequest www UnityWebR
  • 修改 SIR 模型以包含随机性

    我正在尝试通过将真实流行曲线与随机 SIR 模型的模拟进行比较来建立一种估计传染病参数的方法 为了构建随机 SIR 模型 我使用 deSolve 包 而不是使用固定参数值 我想从以原始参数值为中心的泊松分布中绘制每个时间点方程中使用的参数值
  • TSQL动态确定SP/Function的参数列表

    我想将通用日志记录片段写入存储过程集合中 我写这篇文章是为了对我们的前端用户体验进行定量测量 因为我知道前端软件使用了哪些 SP 以及它们的使用方式 我想在开始性能调优之前使用它来收集基线 然后显示调优的结果 我可以动态地从 PROCID
  • Python 检查 __init__ 参数

    在过去的几个小时里我一直在试图解决这个问题 但我即将放弃 如何确保在 python 中只有匹配的特定条件才会创建对象 例如 假设我想创建一个对象 Hand 并且仅当初始化程序中有足够的 Fingers 时才初始化 Hand 请以此作为类比
  • 使用 lsqcurvefit 进行拟合

    我想将一些数据拟合到洛伦兹函数 但当我使用不同数量级的参数时 我发现拟合存在问题 这是我的洛伦兹函数 function value lorentz x x0 gamma amp value amp gamma 2 x x0 2 gamma
  • Unity3D 播放器在石头上行走

    大家好 我的玩家正在石头上行走并穿过石头 名为 Champ 的玩家有一个 Box Collider 而 Stone 有一个 Mesh Collider 玩家也有刚体 我尝试了我发现的一切 但没有任何帮助我解决我的问题 MovePlayer
  • JavaScript 调用函数

    我最近一直在测试一些代码 试图更好地理解 javascript 然后我遇到了call 我无法很好地理解的功能 我有以下代码 function hi console log hi var bye function param param2 c
  • Unity-3d-5 将 16:9 的图像缩放至其他分辨率

    所以我创建了一个蛇游戏 其边框是用 2d 精灵创建的 我将游戏窗口设置为 16 9 在此分辨率下图像看起来不错 然而 扩展到其他任何东西开始让游戏看起来很奇怪 我想要调整游戏窗口的大小 如何让我的精灵根据当前分辨率拉伸和收缩 我已经尝试创建
  • 根据给定的索引集获取参数包的子集

    好吧 这确实是一件困难的事情 我希望能够通过在给定的一组有效索引处选择参数类型来获取参数包的子集 然后使用该参数包作为函数的参数列表 IE template
  • SSIS ODBC SQL 参数

    我在 odbc 源数据流任务中有一个 SQL 命令需要采用参数 但不存在添加参数的选项 我尝试将数据库添加为与 ODBC 提供程序的 ADO NET 连接 但也没有可用的参数 还尝试将其作为 OLEDB 连接 但没有可用于 ODBC 的提供
  • 如何执行带有参数的命令?

    如何在 Java 中执行带有参数的命令 我试过了 Process p Runtime getRuntime exec new String php var www script php m 2 这是行不通的 String options n
  • unity 3d 根据加速度计旋转游戏对象

    我想做一款类似 神庙逃亡 的游戏 我需要根据设备倾斜的程度来旋转播放器的平台 我正在尝试加速计 但无法使游戏对象倾斜 请指导我 谢谢 这是我的代码 我之前在注释中使用了代码 现在我尝试使用注释中的代码 public class tilt M
  • Unity Transform.LookAt 仅在一个轴上

    我一直在开发一款游戏 进展非常顺利 从这里得到了一些帮助 我再次需要它 所以我正在制作一个 2D 自上而下的射击游戏 我需要我的敌人看着玩家 显然敌人会在所有轴上旋转 因此是无敌的 或者看起来很奇怪 那么 如何让它只在Z轴上旋转呢 另外 如
  • UV 展开运行时优化

    我正在尝试在运行时创建 UV 我使用 BOX 类型 UV 类似于 3ds max 中的 BOX UVW 并基于面方向进行计算 我知道将其创建为运行时不是一个好的选择 但我别无选择 它是在计算后保存的 所以我做了一次 但我花了 40 秒处理
  • Unity - 在生成时获取随机颜色

    我有一个小问题 我想在我的场景中生成四边形 它们都应该有红色或绿色作为材质 但 Random Range 函数只能是 int 我该如何解决它 void SpawningSquadsRnd rndColor 0 Color red rndCo
  • 无法添加脚本,因为它是编辑器脚本错误

    如何在 Unity 中解决此问题 无法添加脚本 因为它是编辑器脚本 我想将此脚本从后处理中放入 Unity 但由于这个问题我不能 Unity 有特殊的文件夹名称 其中之一是 编辑 Editor 文件夹用于放置在编辑器中执行的编辑器脚本 它不
  • 无法使用 Unity 函数在 Visual Studio Code 中获得完整的 Intellisense

    好吧 我知道这个问题已经被问过并回答过很多次了 但我花了大约 3 天的时间试图解决这个问题 但到目前为止我所做的一切都没有奏效 我基本上在 Visual Studio Code 中有部分智能感知 也就是说 它似乎只识别 Unity 类和变量
  • 使用 Unity 在 C# 中发送 http 请求

    如何使用 Unity 在 C 中发送 HTTP GET 和 POST 请求 我想要的是 在post请求中发送json数据 我使用Unity序列化器 所以不需要 新的 我只想在发布数据中传递一个字符串并且能够 将 ContentType 设置
  • Android Root 执行 su 带参数

    我在使用参数执行 su 时遇到问题 包含空格 我的 Command java 看起来像这样 public class Command Process process public String executeCommand String c
  • 我应该使用什么函数签名来返回对可能不存在的对象的引用?

    我正在用 C 编写一个简单的容器类 类似于存储由键索引的对象的映射 我想提供一个访问器函数 例如 V getValue const K key 我在哪里返回参考到值 但我也想处理键 值不存在的情况 并能够向用户返回一些状态 可能有一些原因导

随机推荐