2017-04-26 18 views
0

我在游戏开发方面相当新颖,我将Unity与C#配合使用,并在Blender中制作模型。从统一的某个点开始场景?

我想知道,如果有一种方法可以“玩”某个场景。例如,如果我有一个游戏(现在为了简单起见,单个场景)并且想要测试游戏的某个部分(例如,我想测试此场景中的第5个任务中的第3个,假设您只能访问第2个任务如果你成功完成了第一个,等等)。

但我真的不想通过我的场景玩一会儿,只是为了达到我原本想测试的点。

我该如何做到这一点?如果这不可能以某种简单的方式进行,那么是否有某种解决方法?

谢谢!

+3

也许你应该创建一些用于调试的脚本,它允许你覆盖当前活动的任务(并且人为地检查完成必要的任务)。目前还不清楚你的代码结构/依赖关系是什么样子的,所以我尽可能具体。 – Serlite

+0

谢谢你的回答!所以没有“统一途径”来实现这一目标? – Sebastian

+0

没有适合您需求的解决方案 - 由于每款游戏的结构都不尽相同,每个游戏都需要自己的解决方案来人为推进游戏进度。我可能会建议的唯一一个与Unity相关的事情是将调试脚本的变量公开并将它们附加到场景中的空对象 - 这将为您节省时间,以便在需要快速更改值以尝试不同的任务时使用。 – Serlite

回答

1

不知道我是否理解正确,但如果你想从场景跳到场景,在你的项目中,你总是可以使用sceneManager。

https://docs.unity3d.com/ScriptReference/SceneManagement.SceneManager.LoadScene.html

希望有所帮助。

+0

我觉得你误会了我,我曾经想过跳过游戏(在同一个场景(!)内),所以我不必在整个场景中播放。想要在该场景的末尾测试某些东西(如果场景是例如游戏中的单个等级)。 – Sebastian

+0

这一切都取决于你的游戏格式是什么,你的游戏的变量或属性有哪些变化。例如,如果我们谈论的是分数问题,那么我会和其他人一样提出建议 - 让受到进展影响的变量公开,并允许您直接从编辑器中更改值。如果你想测试一个玩家是否已经走过某些东西,我会设置一个空对象,并设置一个作为isTrigger的对撞机。您也可以直接从编辑器切换isTrigger。希望能够帮助并给你一些想法。 – Mondox

0

在你的课堂上,创建一个变量来保存开始任务的值。例如3.

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

您可以将此变量设置为公开状态,以便您可以将其值从统一更改为每次都不打开脚本。

我不确定它是否适合您的游戏,但是如果您对每个任务都有很多变化,最好针对其中的每一个都有不同的场景。

0

这里是我是如何做到的示例代码..希望这会帮助你.. 创建一个名为GoScene1

一个C#脚本
using System.Collections; 
using System.Collections.Generic; 
using UnityEngine; 

public class GoScene1 : MonoBehaviour { 
    public void Scene1Change() { 
     Application.LoadLevel("GoScene1"); 
    } 
} 

然后创建一个名为GoScene2

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

public class GoScene2 : MonoBehaviour { 
    public void Scene2Change() { 
     Application.LoadLevel("GoScene2"); 
    } 
} 
一个C#脚本

继承人屏幕截图... enter image description here enter image description here

enter image description here

+0

我真的很想你们真的不明白我想做什么。我想从某个特定点“播放”一个场景(不是在场景之间切换,加载另一个场景等) – Sebastian

相关问题