Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从统一的某个点开始场景?_C#_Unity3d_Unity5 - Fatal编程技术网

C# 从统一的某个点开始场景?

C# 从统一的某个点开始场景?,c#,unity3d,unity5,C#,Unity3d,Unity5,我在游戏开发方面是个新手,我将Unity与C#结合使用,模型由Blender制造 我想知道,是否有一种方法可以从某个角度“播放”一个场景。例如,如果我有一个游戏(为了简单起见,现在只有一个场景)并且想测试游戏的某个部分(例如,我想测试这个场景中的第五个任务中的第三个,假设你只有成功完成第一个任务才能访问第二个任务,依此类推) 但我真的不想在我的场景中玩一段时间,只是为了达到我最初想要测试的点 我怎样才能做到这一点?如果以某种简单的方式是不可能的,那么有什么解决方法吗 谢谢 不确定我是否理解正确,

我在游戏开发方面是个新手,我将Unity与C#结合使用,模型由Blender制造

我想知道,是否有一种方法可以从某个角度“播放”一个场景。例如,如果我有一个游戏(为了简单起见,现在只有一个场景)并且想测试游戏的某个部分(例如,我想测试这个场景中的第五个任务中的第三个,假设你只有成功完成第一个任务才能访问第二个任务,依此类推)

但我真的不想在我的场景中玩一段时间,只是为了达到我最初想要测试的点

我怎样才能做到这一点?如果以某种简单的方式是不可能的,那么有什么解决方法吗


谢谢

不确定我是否理解正确,但如果您想在项目中从一个场景跳到另一个场景,则始终可以使用sceneManager


希望有帮助。

在您的类中,创建一个变量,该变量保存启动任务的值。e、 g.3

然后,出于测试目的,在Start()方法中,您可以检查该变量的值,并编写一些代码来更改场景中的元素,以表示相应的任务(本例中为3),例如角色的位置、下一个目标或特定于任务的任何内容

可以将此变量公开,以便可以从unity更改其值,而不是每次打开脚本


我不确定这对你的游戏是否可行,但如果你的每项任务都有很多变化,那么最好为每项任务设置不同的场景。

以下是我如何完成任务的示例代码。。希望这对你有帮助。。 创建一个名为GoScene1的C#脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class GoScene1 : MonoBehaviour {
    public void Scene1Change() {
        Application.LoadLevel("GoScene1");
    }
}
然后创建一个名为GoScene2的C#脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class GoScene2 : MonoBehaviour {
    public void Scene2Change() {
        Application.LoadLevel("GoScene2");
    }
}
这是屏幕截图。。。


也许你应该创建一些调试脚本,允许你覆盖当前活动任务(并人工检查必要任务的完成情况)。不清楚您的代码结构/依赖项是什么样子的,所以我尽可能具体。谢谢您的回答!因此,没有“统一的方式”来实现这一点?对于你所寻找的东西,没有一刀切的解决方案——因为每个游戏的结构都不同,每个游戏都需要自己的解决方案来人为地推进进程。我唯一的建议是,将调试脚本的变量公开,并将它们附加到场景中的一个空对象上——这将节省您在需要快速更改值以尝试不同任务时的时间。为什么您不能在Unity编辑器中打开要测试的场景并播放该场景?@Lews Therin yes I我能做到,但这不是我的观点。如果我想测试游戏中出现在这个场景“结尾”的某个东西(如果你把一个场景当作一个关卡),我想避免玩整个场景(我指的是一个场景)。我想你误解了我,我想过跳过游戏(在同一个场景中(!),因此,如果我想在这个场景结束时测试一些东西(如果场景是游戏中的一个关卡),我不必玩整个场景。这完全取决于你的游戏格式,以及你的游戏中哪些变量或属性发生了变化。例如,如果我们谈论的是分数,那么我会像其他人一样建议-将受进度影响的变量公开,这将允许您直接从编辑器中更改值。例如,如果你想测试一个玩家是否走过某个地方,我会设置一个空对象,将碰撞器设置为isTrigger。您也可以直接从编辑器切换iStriger。希望这能给你们一些帮助和想法。我真的觉得你们不太明白我想做什么。我想从某个点“播放”单个场景(不在场景之间切换、加载另一个场景等)