unity笔记

物体的各种控制方法

using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;public class Componentl : MonoBehaviour
{// Transform transform;GameObject obj;public float floSpeed = 0;public float floRotate = 0;// Start is called before the first frame updatevoid Start(){#region 第一节课// obj = GameObject.Find("Sphere"); // 找到球体//Debug.Log(transform.name); // 名字//Debug.Log(transform.tag); // 标签//Debug.Log(transform.position); // 位置//Debug.Log(transform.rotation); // 角度//Debug.Log(transform.eulerAngles); // 欧拉角//Debug.Log(transform.localEulerAngles); // 局部欧拉角//Debug.Log(transform.localPosition); // 局部位置//Debug.Log(transform.localRotation); // 局部角度//Debug.Log(transform.localScale); // 局部缩放//Debug.Log(transform.parent); // 父物体//Debug.Log(transform.childCount); // 子物体数量//Debug.Log(transform.forward); // 前方//Debug.Log(transform.up); // 上方//Debug.Log(transform.right); // 右边 // 其他常用方法// GameObject.Instantiate(obj, transform.position, transform.rotation); // 复制对象#endregion// 摄像机跟随物体// 控制摄像机Camera.main.transform.SetParent(transform); // 摄像机的transform变成当前物体的transformCamera.main.transform.localPosition = new Vector3(0, 3, -4); // 设置局部位置可以看到物体Camera.main.transform.localEulerAngles = new Vector3(6, 0, 0); // 摄像机稍微往下偏一点}// Update is called once per framevoid Update(){#region 物体移动旋转//transform.Translate(Vector3.right * 0.01f);// 物体移动的第一种方法// transform.position += new Vector3(0, 2, 3); // 新建一个结构体// transform.position += Vector3.up * floSpeed * Time.deltaTime; // Time.deltaTime是每帧运行的时间// 1.在unity怎么调速度   2. 上节课运行了以后物体找不到了// ***********************// 物体移动的第二种方法//transform.Translate(Vector3.up * floSpeed * Time.deltaTime);// 物体旋转// transform.Rotate(Vector3.up * floRotate * Time.deltaTime);// 绕..物体旋转// transform.RotateAround(obj.transform.position, Vector3.up, floRotate * Time.deltaTime);// 盯住看// transform.LookAt(Camera.main.transform);// 其他常用方法// GameObject.Destroy(obj); // 删除游戏对象// Resources.Load(); // 加载游戏资源//  Application.Quit(); // 退出游戏//if (Input.GetKey(KeyCode.W)) {//    floRotate = 3000;//} else {//    floRotate = 0;//} #endregionMove();Look();}// 鼠标控制物体旋转private void Look() {float x = Input.GetAxis("Mouse X") * floRotate * Time.deltaTime;// float y = Input.GetAxis("Mouse Y") * floRotate * Time.deltaTime;transform.Rotate(Vector3.up, x);// transform.Rotate(Vector3.up, y);}// 键盘控制物体平移private void Move() {float x = Input.GetAxis("Horizontal"); // 左右向float z = Input.GetAxis("Vertical"); // 前后向transform.Translate(new Vector3(x, 0, z) * floSpeed * Time.deltaTime);// 世界坐标系移动// cc.Move(new Vector3(x, 0, z) * floSpeed * Time.deltaTime);// cc.isGrounded(); // bool值 判断是否在地面// cc.SimpleMove(new Vector3(x, 0, z) * floSpeed);// 局部坐标系移动// cc.SimpleMove((transform.forward * z + transform.right * x) * floSpeed);}private void FixedUpdate() {}
}

输入系统、角色控制器、碰撞体、刚体、射线

  1. 输入系统 : InputSystem
  2. 角色控制器 CharacterController : 不能同时添加刚体组件
    Move(): 需要乘deltaTime, 不受重力影响, 需要使用isGrounded判断
    SimpleMove(): 不需要乘deltaTime, 不受重力影响
  3. 碰撞体 Collider
    碰撞检测:两方都有Collider, 至少一方有Rigidbody
  4. 刚体 Rigidbody
  5. 射线 Ray
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Componentl2 : MonoBehaviour
{public float floSpeed = 50;public float floRotate = 180;public GameObject Sphere;// CharacterController cc; // 创建一个容器Rigidbody rb;// Start is called before the first frame updatevoid Start(){// cc = GetComponent<CharacterController>(); // 把对象付给它rb = GetComponent<Rigidbody>();//rb.velocity = new Vector3(); // 物体初速度//rb.AddForce(new Vector3()); // 给物体添加力}// Update is called once per framevoid Update(){#region 第二节课// 键盘控制代码//if (Input.GetKey(KeyCode.Escape)) {//    Debug.Log("按住空格");//}//if (Input.GetKeyUp(KeyCode.Space)) {//    Debug.Log("抬起空格");//    transform.Translate(Vector3.up * 10);//}//if (Input.GetKeyDown(KeyCode.Space)) {//    Debug.Log("按下空格");//}// 鼠标控制代码//if (Input.GetMouseButton(0)) {//    Debug.Log("按住鼠标左键");//}//if (Input.GetMouseButtonUp(0)) {//    Debug.Log("抬起鼠标左键");//    transform.Translate(Vector3.up * 10);//}//if (Input.GetMouseButtonDown(0)) {//    Debug.Log("按下鼠标左键");//}// 虚拟控制器控制//Debug.Log(Input.GetAxis("Horizontal"));//Debug.Log(Input.GetAxis("Vertical"));//Debug.Log(Input.GetAxisRaw("Horizontal"));//Debug.Log(Input.GetAxisRaw("Vertical"));// 鼠标转动视角//Input.mousePosition();//Input.GetAxis("Mouse X");//Input.GetAxis("Mouse Y");//Debug.Log(""); #endregionlearnRay();}private void learnRay() {if (Input.GetMouseButtonDown(0)) { // 单击鼠标左键// 创建一道射线Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);// 检测射线// out关键字 会输出一个信息 return只能return一个值,是一个bool值 out返回物体的信息if (Physics.Raycast(ray, out RaycastHit hitInfo)) {Debug.Log(hitInfo.transform.name);Debug.Log(hitInfo.point);//hitInfo.point; // 射线撞击点GameObject shell = Instantiate(Sphere,transform.position,transform.rotation);shell.GetComponent<Rigidbody>().velocity = Vector3.Normalize(hitInfo.point - transform.position) * 20;}}}#region 碰撞检测的方法 碰撞检测的方法 碰撞刚发生//private void OnCollisionEnter(Collision collision) {//    // Destroy(collision.transform.gameObject); //    Debug.Log("刚碰到");//} 碰撞结束//private void OnCollisionExit(Collision collision) {//    Debug.Log("碰完了");//} 碰撞进行时//private void OnCollisionStay(Collision collision) {//    Debug.Log(collision.transform.name);//} private void OnTriggerEnter(Collider other) {rb.AddForce(transform.up * 500); // 撞到以后跳一下//Debug.Log("我进来啦");}private void OnTriggerStay(Collider other) {Debug.Log(other.transform.name);}private void OnTriggerExit(Collider other) {Debug.Log("我走啦");}#endregion
}

Unity音视频系统

using System;
using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;public class Component3 : MonoBehaviour
{AudioSource ads;AudioClip ac;List<AudioClip> acs = new List<AudioClip>();int j = 0;// Start is called before the first frame updatevoid Start(){ads = GetComponent<AudioSource>(); // 找到组件#region AudioSource常用属性和方法//ads.Play(); // 播放//ads.Pause(); // 暂停//ads.UnPause(); // 继续播放//ads.PlayOneShot(); // 播放一次 配合音效使用//ads.volume = 1.0f; // 音量//ads.playOnAwake = true; // 唤醒时播放//ads.mute = false; // 静音//ads.loop = false; // 循环//ads.isPlaying = false; // 是否播放中//ads.clip; // 声音片段 #endregion// 加载音频资源的方法// ac = Resources.Load<AudioClip>("AudioClips/1");for (int i = 0; i < 3; i ++ ) {ac = Resources.Load<AudioClip>("AudioClips/" + (i + 1));acs.Add(ac);}}// Update is called once per framevoid Update(){changeVolume();playMusic();changeMusic();}private void changeVolume() {if (Input.GetKeyDown(KeyCode.M)) {ads.volume += 0.05f;} else if (Input.GetKeyDown(KeyCode.N)) {ads.volume -= 0.05f;}}private void playMusic() {if (Input.GetKeyDown(KeyCode.B)) {if (ads.isPlaying) {ads.Pause(); // 暂停} else {ads.Pause();}}}private void changeMusic() {if (Input.GetKeyDown (KeyCode.Tab)) {ads.clip = acs[j];ads.Play();if (j < acs.Count - 1) {j ++ ;} else {j = 0;}}}
}

学习动画控制器组件

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Component4 : MonoBehaviour
{Animator am;// Start is called before the first frame updatevoid Start(){am = GetComponent<Animator>();StartCoroutine(learnConroutine());// 关闭协程//StopCoroutine(learnConroutine()); //StopAllCoroutines();}// Update is called once per framevoid Update(){//if (Input.GetKeyDown(KeyCode.F)) {   //    am.SetTrigger("pickup"); // 设置触发//    //am.SetBool(); // 设置bool值//    //am.SetFloat(); // 设置浮点数//    //am.SetInteger(); // 设置整数值//}}// Unity中协程的使用,采用的是yield return ,返回值是一个协程器// 协程:介于进程和线程之间的一个定义,简单理解为一段一段的程序IEnumerator learnConroutine() { // 协程器// 技能CDwhile (true) {if (Input.GetKeyDown(KeyCode.F)) {am.SetTrigger("pickup"); // 设置触发yield return new WaitForSeconds(5); } else {yield return null;}...//yield return new WaitForSeconds(5); // 过5秒再执行...//yield return null; // 把程序变成要的之前先执行,下次再执行的话,到要的之后再执行}}}

学习GUI系统

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI; // 旧版GUI命名空间
using TMPro; // 新版GUI命名空间
using UnityEngine.SceneManagement; // 场景管理
using System;public class Component5 : MonoBehaviour
{// 给GUI对象赋值的两种方式:// 第一种方式:getcomponent//Text t;// 第二种方式:public + 外界赋值public Text t;public Image image;public RawImage rawImage;public Button button;public InputField inputField;public Toggle toggle;public Slider slider;public Scrollbar scrollbar;public Dropdown dropdown;//TextMeshPro tmp;// Start is called before the first frame updatevoid Start(){// 文本Text//t.GetComponentInChildren<Text>(); t.text = "好好听课别玩了"; // 更改文本内容//t.font; // 字体// 图片 Image//image.sprite = Resources.Load<Sprite>("") as Sprite; // 更改图片// 原始图片 RawImagerawImage.texture = Resources.Load<Texture>("Images/bg2") as Texture; // 更改背景图片// 按钮 Button// 调用方法的第一种方式:public + Unity中设置// 调用方法的第二种方式:AddListenerbutton.onClick.AddListener(clickButton); // 添加监听 保证没有很多对外接口// 文本输入框 InputField//inputField.text; // 输入的内容// 切换 Toggletoggle.onValueChanged.AddListener(clickToggle); // 改变值的写法//toggle.isOn; // 不改变值// 滑动条 Sliderslider.onValueChanged.AddListener(changeSlider);//slider.value;// 滚动条 Scrollbarscrollbar.onValueChanged.AddListener(changeSlider);//scrollbar.value;// 下拉列表 DropdownInitDropdown();dropdown.onValueChanged.AddListener(changeDropdown);}public void InitDropdown() {dropdown.options.Clear(); // 清除列表Dropdown.OptionData opl = new Dropdown.OptionData();opl.text = "比尔吉沃特";dropdown.options.Add(opl);Dropdown.OptionData op2 = new Dropdown.OptionData();op2.text = "德玛西亚";dropdown.options.Add(op2);}void changeDropdown(int intValue) {switch (intValue) {case 0:Debug.Log("登录比尔吉沃特");break;case 1:Debug.Log("登录德玛西亚");break;default:break;}}void clickButton() {if (inputField.text == "123") {Debug.Log("回答正确");} else {Debug.Log("回答错误");}}void clickToggle(bool isOn) { // 必须带bool参数if (isOn) {Debug.Log("静音");} else {Debug.Log("播放");}}void changeSlider(float floValue) {if (floValue < 0.3) {Debug.Log("血量太低了");} else {Debug.Log("血量健康");}}
}

学习Unity事件系统EventSystem

学习Unity事件系统EventSystem
IPointr ... Handler // 指针事件接口
I ... DragHandler // 拖拽事件接口

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems; // 事件系统命名空间
using UnityEngine.UI;
using TMPro; // 新版文本命名空间public class Component6 : MonoBehaviour, IPointerClickHandler, IDragHandler, IPointerEnterHandler, IPointerExitHandler {// 新版文本的类名称//TMP_Text;//TMP_InputField;//TMP_Dropdown dropdownpublic void OnDrag(PointerEventData eventData) { // 拖拽//transform.position = Input.mousePosition;transform.position = eventData.position; // 两个都可以实现}public void OnPointerClick(PointerEventData eventData) { // 点击Debug.Log("点击图片");}public void OnPointerEnter(PointerEventData eventData) { // 进入GetComponent<Image>().color = Color.blue;}public void OnPointerExit(PointerEventData eventData) { // 退出GetComponent<Image>().color = Color.white;}
}

控制声音的GUI组件、退出游戏

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;public class Component7 : MonoBehaviour
{// 控制声音的GUI组件public Toggle toggle;public Slider slider;AudioSource ads;// 退出游戏public Button button;// Start is called before the first frame updatevoid Start(){ads = GetComponent<AudioSource>();toggle.onValueChanged.AddListener(PlayMusic);slider.onValueChanged.AddListener(ChangeVolunme);button.onClick.AddListener(QuitGame);}private void QuitGame() {Application.Quit();}private void ChangeVolunme(float arg0) {ads.volume = arg0;}private void PlayMusic(bool arg0) { if (arg0) {ads.Pause();} else {ads.UnPause();}}
}

学习数据库操作

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using MySql.Data.MySqlClient; // MySQL连接命名空间
using System;
using Org.BouncyCastle.Security;public class Component8 : MonoBehaviour
{// 服务器、端口号、数据库、用户名、密码、数据格式...string strConn = "server = localhost; port = 3306; database = dbforcsharp; username = root; password = LiuYue20030214; charset=utf8;";// 创建MySQL连接器MySqlConnection sqlConnection;// Start is called before the first frame updatevoid Start(){// 操作数据库的第一步:try {sqlConnection = new MySqlConnection(strConn);sqlConnection.Open(); // 连接数据库Debug.Log(sqlConnection.State); // 输出状态//1.增 insert//int i1 = InsertData();//Debug.Log(i1);//2.删 delete//int i2 = DeleteData();//Debug.Log(i2);//3.改 update//int i3 = UpdateData();//Debug.Log(i3);// 4. 查selectData();} catch (System.Exception) {throw;} finally {if (sqlConnection.State.ToString() == "Open") {// 操作数据库的最后一步sqlConnection.Close();Debug.Log(sqlConnection.State);}}}/// <summary>/// 查询某一行数据/// </summary>private void selectData() {// 第一步 写SQL语句string strSql = "select * from peo where name = '虚竹';";// 第二步 使用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));}}}}/// <summary>///  所有的非查询操作都是一样的步骤/// </summary>private int InsertData() {// 第一步 写SQL语句string strSql = "insert into peo (name, age) values ('虚竹', 25);";// using降低内存占用// 第二步 使用MySQLCommand发送语句using (MySqlCommand mySqlCommand = new MySqlCommand(strSql, sqlConnection)) {// 第三步 执行ExecuteNonQuery方法 执行非查询操作 返回int 当数字不为0 表示第i行发生更改return mySqlCommand.ExecuteNonQuery();}}private int DeleteData() {// 第一步 写SQL语句string strSql = "delete from peo where name = '刘悦';"; // where 其中// using降低内存占用// 第二步 使用MySQLCommand发送语句using (MySqlCommand mySqlCommand = new MySqlCommand(strSql, sqlConnection)) {// 第三步 执行ExecuteNonQuery方法 执行非查询操作 返回int 当数字不为0 表示第i行发生更改return mySqlCommand.ExecuteNonQuery();}}private int UpdateData() {// 第一步 写SQL语句string strSql = "update peo set name = '张三疯' where name = '张三丰';";// using降低内存占用// 第二步 使用MySQLCommand发送语句using (MySqlCommand mySqlCommand = new MySqlCommand(strSql, sqlConnection)) {// 第三步 执行ExecuteNonQuery方法 执行非查询操作 返回int 当数字不为0 表示第i行发生更改return mySqlCommand.ExecuteNonQuery();}}
}

实现登录和注册功能

  • 登录: 获取输入框内容 -> 连接并打开数据库 -> 查找用户名和密码 -> 关闭数据库
    Y -> 对比用户名和密码 -> Y -> 登录成功
    Y -> 对比用户名和密码 -> N -> 提示登录失败
    N -> 提示登录失败
  • 注册: 获取输入框内容 -> 连接并打开数据库 -> 查找用户名和密码
    Y -> 关闭数据库 -> 提示用户已存在
    N -> 添加用户名和密码 -> 关闭数据库 -> 注册成功

  • 分解: 按照顺序分解成一个一个模块, 不一定优
  1. 连接并打开数据库
  2. 查找用户名和密码
  3. 关闭数据库
  4. 对比用户名和密码
  5. 添加用户名和密码

  • 接口:
  1. 登录 1234
  2. 注册 1235

  • 对象: GUI:输入框2 按钮2 文本

  • 连接数据库: MySqlConnection, ...command, ...reader

  • 字符串: 连接数据库, 用户名2, 密码2(用户输入+数据库)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using MySql.Data.MySqlClient;
using TMPro;
using UnityEngine.UI;
using System;
using UnityEngine.SceneManagement;public class Component9 : MonoBehaviour
{// 创建GUI// 新版 待改 -> 已改旧版public InputField inputField1;public InputField inputField2;public Button button1;public Button button2;public Text tip;// 服务器、端口号、数据库、用户名、密码、数据格式...string strConn = "server = localhost; port = 3306; database = dbforcsharp; username = root; password = LiuYue20030214; charset=utf8;";// 创建MySQL连接器MySqlConnection sqlConnection;string username;string password;string usernameDB;string passwordDB;// 事件 监听 执行// Start is called before the first frame updatevoid Start(){button1.onClick.AddListener(Login);button2.onClick.AddListener(Registrations);}public void Login() {username = inputField1.text;password = inputField2.text;//1.连接并打开数据库ConnectDB();//2.查找用户名和密码SelectDB(username);//3.关闭数据库CloseDB();//4.对比用户名和密码CompareDB();}public void Registrations() {username = inputField1.text;password = inputField2.text;//1.连接并打开数据库ConnectDB();//2.查找用户名和密码// 我写的//if (username == usernameDB) {//    tip.text = "用户名已存在, 请重新输入";//} else {//    int i = InsertDB(username, password);//    CloseDB();//    tip.text = "创建成功";//}// 老师写的if (SelectDB(username)) {tip.text = "用户名已存在";} else {// 3. 添加用户名和密码if (InsertDB(username, password) == 1) {tip.text = "注册成功";} else {tip.text = "注册失败";}}// 4. 关闭数据库CloseDB();}private void ConnectDB() {try {sqlConnection = new MySqlConnection(strConn);sqlConnection.Open(); // 连接数据库Debug.Log(sqlConnection.State); // 输出状态} catch (Exception) {throw;}}private bool SelectDB(string n) {bool isExist = false;// 第一步 写SQL语句string strSql = "select * from user where username = '" + n + "';";// 第二步 使用MySQLCommand发送语句using (MySqlCommand mySqlCommand = new MySqlCommand(strSql, sqlConnection)) {// 第三步 执行ExecuteReader方法 using (MySqlDataReader mysqlDataReader = mySqlCommand.ExecuteReader()) {// 第四步 通过MySQLDataReader读取数据while (mysqlDataReader.Read()) {isExist = true;usernameDB = mysqlDataReader.GetString(0);passwordDB = mysqlDataReader.GetString(1);}}}return isExist;}private void CloseDB() {if (sqlConnection.State.ToString() == "Open") {// 操作数据库的最后一步sqlConnection.Close();Debug.Log(sqlConnection.State);}}private void CompareDB() {if (usernameDB == username && passwordDB == password) {// tip.text = "登录成功";SceneManager.LoadScene(1);// SceneManager.LoadScene("Scene1");} else {tip.text = "登录失败";}}private int InsertDB(string u, string p) {// 第一步 写SQL语句string strSql = "insert into user (username, password) values ('" + u + "', '" + p + "');";// using降低内存占用// 第二步 使用MySQLCommand发送语句using (MySqlCommand mySqlCommand = new MySqlCommand(strSql, sqlConnection)) {// 第三步 执行ExecuteNonQuery方法 执行非查询操作 返回int 当数字不为0 表示第i行发生更改return mySqlCommand.ExecuteNonQuery();}}
}

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

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

相关文章

JJJ:PCI / PCIE 的一些术语和概念

转发事务和非转发事务 在PCIe&#xff08;Peripheral Component Interconnect Express&#xff09;总线中&#xff0c;存在两种类型的事务&#xff1a;转发事务和非转发事务。 1、转发事务&#xff08;Forwarded Transactions&#xff09;&#xff1a;转发事务是指从一个PCIe…

11 传输层协议

1、传输层里比较重要的两个协议&#xff0c;一个是 TCP&#xff0c;一个是UDP 对于不从事底层开发的人员来讲&#xff0c;或者对于开发应用的人来讲&#xff0c;最常用的就是这两个协议。 2、TCP 和 UDP 有哪些区别&#xff1f; 1.TCP 是面向连接的&#xff0c;UDP 是面向无…

视频号小店所需资金明细,2023最新费用详解!

我是电商珠珠 22年7月视频号团队开始发展自己的电商平台-视频号小店。截止到目前为止&#xff0c;也才发展了一年的时间。 新平台预示着新机会&#xff0c;在这个平台内可发展的空间很大&#xff0c;利润比较高。 对于新手来说一般可以做到5w的数据&#xff0c;今天就来给大…

P1903 [国家集训队] 数颜色 / 维护队列

带修改的莫队 带修改的莫队就是在基础莫队的基础上增加了一维属性&#xff0c;之前只需要维护l&#xff0c;r现在还需要维护一下时间t&#xff0c;排序还是先按照左端点块儿号排序&#xff0c;然后右端点块儿号排序&#xff0c;最后按时间排序。其它的都是差不多的。 #include…

无人机航迹规划:小龙虾优化算法COA求解无人机路径规划MATLAB(可以修改起始点,地图可自动生成)

一、小龙虾优化算法COA 小龙虾优化算法&#xff08;Crayfsh optimization algorithm&#xff0c;COA&#xff09;由Jia Heming 等人于2023年提出&#xff0c;该算法模拟小龙虾的避暑、竞争和觅食行为&#xff0c;具有搜索速度快&#xff0c;搜索能力强&#xff0c;能够有效平衡…

掌握未来技术趋势:深度学习与量子计算的融合

掌握未来技术趋势&#xff1a;深度学习与量子计算的融合 摘要&#xff1a;本博客将探讨深度学习与量子计算融合的未来趋势&#xff0c;分析这两大技术领域结合带来的潜力和挑战。通过具体案例和技术细节&#xff0c;我们将一睹这两大技术在人工智能、药物研发和金融科技等领域…

Maven多环境下 active: @profileActive@报错问题解决

1.报错&#xff1a; Caused by: org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token found character that cannot start any token.(Do not use for indentation) 2.解决办法&#xff1a; 在主pom的文件下&#xff0c;重新加载&#xff1a;

软件测试-根据状态迁移图设计测试用例

测试用例状态迁移图 许多需求用状态机的方式来描述&#xff0c;状态机的测试主要关注状态转移是否正确。对于一个有限状态机&#xff0c;通过测试验证其在给定的条件内是否能够产生需要的状态变化&#xff0c;有没有不可达的状态和非法的状态&#xff0c;是否可能产生非法的状…

算法通关村第六关|白银|二叉树的层次遍历【持续更新】

1.二叉树基本的层序遍历 仅仅遍历并输出全部元素。 List<Integer> simpleLevelOrder(TreeNode root) {if (root null) {return new ArrayList<Integer>();}List<Integer> res new ArrayList<Integer>();LinkedList<TreeNode> queue new Lin…

newstarctf2022week2

Word-For-You(2 Gen) 和week1 的界面一样不过当时我写题的时候出了个小插曲 连接 MySQL 失败: Access denied for user rootlocalhost 这句话印在了背景&#xff0c;后来再进就没了&#xff0c;我猜测是报错注入 想办法传参 可以看到一个name2,试着传参 发现有回显三个字段…

获取淘宝商品详情APi

以下是使用Python获取淘宝商品详情的代码示例&#xff1a; python复制代码 import requests import json def get_taobao_product_details(url): # 发送HTTP请求获取商品详情页面内容 response requests.get(url) # 将页面内容转换为UTF-8编码的字符串 response.encoding u…

51基于matlab模拟退火算法矩形排样

基于matlab模拟退火算法矩形排样&#xff0c;基于最低水平线算法完成矩形板材下料优化&#xff0c;输出最优剩料率和最后的水平线&#xff0c;可替换自己的数据进行优化&#xff0c;程序已调通&#xff0c;可直接运行。 51matlab模拟退火算法矩形排样 (xiaohongshu.com)

Unity 实现文字过长显示省略号

为了整体效果&#xff0c;当文字过长时&#xff0c;我们就会把超出范围的文字弄成省略号。 要实现文字过长显示省略号&#xff0c;只需要使用TextMeshPro&#xff0c;并设置Overflow属性为Ellipsis即可。 如下图&#xff1a; 记。

【广州华锐互动】VR综合布线虚拟实验教学系统

随着科技的不断发展&#xff0c;虚拟现实&#xff08;VR&#xff09;技术已经逐渐渗透到各个领域&#xff0c;为人们的生活和工作带来了前所未有的便利。在建筑行业中&#xff0c;VR技术的应用也日益广泛&#xff0c;尤其是在综合布线方面。 广州华锐互动开发的VR综合布线虚拟实…

【Git】Git基础命令操作速记

【Git】Git基础命令操作速记 文章目录 【Git】Git基础命令操作速记1. 初始化1.1 设置用户名和邮箱1.2 初始化仓库 2. 基础命令2.1 add和commit2.2 reset2.3 查看日志2.4 删除/找回本地仓库文件2.5 找回暂存区文件2.6 diff命令(找不同) 3. 分支命令3.1 查看分支3.2 创建分支3.3 …

ArcGIS Pro设置谷歌影像(无水印)

1 打开软件&#xff0c;命名工程文件&#xff0c;底图&#xff08;Basemap&#xff09;选择【天地图】。 2 点击【视图&#xff08;View&#xff09;】——>【目录面板&#xff08;Catalog pane&#xff09;】&#xff0c;在【门户&#xff08;Portal&#xff09;】中搜索【…

Rust笔记【3】

使用指针的场景&#xff1a; 1&#xff09;编译时类型大小未知&#xff0c;用于定义struct中递归引用自身类型。 2&#xff09;移动大量数据&#xff0c;避免赋值。 3&#xff09;多态 Rust中几种只能指针 Box<T> Rc<T> RefCell<T>Box 1&#xff09;b是Bo…

TypeScript_抓取酒店价格数据

我们导入所需的库&#xff0c;包括http和request。然后&#xff0c;我们定义一个函数&#xff0c;该函数接受一个URL作为参数。 import http from http; import request from request;const fetchHotelPrices (url: string) > {// ... }接下来&#xff0c;我们使用request…

redis: 记录一次线上redis内存占用过大问题解决过程

引言 记录一次线上redis占用过大的排查过程&#xff0c;供后续参考 问题背景 测试同事突然反馈测试环境的web系统无法登陆&#xff0c;同时发现其他子系统也存在各类使用问题 排查过程 1、因为首先反馈的是测试环境系统无法登陆&#xff0c;于是首先去查看了登陆功能的报错…

Linux 进程控制

进程地址空间的收尾 task_struct有一个结构体成员叫mm_struct&#xff0c;也就是进程地址空间。 为什么要有进程地址空间&#xff1a;进程内存地址管理&#xff0c;保护物理内存&#xff0c;进行权限审查&#xff0c;从无序变有序&#xff0c;让我们从统一的视角看待进程代码…