c#Unity2D处理多个背景

问题描述:

我想在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); 
     } 
    } 
} 

好,你可以做这样的 地方三个到场景,当你点击按钮使你想要显示的那个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