2017-04-26 59 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

相關問題