首页 分享 《组合变身小宠物游戏》PetCombine宠物组合(修改更新中)【初学者】

《组合变身小宠物游戏》PetCombine宠物组合(修改更新中)【初学者】

来源:萌宠菠菠乐园 时间:2024-08-19 04:46

最新推荐文章于 2024-04-01 22:05:50 发布

等木鱼的猫 于 2016-08-29 15:42:28 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

这个组合功能功能类似于角色扮演类游戏《妖精组合》中的组合功能,一般是用两个低等级的宠物合成更高等级的宠物。xml表中有合成的公式。

using UnityEngine;

using System.Collections;

using UnityEngine;

using System.Collections.Generic;

using UnityEngine.UI;

public class PetCombine : MonoBehaviour {

public static PetCombine self;

public GameObject parentObj;

public GameObject Box1;

public GameObject Box2;

public GameObject Box3;

public Text TextRemindTwoPets;

public Text TextSorryData;

public IEnumerator WaitSecondShow(){

yield return new WaitForSeconds(1);

if (Box3.transform.FindChild("petItem(Clone)")!=null)

Destroy(Box3.transform.FindChild("petItem(Clone)").gameObject);

InitPetHaveData();

}

public IEnumerator RemindChooseTwoPets()

{

TextRemindTwoPets.gameObject.SetActive(true);

yield return new WaitForSeconds(1);

TextRemindTwoPets.gameObject.SetActive(false);

}

public IEnumerator SorryNoData()

{

TextSorryData.gameObject.SetActive(true);

yield return new WaitForSeconds(1);

TextSorryData.gameObject.SetActive(false);

}

public int ItemNumber

{

get

{

return Fighting.self.PlayerPetItemList.Count;

}

}

private List<GameObject>gridItemobj = new List<GameObject>();

private Hashtable recordPetData = new Hashtable();

void Awake()

{

self = this;

}

void Start()

{

TextRemindTwoPets.gameObject.SetActive(false);

}

void OnEnable()

{

InitPetHaveData();

}

void Update()

{

if (Input.GetMouseButtonUp(0))

{

int id1 = 0, recordid1 = 0;

int id2 = 0, recordid2 = 0;

if ((Box1.transform.FindChild("PlayerPetChooseItem(Clone)") == null || Box2.transform.FindChild("PlayerPetChooseItem(Clone)")==null) && Box3.transform.FindChild("petItem(Clone)") != null)

Destroy(Box3.transform.FindChild("petItem(Clone)").gameObject);

if (Box1.transform.FindChild("PlayerPetChooseItem(Clone)") && Box2.transform.FindChild("PlayerPetChooseItem(Clone)"))

{

GameObject item1 = Box1.transform.FindChild("PlayerPetChooseItem(Clone)").gameObject;

id1 = item1.GetComponent<PlayerPetChooseItem>().data.id;

recordid1 = item1.GetComponent<PlayerPetChooseItem>().recordId;

GameObject item2 = Box2.transform.FindChild("PlayerPetChooseItem(Clone)").gameObject;

id2 = item2.GetComponent<PlayerPetChooseItem>().data.id;

recordid2 = item2.GetComponent<PlayerPetChooseItem>().recordId;

PetCombineXmlData data = ConfigManager.Instance.GetPetCombineDicData(id1, id2);

if (data == null)

{

if (Box3.transform.FindChild("petItem(Clone)") != null) { Destroy(Box3.transform.FindChild("petItem(Clone)").gameObject); }

}

else

{

int CombineId = 0;

CombineId = data.CombineId;

GameObject gridItem = Resources.Load("Prefabs/item/petItem", typeof(GameObject)) as GameObject;

if (Box3.transform.FindChild("petItem(Clone)") != null)

Debug.Log("原有组合id" + Box3.transform.FindChild("petItem(Clone)").gameObject.GetComponent<PlayerPetChooseItem>().data.id);

Debug.Log("新组合id" + CombineId);

if (Box3.transform.FindChild("petItem(Clone)") != null && Box3.transform.FindChild("petItem(Clone)").gameObject.GetComponent<PlayerPetChooseItem>().data.id != CombineId)

{

Destroy(Box3.transform.FindChild("petItem(Clone)").gameObject);

GameObject obj = GameObject.Instantiate(gridItem) as GameObject;

obj.GetComponent<petItem>().UpdatepetItemData(CombineId);

obj.transform.parent = Box3.transform;

obj.transform.localPosition = Vector3.zero;

obj.transform.localScale = Vector3.one;

}

if (Box3.transform.FindChild("petItem(Clone)") == null)

{

GameObject obj = GameObject.Instantiate(gridItem) as GameObject;

obj.GetComponent<petItem>().UpdatepetItemData(CombineId);

obj.transform.parent = Box3.transform;

obj.transform.localPosition = Vector3.zero;

obj.transform.localScale = Vector3.one;

}

if (Box3.transform.FindChild("petItem(Clone)").gameObject.GetComponent<PlayerPetChooseItem>().data.id == CombineId)

{

}

}

}

}

}

public void InitPetHaveData()

{

recordPetData = DataRecord.GetPetList();

foreach(GameObject obj in gridItemobj)

{

Destroy(obj);

}

gridItemobj.Clear();

GameObject BoxgridItem = Resources.Load("Prefabs/item/BoxGrid", typeof(GameObject)) as GameObject;

GameObject PetgridItem = Resources.Load("Prefabs/item/PlayerPetChooseItem", typeof(GameObject)) as GameObject;

foreach (DictionaryEntry itemx in recordPetData)

{

if (itemx.Value == null)

continue;

Hashtable data = itemx.Value as Hashtable;

GameObject gridobj = GameObject.Instantiate(BoxgridItem) as GameObject;

gridobj.name = "BoxGrid" + (gridItemobj.Count + 1).ToString();

gridobj.transform.parent = parentObj.transform;

gridobj.transform.localPosition = Vector3.zero;

gridobj.transform.localScale = Vector3.one;

gridItemobj.Add(gridobj);

GameObject petobj = GameObject.Instantiate(PetgridItem) as GameObject; ;

petobj.GetComponent<PlayerPetChooseItem>().UpdatePlayerPetChooseItemData(int.Parse(itemx.Key.ToString()), DataRecord.TranslateData(data));

petobj.transform.parent = gridobj.transform;

petobj.transform.localPosition = Vector3.zero;

petobj.transform.localScale = Vector3.one;

}

}

public void OnClickBtnBack()

{

UIManager.instance.HidePanel(UIPanelNames.PetCombinePanel);

RoleControl.self.IsCanMove = false;

RoleControl.self.IsInFight = false;

if (Box1.transform.FindChild("PlayerPetChooseItem(Clone)")!=null)

{ Destroy( Box1.transform.FindChild("PlayerPetChooseItem(Clone)").gameObject); }

if (Box2.transform.FindChild("PlayerPetChooseItem(Clone)")!=null)

{ Destroy( Box2.transform.FindChild("PlayerPetChooseItem(Clone)").gameObject); }

}

public void OnClickCombine()

{

int id1 = 0, recordid1=0;

int id2 = 0, recordid2=0;

if (Box1.transform.FindChild("PlayerPetChooseItem(Clone)") && Box2.transform.FindChild("PlayerPetChooseItem(Clone)"))

{

GameObject item1 = Box1.transform.FindChild("PlayerPetChooseItem(Clone)").gameObject;

id1 = item1.GetComponent<PlayerPetChooseItem>().data.id;

recordid1 = item1.GetComponent<PlayerPetChooseItem>().recordId;

GameObject item2 = Box2.transform.FindChild("PlayerPetChooseItem(Clone)").gameObject;

id2 = item2.GetComponent<PlayerPetChooseItem>().data.id;

recordid2 = item2.GetComponent<PlayerPetChooseItem>().recordId;

}

else

{

Debug.Log("error");

StartCoroutine(RemindChooseTwoPets());

return;

}

PetCombineXmlData data = ConfigManager.Instance.GetPetCombineDicData(id1, id2);

if (data == null)

{

Debug.Log("XML数据缺少,待增加");

StartCoroutine(SorryNoData());

}

else

{

int CombineId = 0;

CombineId = data.CombineId;

if (Box1.transform.FindChild("PlayerPetChooseItem(Clone)")) Destroy(Box1.transform.FindChild("PlayerPetChooseItem(Clone)").gameObject);

if (Box2.transform.FindChild("PlayerPetChooseItem(Clone)")) Destroy(Box2.transform.FindChild("PlayerPetChooseItem(Clone)").gameObject);

StartCoroutine(WaitSecondShow());

DataRecord.DelPet(recordid1);

DataRecord.DelPet(recordid2);

DataRecord.AddPet(ConfigManager.Instance.GetPetData(CombineId));

}

}

}

运行动态图:



相关知识

《组合变身小宠物游戏》DataRecord(修改更新中)【初学者】
一种控制宠物体重的功能组合物的制作方法
糖糖宠物派对游戏下载
一种宠物用组合物及其应用
一种植萃除虫组合物及其在宠物洗护产品中的应用
一种用于治疗宠物肝病的中药组合
电子宠物游戏java
一种控制宠物体重的功能组合物
《神武4》手游驭兽技能如何搭配?这些固定组合一定要学会
5.4版本对战宠物训练师推荐 附常见组合心得

网址: 《组合变身小宠物游戏》PetCombine宠物组合(修改更新中)【初学者】 https://www.mcbbbk.com/newsview78245.html

所属分类:萌宠日常
上一篇: VV语音宠物游戏如何查看排行榜
下一篇: 快乐宠物游戏下载

推荐分享