2014-12-03 25 views
2

我想在Unity2D中製作一個場景,其背景名爲Stone,Scissors和Paper。這3個是相對較小的背景。我也有一個像壁紙一樣的屏幕大小背景。c#Unity2D處理多個背景

現在,我在這3個背景之外放置了一個Button,並且當我按下該按鈕時,我想在它們之間切換。我的意思是有一個按鈕,現在讓我們說石頭背景是可見的,其他2不是,當我按下按鈕時,石頭背景應該消失,紙張背景應該是可見的。當我在這種情況下再次擊中同一個按鈕時,紙張背景應該消失,剪刀背景應該可見。之後,如果我按下該按鈕,循環應該再次返回到石背景。

我希望我解釋正確。我怎樣才能做到這一點?感謝提前:)

編輯:我寫了這個代碼,它給NullReferenceException在29行

using UnityEngine; 
using System.Collections; 
using UnityEngine.UI; 

public class NextCountry : MonoBehaviour { 

    MainGame game; 
    public GameObject stone; 
    public GameObject paper; 
    public GameObject scissors; 
    // Use this for initialization 
    void Start() { 
     game = MainGame.getInstance(); 
     stone = GameObject.Find("StoneView"); 
     paper = GameObject.Find ("PaperView"); 
     scissors = GameObject.Find ("ScissorsView"); 
    } 
    public void OnBackgroundChange(string next) 
    { 
     if (next == "paper") 
     { 
      stone.SetActive(false); 
      paper.SetActive(true); 
      scissors.SetActive(false); 
     } 
    } 
} 

回答

1

好,你可以做這樣的 地方三個到場景,當你點擊按鈕使你想要顯示的那個transform.position.z等於0,其他2使它像100或其他東西..這樣,他不可能看到它們:P,因爲你有3個背景這應該工作正常 還有另一種方式它有點複雜,所以如果這不起作用我會給你另一個在評論或東西

+0

謝謝。但問題是,我怎樣才能從同一個腳本中獲得這3個背景?如果我能聯繫到他們,我也可以使用「isHidden」。 – kalahari 2014-12-03 17:10:06

+0

哦,是的,你是對的,你可以使用isHidden你不能用GameObject.find(「場景中的名字」)達到他們; – 2014-12-03 18:14:09

+0

我編輯了問題 – kalahari 2014-12-03 18:39:51