自由学习记录(41)
代理服务器的核心功能是在客户端(用户设备)和目标服务器(网站/资源服务器)之间充当“中介”,具体过程如下:
代理服务器的工作流程
当客户端希望访问某个网站(比如 example.com)时:
-
客户端向代理服务器发送请求
- 用户(浏览器/应用)发送 HTTP 或 HTTPS 请求,而不是直接访问
example.com,而是先把请求发送到代理服务器。 - 这个请求通常包含 目标地址(example.com)、用户数据(如 Cookie)、HTTP 头部(如 User-Agent)。
- 用户(浏览器/应用)发送 HTTP 或 HTTPS 请求,而不是直接访问
-
代理服务器接收请求并解析
- 代理服务器解析请求,看它是要访问哪个网站,是否已经有缓存数据。
- 如果是 HTTP 请求,代理服务器可以完全读取请求的内容。
- 如果是 HTTPS 请求,通常代理服务器只能看到目标地址,无法直接查看数据(除非使用中间人代理,稍后讲)。
-
代理服务器处理请求
- 代理服务器决定如何处理这个请求,有几种可能:
- 缓存命中:如果这个资源已经被缓存,代理服务器可以直接返回缓存内容,而不去请求目标服务器。
- 转发请求:如果没有缓存,代理服务器就会 以自己的身份 代表用户去访问
example.com。 - 内容过滤:少部分代理服务器会检查 URL,如果是被禁止的网站(如某些公司禁止访问社交网站),代理服务器可能会拦截请求,返回错误信息。
- 代理服务器决定如何处理这个请求,有几种可能:
-
代理服务器向目标服务器发送请求
- 如果代理决定转发请求,它会 使用自己的 IP 地址 向
example.com发送 HTTP 请求,而不是使用客户端的 IP。 - 在目标服务器看来,这个请求是来自代理服务器,而不是来自真实的客户端。
- 如果代理决定转发请求,它会 使用自己的 IP 地址 向
-
目标服务器返回响应
- 目标服务器(
example.com)收到代理服务器的请求,生成响应(如 HTML 页面、JSON 数据等)。 - 这个响应被发回代理服务器。
- 目标服务器(
-
代理服务器处理响应
- 代理服务器可能会:
- 缓存响应:如果这个内容可以重复使用,它可能会存到本地缓存,以便下次有人请求时可以更快地返回数据。
- 修改响应:某些代理可能会修改返回的内容,比如给网页加上广告,或者删除某些敏感内容。
- 代理服务器可能会:
-
代理服务器把响应转发给客户端
- 最终,代理服务器会把响应返回给客户端,客户端认为自己是直接访问了
example.com,但实际上整个过程是通过代理完成的。
- 最终,代理服务器会把响应返回给客户端,客户端认为自己是直接访问了
-----------------
unity的Toolbox插件
上方的输入栏可以输入提示词,输入好之后,点击下方的Generate会根据这段话自动生成脚本。也可以按快捷键Ctrl+Enter或者Cmd+Return
右侧的两个按钮可以查看上一段提示词和下一段提示词。
点击AdavancedOptions可以设置几个参数。
Temperature
脚本生成的随机度。
数值越大,脚本生成得就越随机。
数值为0,则脚本的生成是严格固定的。
Timeout
向chatGPT发送信息时,是否考虑超时。
勾选后,下方会出现一个Seconds参数,例如它的值是90,则表示如果90秒过后,chatGPT也没有回应我们,则视为超时,此时会断开
连接。
Save to histroy
勾选后,我们每次写的提示词都会被记录下来,可以点击右侧的“History”查看。
取消勾选,则我们每次写的提示词都不会被记录下来。
-------------
一般也不是作者,不会改别人代码,容易出问题
AICommand,,2021用的好像有点问题,不能在Project Setting里看到生成的AI Command一栏
1、点击“Run"按钮,则会把我们输入的提示词以消息的形式发送给ChatGPT
2、ChatGPT回复我们消息
3、利用回复的代码内容生成一个临时的C#文件
4、通过编辑器扩展的方法来执行这个C#文件夹
-----
所以可以做的是对场景上的物体增删查改,对文件夹增删查改

通过生成临时文件,在unity中达到修改的作用

删除临时文件

1. 域名本质上只是一个“地址”
example.com和example.net只是不同的“地址”指向不同的服务器,但它们可以运行完全相同的网站代码。- 只要服务器上有网站的副本,并且 DNS 指向正确的 IP,它就是一个新的站点。
2. 访问限制、SEO 和封锁
- 某些国家/地区会封锁特定域名(如
chat.openai.com),但新域名(如chatgpt-cn.com)可能不会被立即封锁。 - 搜索引擎会认为
example.com和example.net是两个不同的网站,它们的搜索排名和可信度也可能不同。 - 一些镜像站利用这个原理,在旧域名被封锁后,换新域名重新上线。
使用GPT接入unity

--------
----------
-----------
private是设置给自己的,这样一想这些修饰符就有意思了
----
Trigger要保持default层,这样才可以被玩家检测到,父物体则要保持在item层,这样才可以和Ground 层正常的产生碰撞检测


掉落的物品,用这样的prefab去做好,然后更换里面的Item的信息

-
equipment/equipmentDictionary→ 存储角色装备equipment(列表)存储 当前角色已装备的物品。equipmentDictionary(字典)提供 快速查询装备的功能。
-
inventory/inventoryDictionary→ 存储背包中的物品inventory(列表)存储 玩家背包里的物品(顺序存储)。inventoryDictionary(字典)提供 查找某个物品的快速方法。
-
stash/stashDictionary→ 存储仓库(可能是存放物品的临时存储)stash(列表)存储 仓库里的物品。stashDictionary(字典)提供 快速查找仓库中的物品。

首先都是掉落物,都是可以拾取的,
但作用不同,分为不同的种类,材料是只能用来消耗,装备是可以用来穿脱,药品也是可消耗,但影响角色的数值
在分出ItemData_Equipment之后,这个类里都是共同拥有可穿脱,影响角色的数值的方法实现
而在这里分出枚举,则是基于常规的游戏的概念设计,是一种简单的概念区分,而功能依然相同,固用枚举达到小范围划分

在 Unity 的 Assets 菜单下 自定义 "Create"(创建) 选项,让你创建自定义的 ScriptableObject、Prefab、Texture 或其他自定义资源。
using UnityEngine;[CreateAssetMenu(fileName = "NewItem", menuName = "Inventory/Item")]
public class Item : ScriptableObject
{public string itemName;public Sprite icon;public int value;
}
using UnityEditor;
using UnityEngine;public class CustomPrefabCreator
{[MenuItem("Assets/Create/Custom Prefab", false, 50)]static void CreatePrefab(){GameObject newObject = new GameObject("CustomPrefab");PrefabUtility.SaveAsPrefabAsset(newObject, "Assets/NewPrefab.prefab");Object.DestroyImmediate(newObject);}
}
------------

每次修改物品数值之后,都直接调用这个方法,传入item 的info类,在slot 上展示,如果slot不够了则自动添加新的slot游戏对象到场景,然后传入item的info类,把item的图片和数量信息来修改自身物体上的 view
MVC模式(Model-View-Controller)

TMP 需要额外的 .asset 文件(字体资源文件)
Unity 提供了自动转换工具
Window -> TextMeshPro -> TextMesh Pro UGUI Converter- 一键转换 旧 UI
Text→TMP_Text!
为什么需要额外的 TMP_FontAsset 文件?
- 传统
Text直接使用.ttf/.otf(TrueType / OpenType 字体)。 TMP需要转换.ttf/.otf生成 字体图集(Font Atlas):TMP_FontAsset预计算 字符数据,渲染时不再依赖外部.ttf。- 好处:字体加载更快,减少性能消耗。
🌟 生成 TMP 字体的方式
- 导入
.ttf/.otf - 右键 →
Create -> TextMeshPro -> Font Asset - 生成
TMP_FontAsset(*.asset) - 在
TMP组件里使用这个字体
动态/静态字体模式
TMP允许创建静态字体(预渲染) 或 动态字体(运行时生成),适用于不同项目需求。
TextMeshPro生成 预计算的字体图集(Font Atlas),在 GPU 端渲染,避免每次动态生成字体。- 这减少了
Draw Call,提高性能,特别适用于移动设备。

TMP 使用 Signed Distance Field (SDF) 渲染字体,确保字体在缩放时不会模糊或失真。
为什么 Unity 需要 TextMeshPro (TMP)?
在 Unity 早期的 UI 设计中,默认使用 UI Text(即 Text 组件)来显示文字,它直接依赖于系统字体,但有以下问题:
- 字体质量差:默认
Text组件在缩放时字体会变模糊,没有清晰的边缘。 - 性能问题:Unity
Text组件在 UI 里动态生成字体纹理(Font Atlas),影响渲染性能。 - 缺少高级排版功能:例如富文本、阴影、描边、间距控制等,默认
Text很难实现。
所以,Unity 引入了 TextMeshPro (TMP) 作为 替代方案,提供更高质量、更强性能的文本渲染。
| 功能 | Unity 旧 Text | TextMeshPro (TMP) |
|---|---|---|
| 字体清晰度 | 模糊,放大失真 | 🔥 清晰,矢量字体 |
| 性能 | CPU 生成位图,低效 | 🔥 GPU 直接渲染,优化字体管理 |
| 排版 | 仅支持基本文本 | 🔥 支持阴影、描边、字距 |
| 富文本 | 基础 <b><i> | 🔥 完整富文本 + 超链接 |
| 多语言支持 | 仅支持系统字体 | 🔥 可自定义字体资源,支持 Unicode |
---------------------
using UnityEngine;
using UnityEngine.UI;
using System.Collections.Generic;public class InventoryUI : MonoBehaviour
{public GameObject itemSlotPrefab; // 物品 UI 预制体public Transform inventoryPanel; // 背包 UI 父对象public Inventory inventory; // 关联的 Inventory 组件void Start(){UpdateUI();}// 更新 UI 显示public void UpdateUI(){// 清空旧 UIforeach (Transform child in inventoryPanel){Destroy(child.gameObject);}// 遍历背包中的物品foreach (Item item in inventory.items){GameObject slot = Instantiate(itemSlotPrefab, inventoryPanel);slot.transform.Find("ItemImage").GetComponent<Image>().sprite = item.itemIcon;slot.transform.Find("ItemQuantity").GetComponent<Text>().text = item.quantity.ToString();}}
}

在 C# 中,普通的 class 是不能直接在 Unity Inspector 面板显示的。但是,如果你给 类 添加 [System.Serializable],Unity 就能在 Inspector 中显示它的内容。
------
- 所有物品 UI 显示在
Grid Layout里,自动排列在同一地方。 - UI 和数据分离:
Inventory负责数据,InventoryUI负责 UI 动态更新。 - 支持动态添加、合并、移除物品,并自动更新 UI。
🎯 这样就可以做出一个合理的 "背包系统",并让多个物体在同一地方显示!
public void UseItem(string itemName)
{Debug.Log($"使用了 {itemName}");inventory.RemoveItem(itemName, 1);UpdateUI();
}
在 Unity UI 里,创建 ItemSlot UI 预制体:
ItemImage(Image组件):用于显示 物品图标。ItemQuantity(Text组件):用于显示 物品数量。
在 InventoryUI 中,所有的 ItemSlot UI 预制体都实例化在 inventoryPanel(Grid Layout)里,这样它们会整齐排列在 一个 UI 界面,例如:
🌟 Grid Layout Group
- 在
Canvas中创建 Panel,命名为InventoryPanel。 - 给
InventoryPanel添加 Grid Layout Group 组件:- Cell Size 调整为合适大小。
- Spacing 控制间距。
- Constraint → Fixed Column Count 让物品按列排列。
这样,所有 ItemSlot 物品 UI 都会自动排列在一个地方,形成一个整齐的背包界面。
----------------
用ItemData继承 了ScriptableObject

| 方案 | 适用场景 | 影响范围 | 物理性能 | 复杂度 |
|---|---|---|---|---|
| Layer-Based 碰撞矩阵 | 适用于全局层级控制 | 全局 | 高效 | 低 |
Collider + IsTrigger | 只想检测但不碰撞 | 仅触发检测 | 高效 | 低 |
Physics.IgnoreCollision | 仅忽略特定对象间的碰撞 | 局部 | 适中 | 中 |
Physics.IgnoreLayerCollision | 动态控制整层碰撞忽略 | 整层 | 适中 | 中 |
玩家的collider---敌人collider不产生碰撞挤压只检测,而敌人的collider依然正常检测地形
方法二void OnTriggerEnter(Collider other)
{if (other.CompareTag("Enemy")){Debug.Log("检测到敌人,但不会发生碰撞");// 在这里处理敌人检测逻辑}
}
-----------------------
方法三void Start()
{Collider playerCollider = GetComponent<Collider>();Collider enemyCollider = GameObject.FindWithTag("Enemy").GetComponent<Collider>();if (playerCollider && enemyCollider){Physics.IgnoreCollision(playerCollider, enemyCollider);}
}
-----------------------
方法四void Start()
{Physics.IgnoreLayerCollision(LayerMask.NameToLayer("PlayerIgnoreEnemy"), LayerMask.NameToLayer("Enemy"), true);
}
基础的
| Manager 类型 | 作用 | 例子 |
|---|---|---|
| GameManager | 管理游戏状态 | 控制分数、关卡、场景 |
| AudioManager | 管理音效 | 播放音乐、控制音量 |
| EnemyManager | 控制敌人 | 生成、删除敌人 |
| UIManager | 负责 UI 交互 | 更新分数、显示 UI |
| SceneManager | 控制场景 | 切换、加载资源 |
AudioClip randomClip = musicClips[Random.Range(0, musicClips.Length)];
audioSource.PlayOneShot(randomClip);
Vector3 spawnPosition = new Vector3(Random.Range(-10, 10), 0, Random.Range(-10, 10));
Instantiate(enemyPrefab, spawnPosition, Quaternion.identity);
Random.InitState(12345); // 设置随机种子,保证结果可复现
生成随机旋转
随机粒子效果(如爆炸碎片)
Vector2 randomPoint = Random.insideUnitCircle; // 返回一个在单位圆内的随机点
Vector3 randomPoint = Random.insideUnitSphere * 5; // 半径 5 的球体范围内随机点
int randomInt = Random.Range(1, 10); // 生成 1~9 的整数(不包含 10)
float randomFloat = Random.Range(1.0f, 10.0f); // 生成 1.0~10.0 之间的浮点数(包含 10.0)
- 随机敌人生成
- 随机掉落物
- 随机天气、地图
- 随机 AI 行为
- 随机动画、特效
----------
对于游戏内技能是否可使用的,只是一个简单的对接
这应该是UI部分的管理
我可以把学习的技能拖动到板块区域,留下技能的图片,然后在使用后保持冷却的动画变化
然后对应到技能拖动的问题上,那要如何解决呢
对于skill类的管理,,每个skill都要有自己的可控开关,做到关了就不能使用


多场景同时加载
如果你想让多个游戏共用某些场景(比如 UI 场景),可以用 LoadSceneMode.Additive:
SceneManager.LoadScene("NewScene", LoadSceneMode.Additive);
这样 当前场景不会被卸载,可以让多个游戏共用 UI、音乐管理器等资源。
-----------------
适合在一个 Unity 项目里切换多个游戏场景: 小游戏合集(Mini Game Collection)(如 WarioWare)
游戏内置不同模式(如 FPS + 竞速 + 解谜)
元宇宙式的游戏(多个独立场景但共享数据)
但如果是完全不同的游戏(比如 FPS + 卡牌游戏 + 2D 平台游戏),建议拆分成多个项目开发,否则维护成本会很高。
合理划分 Resources 目录,不要放太多无关资源
不同游戏可能有不同的游戏机制、UI 交互、输入处理,如果全部放在一个项目里,可能会导致代码难以维护。
- 使用
ScriptableObject作为全局配置,管理不同场景的游戏状态。 - 模块化开发:
- 让 每个游戏的核心逻辑封装成独立的 Manager,避免不同游戏的代码互相干扰。
- 使用不同的
GameManager,每个场景加载时,自动激活对应的GameManager。
-----------
DontDestroyOnLoad 来保留主管理器对象,防止每次切换场景都重新初始化所有数据。
- 每次切换场景 都需要 卸载当前场景,再加载新场景,如果场景资源太大,可能会导致加载卡顿。
- 在移动端或 WebGL,大场景切换时可能会触发内存回收(GC),导致掉帧。
优化方案:
- 异步加载场景(
SceneManager.LoadSceneAsync()):
IEnumerator LoadNewScene(string sceneName)
{AsyncOperation asyncLoad = SceneManager.LoadSceneAsync(sceneName);while (!asyncLoad.isDone){yield return null;}
}
-----------
- 每个场景都会加载自己的资源(贴图、模型、音频等),如果不优化,可能会导致大量内存消耗,尤其是在场景切换时容易引发卡顿或崩溃。
- 多个游戏共用的资源 可能会重复加载,增加RAM 和 VRAM 占用。
优化方案:
- 使用 Addressables 资源管理系统(推荐) → 让不同场景的资源按需加载,不会一次性占满内存。
- 使用 AssetBundle → 可以让不同场景的资源独立存储,减少重复占用。
通过list可以存储键位,每一帧按下了什么键,进行判断

---路子选错了---
单例模式的确保,,如果在某些情况下,场景切换下,额外创建了PlayerManager游戏物体,那就自我销毁

更需要注意的是,我新加的这些代码,相对原来的是否会产生影响,如果可以,则尽量不要影响,所以剥离代码,在后期设置一个PlayerManager类管理之类的,对原来的并不会产生影响
所以这些步骤就看自己的认知是否已经认为这没有问题了

Interpolate(插值模式)
- 作用:决定该刚体在 每帧更新时的平滑程度,用于减少物体运动的“卡顿”或“抖动”。
- 选项:
- None(无插值):物体可能会因为 低帧率 造成抖动。
- Interpolate(插值):使用上一帧的数据 平滑当前帧的运动,适用于 60FPS 以下 的情况。
- Extrapolate(外推):使用当前帧的趋势 预测下一帧的运动,适用于 极高速度物体。
Collision Detection(碰撞检测模式)
- 作用:决定 Unity 如何检测该刚体的 碰撞,防止物体穿透墙壁或地面。
- 选项:
- Discrete(离散):默认值,性能高,但可能会导致高速移动物体“穿透”其他物体。
- Continuous(连续):更精确的碰撞检测,适用于 高速物体(如子弹、投掷物)。
当前值:Continuous,适用于防止物体在高速运动时“穿透”其他物体
| Mass | 物体质量 | 1(默认质量) |
| Linear Drag | 线性阻力(空气阻力) | 0(无额外空气阻力) |
| Angular Drag | 角阻力(旋转阻力) | 0.05(微小旋转阻力) |
| Gravity Scale | 重力缩放 | 3.5(比标准重力更快下落) |
Simulated(是否启用物理)
- 作用:勾选后,该刚体会参与物理计算;否则会被 Unity 忽略(即使它有碰撞体)。
- 适用场景:
- 动态开关物理效果(如切换“暂停”状态)。
- 临时禁用物理计算 以提高性能。
当前值:✅(启用物理),表示该物体的物理计算是生效的。
Material(物理材质)
- 作用:控制该刚体的 摩擦力 和 弹性(反弹)。
- 默认值:
None,即没有特殊物理材质。
如果想要增加弹性或摩擦力,可以分配一个 Physics Material 2D。
Body Type(刚体类型)
- 作用:决定刚体的 物理行为。
- 选项:
- Dynamic(动态):该物体受 物理引擎 控制(重力、碰撞、外力影响)。
- Kinematic(运动学):不受物理引擎影响,只能通过代码
transform.position或Rigidbody2D.MovePosition()进行移动。 - Static(静态):不会移动,适用于 地面、墙壁 等固定物体。
当前值:Dynamic,表示该物体会受 重力 和 外力 影响,可以与其他刚体发生碰撞。


Enemy是entity的子类,都是从Player里剥离出来的逻辑,但这也并没有限制住,Enemy都必须继承这个类,,对于特殊机制的BOSS和精英怪什么的,完全可以直接写出Enemy2Enemy3等等,是延续了可改性的

本来一直以为继承和多态这些东西,都是要提前规划好非常细致的规范,才可以起作用,看了Alex Dev做这个游戏,对重写和继承的使用,,才发现也可以是灵活的,反向剥离的,妙
Python






在 Python 里,elif 就是 else if 的缩写
.strip() 是一个字符串方法,它会去掉字符串两边的空格、换行符等无效字符。
text = " Hello, Python! "
print(text.strip()) # 去掉前后空格
在 Python 的 in 关键字 检查字典时,它默认检查 键(key) 是否存在
choices = {"剪刀": 1, "石头": 0, "布": 2}print("剪刀" in choices) # ✅ True
print("剪刀" in choices.keys()) # ✅ True
print("1" in choices) # ❌ False (因为 `1` 不是键,而是值)
print(1 in choices.values()) # ✅ True
相关文章:
自由学习记录(41)
代理服务器的核心功能是在客户端(用户设备)和目标服务器(网站/资源服务器)之间充当“中介”,具体过程如下: 代理服务器的工作流程 当客户端希望访问某个网站(比如 example.com)时&…...
【编写UI自动化测试集】Appium+Python+Unittest+HTMLRunner
简介 获取AppPackage和AppActivity 定位UI控件的工具 脚本结构 PageObject分层管理 HTMLTestRunner生成测试报告 启动appium server服务 以python文件模式执行脚本生成测试报告 下载与安装 下载需要自动化测试的App并安装到手机 获取AppPackage和AppActivity 方法一 有源码的…...
大模型如何协助知识图谱进行实体关系之间的分析
大模型在知识图谱中协助进行实体关系分析的方式主要体现在以下几个方面: 增强数据标注与知识抽取 大模型通过强大的自然语言处理能力,能够高效地对原始数据进行实体、关系和事件的标注,从而提高数据处理的效率和准确性。例如,Deep…...
推荐几款优秀的PDF转电子画册的软件
当然可以!以下是几款优秀的PDF转电子画册的软件推荐,内容简洁易懂,这些软件都具有易用性和互动性,适合不同需求的用户使用。 ❶ FLBOOK|在线创作平台 支持PDF直接导入生成仿真翻页电子书。提供15主题模板与字体库&a…...
【大模型技术】LlamaFactory 的原理解析与应用
LlamaFactory 是一个基于 LLaMA 系列模型(如 LLaMA、LLaMA2、Vicuna 等)的开源框架,旨在帮助开发者和研究人员快速实现大语言模型(LLM, Large Language Model)的微调、推理和部署。它提供了一套完整的工具链࿰…...
Golang依赖注入实战:从容器管理到应用实践
#作者:曹付江 文章目录 1、示例: 管理依赖关系的容器1.1. 日志记录器设置1.2. 数据库连接设置1.3. 管理依赖关系的容器 2、如何使用容器3、结论 依赖注入(DI)是一种在软件应用程序中促进松散耦合和可测试性的设计模式。它允许将依…...
Node.js二:第一个Node.js应用
精心整理了最新的面试资料和简历模板,有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 创建的时候我们需要用到VS code编写代码 我们先了解下 Node.js 应用是由哪几部分组成的: 1.引入 required 模块:我们可以使用 requi…...
【Python爬虫】利用代理IP爬取跨境电商AI选品分析
引言 随着DeepSeek的流行,越来越多的用户开始尝试将AI工具融入到日常工作当中,借助AI的强大功能提高工作效率。最近又掀起了一波企业出海的小高潮,那么如果是做跨境电商业务,怎么将AI融入工作流中呢?在做跨境电商的时候…...
生命周期总结(uni-app、vue2、vue3生命周期讲解)
一、vue2生命周期 Vue2 的生命周期钩子函数分为 4 个阶段:创建、挂载、更新、销毁。 1. 创建阶段 beforeCreate:实例初始化之后,数据观测和事件配置之前。 created:实例创建完成,数据观测和事件配置已完成,…...
计算机数据库三级刷题总结(博主89分已过,总结的内容分享)
计算机数据库三级刷题总结(博主89分已过,总结的内容分享) 文章目录 计算机数据库三级刷题总结(博主89分已过,总结的内容分享)一、 数据库设计阶段二、事务相关三、数据库设计顺序四、数据库三级模式与二层映…...
mfc140u.dll是什么?当程序遭遇mfc140u.dll问题:快速恢复正常的秘诀
在使用Windows操作系统运行某些软件时,不少用户会遇到令人头疼的mfc140u.dll文件丢失错误。mfc140u.dll这个错误一旦出现,往往导致相关程序无法正常启动或运行,给用户带来诸多不便。这天的这篇文章将给大家分析mfc140u.dll是什么?…...
AI是否能真正理解人类情感?从语音助手到情感机器人
引言:AI与情感的交集 在过去的几十年里,人工智能(AI)的发展速度令人惊叹,从简单的语音识别到如今的深度学习和情感计算,AI已经深入到我们生活的方方面面。尤其是在语音助手和情感机器人领域,AI不…...
3.3.2 Proteus第一个仿真图
文章目录 文章介绍0 效果图1 新建“点灯”项目2 添加元器件3 元器件布局接线4 补充 文章介绍 本文介绍:使用Proteus仿真软件画第一个仿真图 0 效果图 1 新建“点灯”项目 修改项目名称和路径,之后一直点“下一步”直到完成 2 添加元器件 点击元…...
JetBrains学生申请
目录 JetBrains学生免费授权申请 IDEA安装与使用 第一个JAVA代码 1.利用txt文件和cmd命令运行 2.使用IDEA新建项目 JetBrains学生免费授权申请 本教程采用学生校园邮箱申请,所以要先去自己的学校申请校园邮箱。 进入JetBrains官网 点击立即申请,然…...
深入探索WebGL:解锁网页3D图形的无限可能
深入探索WebGL:解锁网页3D图形的无限可能 引言 。WebGL,作为这一变革中的重要技术,正以其强大的功能和广泛的应用前景,吸引着越来越多的开发者和设计师的关注。本文将深入剖析WebGL的核心原理、关键技术、实践应用,并…...
SQL进阶技巧:上课时长计算
目录 0 问题描述 1 数据准备 2 问题解决 核心难点 时间区间标记与分组 区间合并与时长计算...
“沂路畅通”便利服务平台:赋能同城物流,构建高效畅通的货运生态
“沂路畅通”便利服务平台:赋能同城物流,构建高效畅通的货运生态 随着城市化进程的加速,同城物流需求迅速增长,然而货运过程中仍然存在信息不对称、资源浪费、司机服务体验差等痛点。临沂呆马区块链网络科技有限公司(…...
文件上传靶场(1--9关)
实验环境: 1,upload的靶场环境可以去GitHub上自行查找 2,打开小皮面板的nginx和数据库 3,将文件上传的靶场部署到本地: 放到小皮的phpstduy_pro的www下面 小提示: 另外如果你用的是php7的版本建议将版…...
嵌入式 ARM Linux 系统构成(1):Bootloader层
目录 一、Bootloader 概述 1.1 核心作用 1.2 典型启动流程 二、ARM Bootloader 架构详解 2.1 多阶段启动设计 2.2 关键代码流程 2.3. Bootloader的加载过程 2.4. Bootloader的加载方式 2.5. Bootloader 的移植 三、常见的Bootloader介绍 3.1. U-Boot 3.2. vivi …...
ArcGIS Pro 基于基站数据生成基站扇区地图
在当今数字化的时代,地理信息系统(GIS)在各个领域都发挥着至关重要的作用。 ArcGIS Pro作为一款功能强大的GIS软件,为用户提供了丰富的工具和功能,使得数据处理、地图制作和空间分析变得更加高效和便捷。 本文将为您…...
376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】
大家好,我是java1234_小锋老师,看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】,分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...
【JavaSE】多线程基础学习笔记
多线程基础 -线程相关概念 程序(Program) 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存…...
接口自动化测试:HttpRunner基础
相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型…...
什么是VR全景技术
VR全景技术,全称为虚拟现实全景技术,是通过计算机图像模拟生成三维空间中的虚拟世界,使用户能够在该虚拟世界中进行全方位、无死角的观察和交互的技术。VR全景技术模拟人在真实空间中的视觉体验,结合图文、3D、音视频等多媒体元素…...
【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验
Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...
springboot 日志类切面,接口成功记录日志,失败不记录
springboot 日志类切面,接口成功记录日志,失败不记录 自定义一个注解方法 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/***…...
协议转换利器,profinet转ethercat网关的两大派系,各有千秋
随着工业以太网的发展,其高效、便捷、协议开放、易于冗余等诸多优点,被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口,具有实时性、开放性,使用TCP/IP和IT标准,符合基于工业以太网的…...
[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG
TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码:HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...
简约商务通用宣传年终总结12套PPT模版分享
IOS风格企业宣传PPT模版,年终工作总结PPT模版,简约精致扁平化商务通用动画PPT模版,素雅商务PPT模版 简约商务通用宣传年终总结12套PPT模版分享:商务通用年终总结类PPT模版https://pan.quark.cn/s/ece1e252d7df...
