如何知道我要单击哪个预制按钮?

时间:2019-05-14 13:07:26

标签: c# unity3d

我做了几个预制纽扣。当我单击它们中的每一个时,它们都转到相同的场景,但是根据我单击的按钮,我对该场景具有不同的信息。怎么知道我点击了哪个按钮?函数goArtistDetail是每个按钮都会调用的函数。

我有这个:

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

public class ButtonScriptTwo : MonoBehaviour
{
    // Use this for initialization
    void Start ()
    {
        Debug.Log("ButtonScriptTwo");
        Debug.Log("counter: " + GlobalState.counter);
    }

    public void goArtistDetail(Button button)
    {
        GlobalState.counter++;
        Application.LoadLevel("ArtistDetail");
    }
}

Prefab of the Button

1 个答案:

答案 0 :(得分:0)

除了加载相同的场景外,您是否有理由尝试对两个调用使用相同的方法?如果不是,为什么不对每个按钮分别设置不同的onClick并设置PlayerPref。

public void ButtonClick_1()
{
    GoArtistDetail(1);
}

public void ButtonClick_2()
{
    GoArtistDetail(2);
}

// C# Methods start with a Captial  
private void GoArtistDetail(int refererBtn)
{
    GlobalState.counter++;
    PlayerPrefs.SetInt("Referer Button", refererBtn)
    Application.LoadLevel("ArtistDetail");
}


然后在ArtistDetail场景中

private void Start()
{
    int refererBtn = 1; //Default value
    if(PlayerPrefs.HasKey("Referer Button"))
    {
        refererBtn = PlayerPrefs.GetInt("Referer Button");
        PlayerPrefs.DeleteKey("Referer Button");// Remove it if it is use once
    }

    //Evaluate refererBtn to show what info is relevant
}