コード例 #1
0
    private void showUpgradeMenu()
    {
        GameObject    upgradeMenu;
        RectTransform rectTransform;
        bool          shouldShowBelow = shouldShowPopUpBelow();

        if (shouldShowBelow)
        {
            rectTransform = (RectTransform)bottomUpgradeMenu.transform;
        }
        else
        {
            rectTransform = (RectTransform)topUpgradeMenu.transform;
        }


        Vector3 targetPosition = transform.position;
        Vector3 viewportPoint  = Camera.main.WorldToScreenPoint(targetPosition);

        rectTransform.position += (viewportPoint - rectTransform.position);

        float halfHeight = (rectTransform.rect.height / 2) * hudCanvas.scaleFactor * rectTransform.localScale.y;

        if (shouldShowBelow)
        {
            float   xOffset = 0 * hudCanvas.scaleFactor * rectTransform.localScale.x;
            Vector3 offset  = new Vector3(xOffset, halfHeight, 0);
            upgradeMenu             = bottomUpgradeMenu;
            rectTransform.position -= offset;
        }
        else
        {
            float   xOffset = -(115 * hudCanvas.scaleFactor * rectTransform.localScale.x);
            Vector3 offset  = new Vector3(xOffset, halfHeight, 0);
            upgradeMenu             = topUpgradeMenu;
            rectTransform.position += offset;
        }

        UpgradeBehaviour behaviour = upgradeMenu.GetComponent <UpgradeBehaviour>();

        behaviour.OnPlantSold     = sellPlant;
        behaviour.OnPlantUpgraded = upgradePlant;
        behaviour.CurrentPlant    = plant;

        upgradeMenu.SetActive(true);
    }
コード例 #2
0
    void Start()
    {
        behaviour.Initialize(this);
        upgradeRep.Represent(upgradeCost);

        upgradeBehaviour = GetComponent <UpgradeBehaviour>();

        transactionObj = new ButtonBase(parentCanvas, transactionButton, buyKey, (RectTransform)transform);

        if (upgradeBehaviour == null || upgradeBehaviour.Equals(null))
        {
            upgradeObj = null;
        }
        else
        {
            upgradeObj = new ButtonBase(parentCanvas, upgradeButton, upgradeKey, (RectTransform)transform);
        }

        if (upgradeObj != null)
        {
            upgradeObj.press += Upgrade;
        }

        transactionObj.press += DoTransaction;

        interactable      = level > 0 && !locked;
        levelCounter.text = level.ToString();

        upgradeBehaviour = GetComponent <UpgradeBehaviour>();

        costRep.Represent(cost);
        rewardRep.Represent(returnValue);

        if (upgradeObj == null)
        {
            upgradeable = false;
            upgradeButton.transform.parent.gameObject.SetActive(false);

            interactable = false;
            levelCounter.transform.parent.gameObject.SetActive(false);
        }
    }