记录:Unity脚本的编写7.0

目录

  • 连接数据库
  • 编写脚本
    • 查看效果

有段时间没有更新了,现在有点空,就继续写一下unity的脚本,这次就来写一下关于unity连接数据库的内容

连接数据库

无论是什么语言与应用场景,总有一项东西是绕不开的,那就是数据库(各种意义上),毕竟永远是在和数据打交道(笑),而unity也不例外,不论是登录还是存储游戏数据,数据库的影子无处不子,在这里我们就浅连接一下数据库,进行基础的增删改查工作
当然,下载mysql和可视化软件(如navicat)之类的工作在此就不做赘述,可以通过其他方式自行下载,这里只关注如何连接与简单的操作
注意:在连接数据库的时候注意各种软件的版本,版本不对应就无法生效,很多问题都是这样产生的,而且基本无法通过除了重新安装意外的方式解决,请读者主意,笔者在此使用的是5.7版本mysql
那么就正式开始

像java的导入jar包一样,unity也有自己的方式搭建与mysql连接的地基,导入sql连接文件
先在unity中创建一个文件夹
在这里插入图片描述
导入文件(文件已上传,不行了再用网盘之类的存一下)
注意甄别版本,笔者的unity为2022版,mysql为5.7,需要传入的文件为以下这些内容
在这里插入图片描述

编写脚本

关于获取数据库和实现增删改查的内容

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using MySql.Data.MySqlClient;//MySql连接器命名空间
using System;public class mysql : MonoBehaviour
{//创建数据库//服务器名称,端口号,数据库,用户名,密码,数据格式,连接形式// Start is called before the first frame updatestring strConn = "server =localhost;port=3306;database=;user=root;password=;Charset=utf8";//这里填自己的数据库名称和密码//创建Mysql连接器MySqlConnection sqlConnection;void Start(){//操作数据库的第一步sqlConnection = new MySqlConnection(strConn);try{sqlConnection.Open();Debug.Log(sqlConnection.State);//在代码中进行了分别的测试,也许我不应该放到一起什么的,应该分开来看,不过都这样了,就暂且如此吧,如果要进行别的操作只需要注释掉对应的操作就行了//1.增 insert//InsterData();//2.删 delet//DeletData();//3.改 update//UpdateData();//4.查 selectSelectData();}catch(System.Exception) {throw;}finally{if(sqlConnection.State.ToString()=="open")//操作数据库的最后一步sqlConnection.Close();Debug.Log(sqlConnection.State);}}
//同理,在写sql语句的时候将名称改为自己的表名和属性private void SelectData(){//写sql语句string strSql = "select * from qquser where QQUserId= 5;";//使用MySqlCommand发送语句using(MySqlCommand mySqlCommand = new MySqlCommand(strSql, sqlConnection)){//执行ExecuteReader方法using(MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader()){//通过MySqlDataReader读取数据while (mySqlDataReader.Read()){//使用GetXXX获取不同类型的数据Debug.Log(mySqlDataReader.GetString(0));Debug.Log(mySqlDataReader.GetString(1));//Debug.Log(mySqlDataReader.GetString(2));}}}//throw new NotImplementedException();}private void UpdateData(){throw new NotImplementedException();}private int DeletData(){string strSql = "delete from qquser where QQUserId=7;";using (MySqlCommand mySqlCommand = new MySqlCommand(strSql, sqlConnection)){//执行ExecuteNonQuery方法return mySqlCommand.ExecuteNonQuery();throw new NotImplementedException();}}private void InsterData(){//写sql语句//string strSql = "insert into student(name,age) values('虚竹',25);";string strSql = "insert into qquser(QQUserId,QQPassword) values(7,321);";//使用MySqlCommand发送语句using (MySqlCommand mySqlCommand = new MySqlCommand(strSql, sqlConnection)){
//执行ExecuteNonQuery方法mySqlCommand.ExecuteNonQuery();throw new NotImplementedException();}}// Update is called once per framevoid Update(){}
}

查看效果

通过代码中的连接以及增删改查,进入数据库看看有没有生效
虽说是增删改查,但是既然写到了查那就先从查开始吧

将脚本挂载到unity上点击run
在这里插入图片描述
在这里插入图片描述
从控制台打印的数据中可以看到,已经查询到了数据库中的第五条数据

同理,现在来试试增加
在这里插入图片描述
运行后在navicat中刷新,可以看到增加了一条数据

尝试一下把刚加入的数据删除掉
运行后
在这里插入图片描述
可以看到数据库中的数据被删除了

那么我们就完成了增删查的操作,剩下改暂时懒得写了,感兴趣的可以自己尝试一下,只要照猫画虎将sql语句修改一下就可以了

以上。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/179164.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 ZFPlayer 播放视频的注意点

一 静音功能 通过调用系统的AVPlayer.muted来实现的 - (void)setMuted:(BOOL)muted {_muted muted;self.player.muted muted;if (self.audioMuteChange) {self.audioMuteChange(self, muted);}... }播放进度条 /// 滑杆 property (nonatomic, strong, readonly) ZFSliderV…

Django大回顾-2 之 Django的基本操作、路由层,MTV和MVC模型

【1】MTV和MVC模型 MVC与MTV模型 --->所有web框架其实都遵循mvc架构 MVC模型 MVC 本来坨在一起的代码,拆到不同的位置 模型(M:数据层),控制器(C:逻辑判断)和视图(V:用户看到的)三层 他们之间以一种插件式…

Gee教程3.实现前缀树路由

需要完成的目标 使用 Trie 树实现动态路由(dynamic route)解析。支持两种模式:name和*filepath,(开头带有:或者*) 这里前缀树的实现修复了Go语言动手写Web框架 - Gee第三天 前缀树路由Router | 极客兔兔​​​​​​ 中路由冲突的bug。 Trie树简介 之前&#xff0…

selenium工作原理详解

一、什么是WebDriver WebDriver提供了另外一种方式与浏览器进行交互。那就是利用浏览器原生的API,封装成一套更加面向对象的Selenium WebDriver API,直接操作浏览器页面里的元素,甚至操作浏览器本身(截屏,窗口大小&am…

如何在Ubuntu系统上安装YApi

简单介绍 YApi是高效、易用、功能强大的api管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护API,YApi还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的…

【从浅识到熟知Linux】基本指令之mkdir

🎈归属专栏:从浅学到熟知Linux 🚗个人主页:Jammingpro 🐟每日一句:加油努力,这次写完真的要去干饭了! 文章前言:本文介绍mkdir指令用法并给出示例和截图。 文章目录 基本…

ABAP算法 模拟退火

模拟退火算法 算法原理及概念本文仅结合实现过程做简述 模拟退火算法是一种解决优化问题的算法。通过模拟固体退火过程中的原子热运动来寻找全局最优解。在求解复杂问题时,模拟退火算法可以跳出局部最优解获取全局最优解。 模拟退火算法包含退火过程和Metropolis算法…

舞蹈店管理系统服务预约会员小程序效果如何

舞蹈的作用很广,也有大量求学者,每个城市也有大小各异的舞蹈品牌店,他们承接商演、也会教学员、宣传拓展生意等,因此近些年来,随着互联网深入及短视频,舞蹈业市场规模也在增加。 而在门店经营中&#xff0…

Java中关于ArrayList集合的练习题

目录 题目内容​编辑 完整源码 题目内容 根据下图所示数据,定义学生类Student,设置对应的字段并进行封装在Test中,定义ArrayList集合 ,将上述学生对象实例化,并放入集合,定义方法t1,参数为学生类集合&am…

js数组map()的用法

JavaScript Array map() 方法 先说说这个方法浏览器的支持: 支持五大主流的浏览器, 特别注意:IE 9 以下的浏览器不支持,只支持IE 9以上的版本的浏览器 特别注意:IE 9 以下的浏览器不支持,只支持IE 9以上的…

从零开始的c语言日记day37——数组指针练习

一、 取地址数组储存在了*p里,里面储存的是整个数组的地址但本质也是第一个元素的地址解引用后1为4个字节所以就可以打印数组了。但一般不用这种方法 这样更方便一些 打印多维数组 如果不用这样传参,用指针传参怎么做呢? Main里函数的arr表示…

QT基础实践之简易计算器

文章目录 简易计算器源码分享演示图第一步 界面设计第二步 设置槽第三步 计算功能实现 简易计算器 源码分享 链接:https://pan.baidu.com/s/1Jn5fJLYOZUq77eNJ916Kig 提取码:qwer 演示图 第一步 界面设计 这里直接用了ui界面,如果想要自己…

TiDB 7.x 源码编译之 TiDB Server 篇,及新特性详解

本文将介绍如何编译 TiDB Server 源码。以及阐释 TiDB Server 7.x 的部分新特性。 TiDB v7.5.0 LTS 计划于 2023 年 11 月正式 Release,目前代码虽未冻结,但已经可以看到 Alpha 版本的 Code 了,本文代码将以 v7.5.0-alpha 为基准。 TiDB Se…

filebeat 日志收集工具

elk:filebeat日志收集工具和logstash相同。 filebeat是一个轻量级的日志收集工具,所使用的系统资源比logstash部署和启动时使用的资源要小的多。 filebeat可以运行在非Java环境。他可以代理logtash在非java环境上收集日志。 filebeat无法实现数据的过…

设计师福利!2024在线图标设计网站推荐,不容错过的宝藏!

在当今竞争激烈的商业环境中,公司或个人品牌的视觉识别元素已经成为区分你和竞争对手的关键因素之一。一个独特而引人注目的标志可以深深扎根于人们的心中,并在消费者心中建立一个强烈的品牌印象。如果你正在寻找合适的工具来创建或改进你的标志&#xf…

WIFI HaLow技术引领智能互联,打破通信限制

在过去十年里,WIFI技术已在家庭和企业中建立起了庞大的网络,连接了数十亿智能互联设备,促进了信息的迅速传递。然而,当前的WIFI标准存在一些挑战,包括协议范围的限制和整体功能的受限,导致在较远距离进行通…

02-鸿蒙学习之4.0todoList练习

02-鸿蒙学习之4.0todoList练习 代码 /*** 1:组件必须使用Component装饰* 2.Entry 装饰哪个组件,哪个组件就呈现在页面上* 3.被Entry 装饰的入口组件。build()必须有且仅有一个根 ** 容器 ** 组件* 其他的自定义组件,build() 中…

C++学习——类和对象(上)

C学习——类和对象 一、面向对象和面向过程的初步认识二、什么是类 一、面向对象和面向过程的初步认识 我们之前学习了C语言,我们知道 ① C语言:C语言是一门面向过程的语言,关注的是过程,分析出求解问题的步骤,通过函…

Anakki个人网站持续更新中

Anakki-World github: GitHub - Anyuei/anakki 欢迎注册,成为我的盆友

Android Bitmap保存成至手机图片文件,Kotlin

Android Bitmap保存成至手机图片文件,Kotlin fun saveBitmap(name: String?, bm: Bitmap) {val savePath Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).toString()if (!Files.exists(Paths.get(savePath))) {Log.d("保存文…