Unity游戏商店购物到背包代码笔记
来源:互联网 发布:淘宝联盟怎么使用教程 编辑:程序博客网 时间:2024/05/16 03:15
//1.商店代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using UnityEditor;
public class shangdianScript : MonoBehaviour{
List< Dictionary<string, object>> data;
public Image[] image;//商店装备的栏位
bool OpenBag=false;//商店是否打开bool值
public GameObject Bag;//背包
public GameObject EquimentAttribute;//装备属性栏位预设体
GameObject[] Equipment;//商店里的所有装备
public Button button;//购买装备按钮
public Button SellEquipmentButton;//出售装备按钮
[HideInInspector]public GameObject BuyToEquipment;//选中的要购买的装备
[HideInInspector]public GameObject SellToEquipment;//选中的要出售的装备
// Use this for initialization
void Start () {
string sql = "select * from Hero";
data = DataBaseTool.Instance.GetAllRowData (sql);
Equipment =new GameObject[image.Length];
button.onClick.AddListener (delegate {
BuyEquipment();
});
SellEquipmentButton.onClick.AddListener (delegate {
SellEquipment();
});
}
public void IsOpenBag(){
if (OpenBag == true) {
OpenBag = false;
this.transform.GetChild (1).GetChild(0).GetComponent<Text> ().text = "打开商店";
this.transform.GetChild (0).gameObject.SetActive (false);
} else {
OpenBag = true;
this.transform.GetChild (1).GetChild(0).GetComponent<Text> ().text = "关闭商店";
this.transform.GetChild (0).gameObject.SetActive (true);
}
if(this.transform.GetChild(0).gameObject){
for (int i = 0; i < data.Count; i++) {
if (image [i].transform.childCount == 0) {
GameObject game = new GameObject ();
game.AddComponent<EquipmentScript> ();
game.transform.position = image [i].transform.position;
game.transform.SetParent (image [i].transform);
Vector3 v3 = new Vector3 (game.transform.position.x, game.transform.position.y - 300, game.transform.position.z);
Instantiate (EquimentAttribute, v3, Quaternion.identity).transform.SetParent (game.transform);
EquimentAttribute.gameObject.SetActive (false);
game.GetComponent<Image> ().color = new Color (255, 255, 255, 255);
game.tag = "ShopEquipment";
Equipment [i] = game;
EquipmentScript equipmentscript;
equipmentscript = game.GetComponent<EquipmentScript> ();
equipmentscript.equipmentID = int.Parse (data [i] ["ID"].ToString ());
equipmentscript.equipmentName = data [i] ["Name"].ToString ();
equipmentscript.EquipmentHP = float.Parse (data [i] ["HP"].ToString ());
equipmentscript.EquipmentMP = float.Parse (data [i] ["MP"].ToString ());
equipmentscript.EquipmentAttackValue = int.Parse (data [i] ["AttackValue"].ToString ());
equipmentscript.EquipmentDsecription = data [i] ["Description"].ToString ();
equipmentscript.EquipmentImagePicture = Resources.Load<Sprite> ("Dota1/Dota_DOTA-ITEM/" + data [i] ["PictureName"].ToString ());
equipmentscript.EquipmentCold = int.Parse (data [i] ["Price"].ToString ());
}
}
}
}
public void BuyEquipment(){
if (this.transform.GetChild (0).gameObject.activeSelf) {
try {
this.transform.Find ("Bag").GetComponent<BagScript> ().GetEquipment (BuyToEquipment);
} catch (System.Exception ex) {
Debug.Log ("请选中装备后再购买...");
}
} else {
Debug.Log ("请打开商店再购买...");
}
}
public void SellEquipment(){
try {
if (SellToEquipment.tag=="PlayerEquipment") {
GameObject.Find ("Bag").GetComponent<BagScript> ().my_cold += SellToEquipment.GetComponent<EquipmentScript> ().EquipmentCold;
GameObject.Find ("Bag").GetComponent<BagScript> ().RefreshCold ();
Destroy (SellToEquipment);
}
}catch (System.Exception ex) {
Debug.Log ("请选择要出售的装备...");
}
}
}
//2.装备代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
[RequireComponent(typeof(Button))]
[RequireComponent(typeof(Image))]//检测是否存在这些组件 如果没有则加载Image Button
public class EquipmentScript :MonoBehaviour, IPointerEnterHandler,IPointerExitHandler {
[HideInInspector]public int equipmentID;//装备ID
[HideInInspector]public string equipmentName;//装备名
[HideInInspector]public float EquipmentHP;//装备红值
[HideInInspector]public float EquipmentMP;//装备蓝值
[HideInInspector]public int EquipmentAttackValue;//装备攻击力值
[HideInInspector]public string EquipmentDsecription;//装备描述
[HideInInspector]public Sprite EquipmentImagePicture;//装备图片
[HideInInspector]public int EquipmentCold;//装备价值金币
void Start(){
this.gameObject.GetComponent<Button> ().onClick.AddListener (delegate {
GameObject.Find ("Canvas").GetComponent<shangdianScript> ().BuyToEquipment = this.gameObject;
});
this.gameObject.GetComponent<Button> ().onClick.AddListener (delegate {
GameObject.Find("Canvas").GetComponent<shangdianScript>().SellToEquipment=this.gameObject;
});
DisplayEquipmentAttribute ();
}
public void DisplayEquipmentAttribute(){
this.gameObject.GetComponent<Image> ().sprite = EquipmentImagePicture;
transform.GetChild(0).Find("EquipmentDisplayPicture").GetComponent<Image> ().sprite = EquipmentImagePicture ;
transform.GetChild(0).Find("EquipmentDisplayDescription").GetComponent<Text> ().text = EquipmentDsecription;
transform.GetChild(0).Find("EquipmentDisplayAttribute").GetComponent<Text> ().text=equipmentName+"\n"+"HP:"+EquipmentHP+"\n"+"MP:"+EquipmentMP+"\n"+"攻击力:"+EquipmentAttackValue;
transform.GetChild(0).Find("EquipmentDisplayPrice").GetComponent<Text> ().text ="售价:" + EquipmentCold;
}
public void OnPointerEnter(PointerEventData eventData){
if (eventData.pointerEnter.gameObject.tag.Contains( "Equipment" )) {
eventData.pointerEnter.gameObject.transform.GetChild (0).gameObject.SetActive(true);
}
}
public void OnPointerExit (PointerEventData eventData){
if(eventData.pointerEnter.gameObject.tag.Contains("Equipment")){
eventData.pointerEnter.gameObject.transform.GetChild (0).gameObject.SetActive (false);
}
}
}
//3.背包代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class BagScript : MonoBehaviour {
private List<GameObject> BagEquipment;//背包装备
public Image[] EquipmentField;//背包栏位
public int my_cold=10000;//背包金币
// Use this for initialization
void Start () {
//my_cold = 10000;
RefreshCold ();
}
public void GetEquipment(GameObject my_equipment){
//BagEquipment.Add (my_equipment);
if (my_cold - my_equipment.GetComponent<EquipmentScript> ().EquipmentCold >= 0) {
for (int i = 0; i < EquipmentField.Length; i++) {
if (EquipmentField [i].transform.childCount == 0) {
GameObject game = Instantiate (my_equipment, EquipmentField [i].transform.position, Quaternion.identity);
game.GetComponent<EquipmentScript> ().EquipmentCold = (int)(game.GetComponent<EquipmentScript> ().EquipmentCold * 0.1f);
game.tag = "PlayerEquipment";
game.transform.SetParent (EquipmentField [i].transform);
game.transform.GetChild (0).gameObject.SetActive (false);
EquipmentField [i].color = new Color (255, 255, 255, 255);
my_cold -= my_equipment.GetComponent<EquipmentScript> ().EquipmentCold;
RefreshCold ();
break;
}
}
} else {
Debug.Log ("金币不足");
}
}
public void RefreshCold(){
this.transform.Find ("ColdField").GetComponent<Text> ().text = my_cold+"金币";
}
}
- Unity游戏商店购物到背包代码笔记
- 商店购物
- unity商店demo学习:跑酷游戏
- unity商店demo学习:跑酷游戏
- 商店购物 Shopping Offers(完全背包问题+结构体使用)
- 【Unity-讲座笔记】江毅冰:从游戏到实时电影
- unity商店demo学习:俯视视角RPG游戏
- usaco3.3.3 商店购物
- 商店购物车
- Shopping商店购物
- Unity 游戏移植到 Windows10
- 【笔记+代码】背包问题
- unity 嵌入 百度分享 与 游戏内购物 iap
- 游戏开发学习笔记(九)商店系统
- 商店购物(IOI’95)
- Thymeleaf虚拟购物商店【二】
- Unity笔记 《Unity游戏设计与实现》
- Unity笔记-打飞碟游戏
- 百度鹰眼addPoint()的使用
- 【php知识整理】(1)基本语法 & 类型 & 变量 & 常量
- Android应用运行响应慢原因
- java递归之--二分查找
- 求解立方根
- Unity游戏商店购物到背包代码笔记
- The Tetris game wxPython
- 为什么说没有大数据的人工智能什么都不是?
- JSONString转List<map>;Duplicate key
- 今日小程序推荐:梵高的作品、吴昕的演技
- 运算符、流程控制
- thymeleaf 个人常用标签
- Mybatis Invalid bound statement (not found)的错误
- 安装oracle和sql deverloper的安装问题报错及解决方法