Example #1
0
    public void ShowScreen(CustomPanel prefab, object payload, bool isReturn = false, float durationTime = 0.5f)
    {
        if (currentPrefab == prefab)
        {
            return;
        }

        currentPrefab = prefab;
        CustomPanel go = Instantiate(prefab, panelsTransform);

        if (payload != null)
        {
            go.GetComponent <IPayloadReceiver>()?.ReceivedPayload(payload);
        }

        if (currentPanel != null)
        {
            raycaster.enabled = false;
            go.transform.SetAsFirstSibling();
            currentPanel.FadeToZero(durationTime, () =>
            {
                Destroy(currentPanel.gameObject);
                currentPanel      = go;
                raycaster.enabled = true;
            });
        }
        else
        {
            currentPanel = go;
        }
    }