Пример #1
0
    /// <summary>
    /// 根据当前机器人和等级更新UI显示信息
    /// </summary>
    private void UpdateRobotUI()
    {
        Image  headI      = DIYP.Find("Robot_P/I").GetComponent <Image>();
        Text   nameT      = DIYP.Find("Robot_P/Name_T").GetComponent <Text>();
        Text   weaponT    = DIYP.Find("Robot_P/Weapon_T").GetComponent <Text>();
        Text   defenseT   = DIYP.Find("Robot_P/Defense_T").GetComponent <Text>();
        Text   speedT     = DIYP.Find("Robot_P/Speed_T").GetComponent <Text>();
        Text   otherT     = DIYP.Find("Robot_P/Other_T").GetComponent <Text>();
        Text   infoT      = DIYP.Find("Robot_P/Info_T").GetComponent <Text>();
        Text   hpT        = DIYP.Find("Robot_P/HP_T").GetComponent <Text>();
        Text   moveSpeedT = DIYP.Find("Robot_P/MoveSpeed_T").GetComponent <Text>();
        Button upgradeB   = DIYP.Find("Robot_P/Upgrade_B").GetComponent <Button>();
        Text   costT      = DIYP.Find("Robot_P/Upgrade_B/Value_T").GetComponent <Text>();

        bool isMaxLevel = RobotInfo.Instance.MainRobotInfo.robotLevel == RobotInfo.Instance.MainRobotInfo.robotMaxLevel - 1;

        headI.sprite    = ResourcesLoadManager.LoadRobotResources <GameObject>(RobotInfo.Instance.MainRobotInfo.robotResName).GetComponent <SpriteRenderer>().sprite;
        nameT.text      = RobotInfo.Instance.MainRobotInfo.robotName;
        weaponT.text    = string.Format("武器节点:{0}", RobotInfo.Instance.MainRobotInfo.weaponPoints);
        otherT.text     = string.Format("特殊节点:{0}", RobotInfo.Instance.MainRobotInfo.otherPoints);
        infoT.text      = string.Format("{0}", RobotInfo.Instance.MainRobotInfo.robotInfo);
        hpT.text        = string.Format("生命:{0}", RobotInfo.Instance.MainRobotInfo.maxHP);
        moveSpeedT.text = string.Format("速度:{0}", RobotInfo.Instance.MainRobotInfo.moveSpeed);

        upgradeB.interactable = !isMaxLevel;
        costT.text            = isMaxLevel ? "Max" : string.Format("升级:{0}", RobotInfo.Instance.MainRobotInfo.cost);
    }
Пример #2
0
    /// <summary>
    /// 开始游戏 初始化主角
    /// </summary>
    public void CreatePlayerAndStartGame()
    {
        IsGame  = true;
        IsPause = false;

        //如果主角精灵还存在 则销毁主角
        if (null != MainRobot)
        {
            Destroy(MainRobot);
        }

        //重置数据
        GameTime = 0;

        RobotInfo.Instance.Score = 0;
        RobotInfo.Instance.HP    = RobotInfo.Instance.MainRobotInfo.maxHP;

        string resName = RobotInfo.Instance.MainRobotInfo.robotResName;
        //根据角色数据生成主角
        GameObject robotGo = ResourcesLoadManager.LoadRobotResources <GameObject>(resName);

        MainRobot          = Instantiate(robotGo);
        MainRobotTransform = MainRobot.transform;

        MainRobotTransform.SetParent(PlayerGroup);
        MainRobotTransform.localPosition    = BEGIN_POS;
        MainRobotTransform.localEulerAngles = Vector3.zero;
        MainRobotTransform.localScale       = 5 * Vector3.one;//TODO

        MainRobot.AddComponent <RobotController>();
    }
Пример #3
0
    /// <summary>
    /// 创建一个新的子弹
    /// </summary>
    private BaseBulletController CreateBulletUtil(BulletType type, Transform parent, Vector3 pos, int power)
    {
        //根据子弹类型 生成数据
        BaseBulletInfo data = BulletInfo.Instance.GetBulletData(type, power);

        GameObject bulletGo = ResourcesLoadManager.LoadBulletResources <GameObject>(data.bulletResName);
        GameObject bullet   = GameObject.Instantiate <GameObject>(bulletGo);

        bullet.transform.SetParent(GameController.Instance.BulletGroup);

        BaseBulletController bulletController = bullet.AddComponent <BaseBulletController>();

        bulletController.InitBulletData(parent, bullet.transform, pos, data);

        return(bulletController);
    }
Пример #4
0
    private BaseEnemyController CreateEnemyUtil(EnemyType type)
    {
        //根据类型 生成数据
        BaseEnemyInfo data = EnemyInfo.Instance.LoadBaseEnemyData(type);

        GameObject enemyGo = ResourcesLoadManager.LoadEnemyResources <GameObject>(data.enemyResName);
        GameObject enemy   = GameObject.Instantiate <GameObject>(enemyGo);

        enemy.transform.SetParent(GameController.Instance.EnemyGroup);

        BaseEnemyController enemyController = enemy.AddComponent <BaseEnemyController>();

        enemyController.InitEnemyData(enemy.transform, data);

        return(enemyController);
    }
Пример #5
0
    /// <summary>
    /// 刷新当前Equip信息
    /// </summary>
    private void UpdateEquipList(bool resetPos)
    {
        //获取原型并隐藏
        equipItem.gameObject.SetActive(false);
        //更新列表
        for (int i = 0; i < equipScrollP.childCount; i++)
        {
            Destroy(equipScrollP.GetChild(i).gameObject);
        }

        switch (equipUIType)
        {
        case EquipUIType.Weapon:

            WeaponType[] types = WeaponInfo.GetAllWeapons();
            int          count = types.Length;

            equipScrollP.GetComponent <RectTransform>().sizeDelta = new Vector2(0, Mathf.Max(900, 200 * count));
            if (resetPos)
            {
                equipScrollP.GetComponent <RectTransform>().anchoredPosition = Vector2.zero;
            }

            for (int i = 0; i < count; i++)
            {
                GameObject go    = Instantiate <GameObject>(equipItem.gameObject);
                Transform  trans = go.transform;
                go.SetActive(true);
                go.name = i.ToString();
                trans.SetParent(equipScrollP);
                trans.GetComponent <RectTransform>().anchoredPosition = new Vector2(0, -200 * i);
                trans.GetComponent <RectTransform>().sizeDelta        = new Vector2(0, 200);
                trans.GetComponent <RectTransform>().localScale       = Vector3.one;

                WeaponType tempType  = types[i];
                int        tempLevel = DataManager.Instance.LoadWeaponLevel(tempType);

                BaseWeaponInfo baseWeaponInfo = WeaponInfo.Instance.LoadBaseWeaponData(tempType, tempLevel);
                bool           isMaxLevel     = tempLevel >= WeaponInfo.MAX_WEAPON_LEVEL;
                bool           isEquip        = DataManager.Instance.LoadEquipWeapon().Contains(tempType);

                trans.Find("I").GetComponent <Image>().sprite          = ResourcesLoadManager.LoadWeaponResources <GameObject>(baseWeaponInfo.weaponResName).GetComponent <SpriteRenderer>().sprite;
                trans.Find("Cost_T").GetComponent <Text>().text        = string.Format("节点消耗:{0}", baseWeaponInfo.weaponPointsCost);
                trans.Find("Attribute_0_T").GetComponent <Text>().text = string.Format("武器威力:{0}", baseWeaponInfo.shootPower + tempLevel * baseWeaponInfo.shootPowerUpPerLevel);
                trans.Find("Attribute_1_T").GetComponent <Text>().text = string.Format("武器射速:{0}", baseWeaponInfo.shootSpeed + tempLevel * baseWeaponInfo.shootSpeedUpPerLevel);

                Button upgradeB = trans.Find("Upgrade_B").GetComponent <Button>();
                Button equipB   = trans.Find("Equip_B").GetComponent <Button>();

                upgradeB.interactable = !isMaxLevel;
                upgradeB.transform.Find("Value_T").GetComponent <Text>().text = isMaxLevel ? "Max" : string.Format("升级:{0}", baseWeaponInfo.weaponUpgradeCost + tempLevel * baseWeaponInfo.weaponUpgradeCostUp);
                equipB.transform.Find("Value_T").GetComponent <Text>().text   = isEquip ? "卸载" : "装备";

                //注册按钮方法
                upgradeB.onClick.AddListener(() => { DoUpgradeModule(tempType); });
                equipB.onClick.AddListener(() => { DoEquipOrUnequipModule(tempType); });
            }

            break;


        case EquipUIType.Other:

            //TODO
            break;
        }
    }