数据库查看EZ状态的脚本

//该脚本用于数据库的增删改查等
using UnityEngine;
using System.Collections;
using Mono.Data.Sqlite;
using System.Collections.Generic;
using UnityEngine.UI; 


public class DataBaseScript : MonoBehaviour {
public static DataBaseScript Istance;
void Awake()
{
Istance = this;
}


string path; 
SqliteConnection con; // 数据库链接
void Start () {
}
//打开数据库
bool OpenDataBase()
{
path = "Data source=" + Application.streamingAssetsPath + "/LoLDataBase.sqlite";
con = new SqliteConnection (path);
if (con != null) {
con.Open ();
return true;
} else {
return false;
}
}
//关闭数据库
void CloseDataBase()
{
con.Close ();
}
//增
public void AddDAtaBase(string sql)
{
NonQuery (sql);
}


//删
public void DeleteDataBase(string sql)
{
NonQuery (sql);
}


//改
public void UpdateDataBase(string sql)
{
NonQuery (sql);
}
//nonQuery
void NonQuery(string sql)
{
if (OpenDataBase ()) {
//创建sqlite
SqliteCommand cmd = con.CreateCommand ();
cmd.CommandText = sql;
//cmd 执行sql语句
cmd.ExecuteNonQuery ();
//关闭数据库
CloseDataBase ();
} else {
Debug.Log ("数据库打开失败");
}
}
//查
public List<ArrayList> SelectDatabase(string sql)
{
if (OpenDataBase ()) {
SqliteCommand cmd = con.CreateCommand ();
cmd.CommandText = sql;
//执行SQL语句获取数据
SqliteDataReader reader = cmd.ExecuteReader();
//循环读取数据
List<ArrayList> lists = new List<ArrayList> ();
while (reader.Read ()) {
//声明一个ArrayList 存放每次读取的数据 —— (只要属性)
ArrayList arr = new ArrayList ();
//循环给ArrayList 赋值
for (int i = 1; i < reader.FieldCount; i++) {
arr.Add (reader.GetValue (i));
}
//将ArrayList 添加给list
lists.Add (arr);
}
CloseDataBase ();
return lists;
} else {
Debug.Log ("数据库打开失败");
return null;
}
}
//对查询的二次封装
//1、查询的对象,2、查询语句
public float[] AccordingToTableQuery(string tablename,string targetName)
{
string sql = "select * from " + tablename + " where name= '" + targetName + "'";


List<ArrayList> lists = SelectDatabase (sql);
//根据SQL语句,lists 中的ArrayList只有一个
ArrayList arr = lists [0];


//创建一个float类型的数组,存放数值返回
float[] values = new float[arr.Count];
for (int i = 0; i < arr.Count; i++) {
values [i] = float.Parse (arr [i].ToString ());
}
return values;
}
}


//
using UnityEngine;
using System.Collections;
using UnityEngine.UI;


public class PickEquipScript : MonoBehaviour {


//选取装备的点击事件
public void PickEquip(Image image)
{
AddheroEquip (image);
}




void AddheroEquip(Image image)
{
HeroEquipScript hs = GameObject.Find ("HeroEquips").GetComponent<HeroEquipScript> ();
hs.addEquipAccordingToEquipCount (image);
}
}


using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;


public class HeroEquipScript : MonoBehaviour {
List<Transform> equips;
int equipCount = 0; // 带了几件装备
void Start () {
equips = new List<Transform> ();
for (int i = 0; i < transform.childCount; i++) {
equips.Add (transform.GetChild (i));
}
for (int i = 0; i < equips.Count; i++) {
//先拿到image组件
Image image = equips [i].GetComponent<Image> ();
//判断上面有没有图片
if(image.sprite != null){
equipCount++;
}
}
}

//根据 装备栏是否满了 来添加装备
public void addEquipAccordingToEquipCount(Image image)
{

//装备栏还有空格
if (equipCount < equips.Count) {
//添加装备的时候改变hero的属性
//1、找到执行改变hero属性的脚本
showHeroPropertyScript sp = GameObject.Find("ShowUI").GetComponent<showHeroPropertyScript>();
//通过数据库获取hero和装备的属性
float[] hero = DataBaseScript.Istance.AccordingToTableQuery ("Hero", "EZ");
float[] equip = DataBaseScript.Istance.AccordingToTableQuery ("Equip", image.sprite.name);
//3、执行showHeroPropertyScript脚本中改变英雄属性的方法
sp.ChangeHeroProperty (true, hero, equip);
equipCount++;
//遍历所有的装备栏,找到第一个空格,然后退出
for (int i = 0; i < equips.Count; i++) {
if (equips [i].GetComponent<Image> ().sprite == null) {
equips [i].GetComponent<Image> ().sprite = image.sprite;
return;
}
}
}
}


//删除装备
public void DeleteEquip (Image image)
{
if (image.GetComponent<Image>().sprite != null) {
equipCount--;
string equipaa = image.GetComponent<Image> ().sprite.name;
showHeroPropertyScript sp = GameObject.Find("ShowUI").GetComponent<showHeroPropertyScript>();
float[] heros = DataBaseScript.Istance.AccordingToTableQuery ("Hero", "EZ");
float[] AA = DataBaseScript.Istance.AccordingToTableQuery ("equip", equipaa);
Debug.Log (AA.Length + "BBB");
sp.ChangeHeroProperty (false, heros, AA);
image.GetComponent<Image> ().sprite = null;
}
}


}




using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;




public class showHeroPropertyScript : MonoBehaviour{
//前缀
string[] preStrings;
//存放当前 多个 子TEXT控件
List <Transform> texts;
void Start () {
preStrings = new string[]{ "攻击力:", "法术强度:", "护甲值:", "魔法抗性:" };
texts = new  List<Transform> ();
//获取 多个 Text子控件
for (int i = 0; i < transform.childCount; i++) {
Transform text_transform = transform.GetChild (i);
texts.Add (text_transform);
}
ShowHeroProperty ();
}
//显示英雄属性
public void ShowHeroProperty()
{
//调用数据库的查询方法,传入表名 和 英雄 读取数据
float[] property = DataBaseScript.Istance.AccordingToTableQuery("Hero","EZ");
for (int i = 0; i < property.Length; i++) {
//在对应的text控件的text组件上显示文字
texts[i].GetComponent<Text>().text = preStrings[i] + property[i].ToString();
}
}


//通过装备来修改hero的属性


public void ChangeHeroProperty(bool Add,float[] hero, float[] equip)
{


float[] result = new float[hero.Length];


if (Add == true) {
//循环——对应添加
for (int i = 0; i < result.Length; i++) {
result [i] = hero [i] + equip [i];
}
//循环——对应减少
} else if(Add == false) {
for (int i = 0; i < result.Length; i++) {
result [i] = hero [i] - equip [i];
}
}


string sql = "update hero set ad=" + result [0] + ",ap=" + result [1] + ",armor=" + result [2] + ",spellresistance=" + result [3] + " where name = 'EZ'";
DataBaseScript.Istance.UpdateDataBase (sql);


ShowHeroProperty ();
}


void OnDisable()
{
string sql = "update hero set ad=89,ap=0,armor=34,spellresistance=35 where name = 'EZ'";
DataBaseScript.Istance.UpdateDataBase (sql);
}


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值