2017-07-17 28 views
0

我很新,我的編程能力仍然有點弱,我正在研究如何編寫代碼,同時練習我的激情,這是遊戲開發的方式2d平臺遊戲Unity3D - 如何創建一個場景持有人的所有級別和解鎖一些?

我的主要問題是現在,我有兩個場景(1級,級別2),然後我有我有兩個門同時代表水平選擇一個SceneSelctor ,但我面臨的probleme是althought

我創建了一個小碼鎖定Level2,直到我達到一個點,然後解鎖它,是當我開始遊戲時,level2總是解鎖,這對我沒有好處

控制這個東西保存在兩個腳本 我用Hastebin,因爲我不知道如何將代碼複製/粘貼代碼在這裏

https://hastebin.com/oluzujukid.cs

===> LevelDoor。 CS

public class LevelDoor : MonoBehaviour { 

public string levelToLoad; 

public bool unlocked; 


// Use this for initialization 
void Start() { 

//first level must be always unlocked 
    PlayerPrefs.SetInt("Level1", 1); 

//when the leveltoLoad = 1 that mean that the level should be unlocked 
    if(PlayerPrefs.GetInt(levelToLoad) == 1) 
    { 
     unlocked = true; 
    } else 
    { 
     unlocked = false; 
    } 

//some animation stuff toshow doorOpen or closed 
    if(unlocked) 
    { 
     doorTop.sprite = doorTopOpen; 
     doorBottom.sprite = doorBottomOpen; 
    } else 
    { 
     doorTop.sprite = doorTopClosed; 
     doorBottom.sprite = doorBottomClosed; 
    } 
} 

===> LevelExit.cs

public class LevelExit : MonoBehaviour { 

public string levelToUnlock; 
} 


public IEnumerator levelExitCo() 
{ 
    // if the player reach the checkpoint thisline unlock the second level on SceneSelect 
    PlayerPrefs.SetInt(levelToUnlock, 1); 
} 
+0

你可以在這裏粘貼代碼,然後使用格式選項:查找「{}」圖標。 – Alex

+0

是的,我想過,但我得到了一些奇怪的結果,如只有一部分scipt highlited,所以我選擇了加速器 – EvanMedi

+0

粘貼它,並與格式做你最好。別人會編輯你的問題,並修復它,如果不是100%。通過這種方式獲得答案的機會更大。 – Alex

回答

0

這是我將如何處理這個問題:

一旦門解鎖,我會設置一個觸發器(就在打開的門後面),這將加載一個新的場景。然後,從一個場景移動到另一個我會用

SceneManager.LoadScene() 

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

在第二級,你可以隨時把另一扇門已經打開,其觸發所以玩家可以移動回第一級

編輯用另一種方法:

如果你想有不同水平的遊戲,你可以依次解鎖,有一兩件事你可以做的是創造一個單變量,這是一個獨特的可變使得w不適合所有遊戲場景,布爾型數組。數組中的每個元素將代表一個級別。最初,你可以定義所有級別,但第一個爲假(所有都鎖定),當你考慮一個級別可以解鎖,你改變該值

所以在你的遊戲開始時,你可以調用一個類似於(讓想象你有10個關卡):

public static bool[] levels = new bool[10]; 
levels[0]=true 
for (int i = 1; i < levels.Length; i++) 
{ levels[i] = false; } 
+0

我認爲你沒有得到的問題我面臨的門已經有一個區域,你點擊「跳轉」按鈕作爲觸發器 我的遊戲流程就是這樣的 當您在第1級結束時到達某個檢查點時,Level2會被解鎖,然後您將被引導至LevelSelector,其中有兩個門代表兩個級別,併爲您提供機會重播level1或移動到level2 ***我的問題是,我想LevelSelector中的Level2鎖定默認情況下,這是不是現在*** – EvanMedi

+0

好吧,我會用不同的方法編輯我的答案 –

+0

我想我知道我知道爲什麼我得到這樣的問題是因爲某些原因我的默認設置f或level2是「1」,所以它得到解鎖有沒有什麼辦法,我可以設置爲「0」,直到我通過達到Level1的末尾解鎖 如果你有一個teamviewer,所以你可以幫助我,我將不勝感激 – EvanMedi

相關問題