【问题标题】:How to know which prefab button I am clicking?如何知道我点击的是哪个预制按钮?
【发布时间】:2019-05-14 22:14:43
【问题描述】:

我做了几个预制按钮。当我单击它们中的每一个时,它们会进入同一个场景,但我那个场景会根据我单击的按钮而获得不同的信息。怎么知道我点击的是哪个按钮? 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

【问题讨论】:

标签: c# unity3d


【解决方案1】:

除了加载相同的场景之外,您是否有任何理由尝试对两个调用使用相同的方法?如果不是,为什么不为每个按钮设置不同的方法 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
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-17
    • 1970-01-01
    • 2017-11-17
    相关资源
    最近更新 更多