/// <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); }
/// <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>(); }
/// <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); }
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); }
/// <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; } }