DeepSeek教unity------Dotween
1、命名法
Tweener(补间器):一种控制某个值并对其进行动画处理的补间。
Sequence(序列):一种特殊的补间,它不直接控制某个值,而是控制其他补间并将它们作为一个组进行动画处理。
Tween(补间):一个通用术语,既指代 Tweener 也指代 Sequence。
Nested tween(嵌套补间):包含在 Sequence 中的补间。
前缀
前缀对于充分利用 IntelliSense 非常重要,所以尽量记住这些:
DO :前缀用于所有补间快捷方式(可以从已知对象,如变换或材质直接启动的操作)。
transform.DOMoveX(100, 1);
transform.DORestart();
DOTween.Play();
Set:所有可以链接到补间的设置(除了 From,因为它作为设置应用但并不真正属于设置)的前缀。
myTween.SetLoops(4, LoopType.Yoyo).SetSpeedBased();
On :用于所有可以链接到补间的回调函数。
myTween.OnStart(myStartFunction).OnComplete(myCompleteFunction);
2、DOTween.Init
首次创建补间时,DOTween 会使用默认值自动初始化自身。如果你希望手动初始化它(推荐),请在创建任何补间之前调用一次此方法(之后调用将不会有任何效果)。请注意,你仍然可以通过 DOTween 的全局设置随时更改所有初始化设置。另外,你可以将 SetCapacity 方法链接到 Init 方法上,这允许设置 Tweeners/Sequences 的初始容量(这与稍后调用 DOTween.SetTweensCapacity 是相同的)。
public static IDOTweenInit Init(bool? recycleAllByDefault = null, bool? useSafeMode = null, LogBehaviour? logBehaviour = null);
初始化 DOTween。调用时不带任何参数以使用你在 DOTween 的工具面板中设置的首选项(否则这些首选项将被传递的任何参数覆盖)。
recycleAllByDefault:如果为 TRUE,则所有新的补间都将被设置为可回收,这意味着当它们被销毁时不会真正销毁,而是会被放入池中并重用,而不是创建新的补间。此选项允许你通过重用补间来避免垃圾回收分配,但你需要小心处理补间引用,因为即使补间已被销毁,它们也可能依然活跃(因为它们可能已经被重新生成并作为完全不同的补间在使用)。
如果你希望在补间被销毁时自动将其引用设置为 NULL,可以使用 OnKill 回调,如下所示:
// 使用 OnKill 回调自动将补间引用设置为 NULL
myTween.OnKill(() => myTween = null);
你可以随时通过更改静态属性 DOTween.defaultRecyclable 来修改此设置,或者你可以使用 SetRecyclable 为每个补间单独设置回收行为。
useSafeMode:如果设置为 TRUE,补间会稍微慢一些,但更安全,允许 DOTween 自动处理诸如在补间运行时目标被销毁的情况。
警告:在 iOS 上,safeMode 仅在剥离级别设置为 "Strip Assemblies" 或脚本调用优化设置为 "Slow and Safe" 时有效,而在 Windows 10 WSA 上,如果选择了 Master Configuration 和 .NET,则不会生效。
logBehaviour:根据所选模式,DOTween 将记录仅错误、错误和警告,或所有信息加上附加信息。
// 示例 A:使用 DOTween 的工具面板中设置的首选项进行初始化
DOTween.Init();
// 示例 B:使用自定义设置进行初始化,并立即设置容量
DOTween.Init(true, true, LogBehaviour.Verbose).SetCapacity(200, 10);
3、创建一个Tweener
截至目前,DOTween可以补间这些类型的值: float,double,int,uint,long,ulong,Vector2 / 3/4,Quaternion,Rect,RectOffset,Color,string (其中一些值可以通过特殊方式进行补间) 此外,您可以创建自定义DOTween插件以补间自定义值类型。
有3种方法来创建一个Tweener:在通用的方式,快捷方式和更多的通用方式。
A. 通用方式
这是最灵活的补间方式,允许你几乎任何值,公共或私有,静态或动态 (只是你知道,快捷方式实际上在后台使用通用方式)。
与快捷方式一样,通用方式具有FROM备用版本。只需将From链接到Tweener,使补间表现为FROM补间而不是TO补间。
static DOTween.To(getter,setter,to,float duration)
B. 快捷方式
DOTween包含一些已知Unity对象的快捷方式,如Transform,Rigidbody和Material。您可以直接从对这些对象的引用启动补间(这也将自动将对象本身设置为补间目标),如:
transform.DOMove(new Vector3(2,3,4), 1);rigidbody.DOMove(new Vector3(2,3,4), 1);material.DOColor(Color.green, 1);
除非另有说明,否则这些快捷方式中的每一个都具有FROM备用版本。只需将From链接到Tweener,使补间表现为FROM补间而不是TO补间。
重要提示:当您将一个FROM分配给补间时,目标将立即跳转到FROM位置(就像“编写该行代码的那一刻”,而不是“补间开始的那一刻”)。
transform.DOMove(new Vector3(2,3,4), 1).From();rigidbody.DOMove(new Vector3(2,3,4), 1).From();material.DOColor(Color.green, 1).From();
AudioSource
DOFade(float to, float duration)
DOPitch(float to, float duration)
Camera
DOAspect(float to, float duration)
DOColor(Color to, float duration)
DOFarClipPlane(float to, float duration)
DOFieldOfView(float to, float duration)
DONearClipPlane(float to, float duration)
DOOrthoSize(float to, float duration)
DOPixelRect(Rect to, float duration)
DORect(Rect to, float duration)
DOShakePosition(float duration, float/Vector3 strength, int vibrato, bool fadeOut)
DOShakeRotation(float duration, float/Vector3 strength, int vibrato, float randomness bool fadeOut)
Light
DOColor(Color to, float duration)
DOIntensity(float to, float duration)
DOShadowStrength(float to, float duration)
可混合的补间
DOBlendableColor(Color to, float duration)
LineRenderer
DOColor(Color2 startValue, Color2 endValue, float duration)
Material
DOColor(Color to, float duration)
DOColor(Color to, string property, float duration)
DOFade(float to, float duration)
DOFade(float to, string property, float duration)
DOFloat(float to, string property, float duration)
DOGradientColor(Gradient to, float duration)
DOGradientColor(Gradient to, string property, float duration)
DOOffset(Vector2 to, float duration)
DOOffset(Vector2 to, string property, float duration)
DOTiling(Vector2 to, float duration)
DOTiling(Vector2 to, string property, float duration)
DOVector(Vector4 to, string property, float duration)
可混合的补间
DOBlendableColor(Color to, float duration)
DOBlendableColor(Color to, string property, float duration)
Rigidbody这些快捷方式在后台使用刚体的MovePosition / MoveRotation方法,以正确设置与物理对象相关的内容。
DOMove(Vector3 to,float duration,bool snapping)
DOMoveX / DOMoveY / DOMoveZ(float to,float duration,bool snapping)
DOJump(Vector3 endValue,float jumpPower,int numJumps,float duration,bool snapping)
DORotate(Vector3 to, float duration, RotateMode mode)
DOLookAt(Vector3 towards, float duration, AxisConstraint axisConstraint = AxisConstraint.None, Vector3 up = Vector3.up)
PRO ONLY ➨ Spiral – no FROM
DOSpiral(float duration, Vector3 axis = null, SpiralMode mode = SpiralMode.Expand, float speed = 1, float frequency = 10, float depth = 0, bool snapping = false)
SpriteRenderer
DOColor(Color to, float duration)
DOFade(float to, float duration)
DOGradientColor(Gradient to, float duration)
C. 其他通用方法
这些是允许以特定方式补间值的其他通用方法。这些也有FROM备用版本,除非另有说明。只需将From链接到Tweener,使补间表现为FROM补间而不是TO补间。
static DOTween.Punch(getter, setter, Vector3 direction, float duration, int vibrato, float elasticity)
static DOTween.Shake(getter, setter, float duration, float/Vector3 strength, int vibrato, float randomness, bool ignoreZAxis)
static DOTween.ToAlpha(getter, setter, float to, float duration)
static DOTween.ToArray(getter, setter, float to, float duration)
static DOTween.ToAxis(getter, setter, float to, float duration, AxisConstraint axis)
4、创建序列
序列类似于Tweeners,但它们不是动画属性或值,而是将其他Tweeners或Sequences作为一组动画。序列可以包含在其他序列中,而不限制层次结构的深度。排序的补间不必一个接一个。您可以使用Insert方法重叠补间。
补间(序列或Tweener)只能嵌套在单个其他序列中,这意味着您不能在多个序列中重用相同的补间。此外,主序列将控制其所有嵌套元素,并且您将无法单独控制嵌套补间(将序列视为电影时间轴,一旦它第一次启动就会变为固定)。
重要提示:不要使用空序列。
1.获取要使用的新序列并将其存储为引用
static DOTween.Sequence()
2.将补间,间隔和回调添加到序列
请注意,所有这些方法都需要在序列开始之前应用(通常是在创建它之后的下一帧,除非它已暂停),否则它们将没有任何效果。另请注意,任何嵌套的Tweener / Sequence都需要在将其添加到Sequence之前完全创建,因为之后它将被锁定。
Append(Tween tween)AppendCallback(TweenCallback callback)AppendInterval(float interval)Insert(float atPosition, Tween tween)InsertCallback(float atPosition, TweenCallback callback)Join(Tween tween)Prepend(Tween tween)PrependCallback(TweenCallback callback)PrependInterval(float interval)
// 创建一个 Sequence
Sequence mySequence = DOTween.Sequence();// 在 Sequence 的开头添加一个 1 秒的延迟
mySequence.PrependInterval(1);// 在 Sequence 的末尾添加一个移动 Tween,物体将在 X 轴上移动到 45,耗时 1 秒
mySequence.Append(transform.DOMoveX(45, 1));// 在移动 Tween 完成后,添加一个旋转 Tween,物体将旋转到 (0, 180, 0) 的角度,耗时 1 秒
mySequence.Append(transform.DORotate(new Vector3(0, 180, 0), 1));// 在 Sequence 的 0 秒处插入一个缩放 Tween,物体将缩放到 (3, 3, 3) 的大小,持续整个 Sequence 的时长
mySequence.Insert(0, transform.DOScale(new Vector3(3, 3, 3), mySequence.Duration()));动画流程
延迟 1 秒:Sequence 开始前会等待 1 秒。
移动动画:物体在 X 轴上从当前位置移动到 45,耗时 1 秒。
旋转动画:物体旋转到 (0, 180, 0) 的角度,耗时 1 秒。
缩放动画:物体从 Sequence 开始时就逐渐缩放到 (3, 3, 3) 的大小,持续整个 Sequence 的时长。Sequence mySequence = DOTween.Sequence();mySequence.Append(transform.DOMoveX(45, 1)).Append(transform.DORotate(new Vector3(0,180,0), 1)).PrependInterval(1).Insert(0, transform.DOScale(new Vector3(3,3,3), mySequence.Duration()));
5、设置,选项和回调
在将设置应用于补间时,DOTween使用链接方法。或者,您可以更改将应用于所有新创建的补间的全局默认选项。
全局设置
static LogBehaviour DOTween.logBehaviourstatic bool DOTween.maxSmoothUnscaledTimestatic bool DOTween.showUnityEditorReportstatic float DOTween.timeScalestatic bool DOTween.useSafeModestatic bool DOTween.useSmoothDeltaTimestatic DOTween.SetTweensCapacity(int maxTweeners, int maxSequences)
应用于所有新创建的补间的设置
static bool DOTween.defaultAutoKillstatic AutoPlay DOTween.defaultAutoPlaystatic float DOTween.defaultEaseOvershootOrAmplitudestatic float DOTween.defaultEasePeriodstatic Ease DOTween.defaultEaseTypestatic LoopType DOTween.defaultLoopTypestatic bool DOTween.defaultRecyclablestatic bool DOTween.defaultTimeScaleIndependentstatic UpdateType DOTween.defaultUpdateType
Tweener 和 Sequence 设置
SetAs(Tween tween \ TweenParams tweenParams)SetAutoKill(bool autoKillOnCompletion = true)SetEase(Ease easeType \ AnimationCurve animCurve \ EaseFunction customEase)SetId(object id)SetLoops(int loops, LoopType loopType = LoopType.Restart)SetRecyclable(bool recyclable)SetRelative(bool isRelative = true)SetUpdate(UpdateType updateType, bool isIndependentUpdate = false)
OnComplete(TweenCallback callback)OnKill(TweenCallback callback)OnPlay(TweenCallback callback)OnPause(TweenCallback callback)OnRewind(TweenCallback callback)OnStart(TweenCallback callback)OnStepComplete(TweenCallback callback)OnUpdate(TweenCallback callback)OnWaypointChange(TweenCallback<int> callback)
特定于Tweener的设置和选项
这些设置特定于Tweeners,对序列没有影响。 除了SetEase在补间运行时链接这些设置将不起作用。
From(bool isRelative = false)SetDelay(float delay)SetSpeedBased(bool isSpeedBased = true)
需要记住的重要一点是,虽然所有其他设置可以按任何顺序链接在一起,但SetOptions 必须在补间创建功能之后立即链接,否则它将不再可用。
DOPath特定选项
Path tween ➨ SetOptions(bool closePath, AxisConstraint lockPosition = AxisConstraint.None, AxisConstraint lockRotation = AxisConstraint.None)Path tween ➨ SetLookAt(Vector3 lookAtPosition/lookAtTarget/lookAhead, Vector3 forwardDirection, Vector3 up = Vector3.up)
6、路径动画 API
1. 路径动画概述
路径动画允许物体沿着指定的路径移动。Dotween 提供了两种主要的路径动画方式:
-
使用
DOPath: 物体沿着路径移动,但不会调整自身方向。 -
使用
DOLocalPath: 物体沿着局部路径移动。 -
使用
DOPath和PathType.CatmullRom: 使用 Catmull-Rom 样条曲线生成平滑路径。
2.解析
2.1 transform.DOPath
让物体沿着指定的路径点移动。
参数:
-
path(Vector3[]): 路径点的数组。 -
duration(float): 动画持续时间。 -
pathType(PathType): 路径类型,默认为直线路径(PathType.Linear)。 -
pathMode(PathMode): 路径模式,默认为 3D 路径(PathMode.Full3D)。 -
resolution(int): 路径分辨率,默认为 10。 -
gizmoColor(Color): 在 Scene 视图中绘制路径的颜色。
// 定义路径点
Vector3[] pathPoints = new Vector3[] {new Vector3(0, 0, 0),new Vector3(5, 5, 0),new Vector3(10, 0, 0)
};// 让物体沿着路径移动,耗时 3 秒
transform.DOPath(pathPoints, 3, PathType.CatmullRom).SetEase(Ease.Linear).OnComplete(() => Debug.Log("路径动画完成"));
2.2 transform.DOLocalPath
让物体沿着局部坐标系下的路径移动。
参数:
与 DOPath 相同。
// 定义局部路径点
Vector3[] localPathPoints = new Vector3[] {new Vector3(0, 0, 0),new Vector3(2, 2, 0),new Vector3(4, 0, 0)
};// 让物体沿着局部路径移动,耗时 2 秒
transform.DOLocalPath(localPathPoints, 2, PathType.CatmullRom).SetEase(Ease.Linear);
2.3 transform.DOPath 的 LookAt 功能
让物体在移动时始终朝向路径方向。
参数:
-
lookAhead(float): 向前看的位置偏移量,默认为 0.01。 -
forwardDirection(Vector3): 物体的前方方向,默认为Vector3.forward。 -
up(Vector3): 物体的上方方向,默认为Vector3.up。
// 让物体沿着路径移动,并始终朝向路径方向
transform.DOPath(pathPoints, 3, PathType.CatmullRom).SetLookAt(0.01f) // 朝向路径方向.SetEase(Ease.Linear);
2.4 tween.PathLength
计算路径的长度。
2.5t ween.PathGetPoint
参数:
-
t(float): 时间点(0 到 1 之间)。
void Test_06(){Vector3[] pathPoints = new[] {new Vector3(0,1,0),new Vector3(0,2,0),new Vector3(0,3,0),new Vector3(0,4,0)};Tween tween = transform.DOPath(pathPoints, 3, PathType.Linear);tween.ForceInit();float pathLength = tween.PathLength();Debug.Log("路径长度: " + pathLength);// 获取路径上 50% 时间点的位置Vector3 point = tween.PathGetPoint(0.5f);Debug.Log("路径中点位置: " + point);}
3. 路径动画的高级功能
3.1 自定义路径缓动
可以通过 SetEase 方法设置路径动画的缓动函数。
// 使用缓动函数
transform.DOPath(pathPoints, 3, PathType.CatmullRom).SetEase(Ease.InOutSine);
3.2 路径动画的循环
可以通过 SetLoops 方法设置路径动画的循环次数。
// 让路径动画循环 3 次
transform.DOPath(pathPoints, 3, PathType.CatmullRom).SetLoops(3, LoopType.Restart);
3.3 路径动画的回调
可以通过 OnComplete、OnStart、OnUpdate 等方法设置路径动画的回调。
// 设置路径动画的回调
transform.DOPath(pathPoints, 3, PathType.CatmullRom).OnStart(() => Debug.Log("路径动画开始")).OnUpdate(() => Debug.Log("路径动画进行中")).OnComplete(() => Debug.Log("路径动画完成"));
相关文章:
DeepSeek教unity------Dotween
1、命名法 Tweener(补间器):一种控制某个值并对其进行动画处理的补间。 Sequence(序列):一种特殊的补间,它不直接控制某个值,而是控制其他补间并将它们作为一个组进行动画处理。 Tw…...
AIP-146 泛化域
编号146原文链接AIP-146: Generic fields状态批准创建日期2019-05-28更新日期2019-05-28 API中的大多数域,无论是在请求、资源还是自定义应答中,都有具体的类型或模式。这个模式是约定的一部分,开发者依此约定进行编码。 然而,偶…...
【Go并发编程】Goroutine 调度器揭秘:从 GMP 模型到 Work Stealing 算法
每天一篇Go语言干货,从核心到百万并发实战,快来关注魔法小匠,一起探索Go语言的无限可能! 在 Go 语言中,Goroutine 是一种轻量级的并发执行单元,它使得并发编程变得简单高效。而 Goroutine 的高效调度机制是…...
【前端】Vue组件库之Element: 一个现代化的 UI 组件库
文章目录 前言一、官网1、官网主页2、设计原则3、导航4、组件 二、核心功能:开箱即用的组件生态1、丰富的组件体系2、特色功能亮点 三、快速上手:三步开启组件化开发1、安装(使用Vue 3)2、全局引入3、按需导入(推荐&am…...
第十五天 学习并实践HarmonyOS应用的基本结构、页面导航和状态管理
HarmonyOS应用开发入门:从基本结构到状态管理实战指南 前言 (约300字,说明HarmonyOS的发展前景,应用开发的市场需求,以及本教程的核心价值。强调手把手教学特点,降低学习门槛) 一、HarmonyOS应…...
Cursor生成JAVA相关的关键词提示规则
在项目根目录创建一个.curstorrules文件(注意有个小数点),之后在该文件内填入下面内容 你是 Java 编程、Spring Boot、Spring Framework、Maven、JUnit 及相关 Java 技术的专家。 代码风格与结构 编写整洁、高效且文档完善的 Java 代码&am…...
数据结构:队列(Queue)及其实现
队列(Queue)是一种广泛使用的线性数据结构,它遵循先进先出(FIFO,First In, First Out)的原则。也就是说,最早插入队列的元素会最先被移除。队列是一种典型的顺序存取结构,它与栈&…...
MoE架构中的专家选择门控机制:稀疏激活如何实现百倍效率突破?
技术原理(数学公式与核心逻辑) 核心公式 门控网络输出: G ( x ) Softmax ( W g ⋅ x b g ) G(x) \text{Softmax}(W_g \cdot x b_g) G(x)Softmax(Wg⋅xbg) 最终输出: y ∑ i 1 n G i ( x ) ⋅ E i ( x ) (仅保留Top-…...
坐井说天阔---DeepSeek-R1
前言 DeepSeek-R1这么火,虽然网上很多介绍和解读,但听人家的总不如自己去看看原论文。于是花了大概一周的时间,下班后有进入了研究生的状态---读论文。 DeepSeek这次的目标是探索在没有任何监督数据的情况下训练具有推理能力的大模型&#…...
UART(一)——UART基础
一、定义 UART(Universal Asynchronous Receiver/Transmitter)是一种广泛使用的串行通信协议,用于在设备间通过异步方式传输数据。它无需共享时钟信号,而是依赖双方预先约定的参数(如波特率)完成通信。 功能和特点 基本的 UART 系统只需三个信号即可提供稳健的中速全双工…...
DeepSeek 的创新融合:多行业应用实践探索
引言 在数字化转型的浪潮中,技术的融合与创新成为推动各行业发展的关键力量。蓝耘平台作为行业内备受瞩目的创新平台,以其强大的资源整合能力和灵活的架构,为企业提供了高效的服务支持。而 DeepSeek 凭借先进的人工智能技术,在自然…...
C语言中的常量与只读变量,#define与const的区别
#include中的#表明C处理器需要在编译器接手工作之前先处理这条指令。 #define 这条定义宏的语句,是不是很熟悉,这条预处理指令会在编译器编译前把源文件中使用到这个宏的地方都先展开。 #define NUM 12 这个定义了一个宏常量,它的处理发生编…...
Python常见面试题的详解6
1. 按字典 value 值排序 要点:对于给定字典,使用 sorted() 函数结合 items() 方法,依据 value 进行排序,也可以定义一个通用函数,支持按 value 升序或降序排序。示例: python d {a: 1, b: 2, c: 3, d: …...
CentOS 7超详细安装教程(含镜像)
1. 安装前准备 1.1 CentOS简介 CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是一种基于 Red Hat Enterprise Linux(RHEL)源代码构建的免费开源操作系统。它在稳定性、安全…...
代码随想录day12
144.二叉树的前序遍历 //明确递归的函数,结束边界,单层逻辑 void traversal(TreeNode* node, vector<int>& list){if(node nullptr){return;}list.push_back(node->val);traversal(node->left, list);traversal(node->right, list)…...
langchain学习笔记之消息存储在内存中的实现方法
langchain学习笔记之消息存储在内存中的实现方法 引言背景消息存储在内存的实现方法消息完整存储:完整代码 引言 本节将介绍 langchain \text{langchain} langchain将历史消息存储在内存中的实现方法。 背景 在与大模型交互过程中,经常出现消息管理方…...
布隆过滤器(简单介绍)
布隆过滤器(Bloom Filter) 是一种高效的概率型数据结构,用于快速判断一个元素是否可能存在于某个集合中。它的核心特点是空间效率极高,但存在一定的误判率(可能误报存在,但不会漏报)。 核心原理…...
Qt中基于开源库QRencode生成二维码(附工程源码链接)
目录 1.QRencode简介 2.编译qrencode 3.在Qt中直接使用QRencode源码 3.1.添加源码 3.2.用字符串生成二维码 3.3.用二进制数据生成二维码 3.4.界面设计 3.5.效果展示 4.注意事项 5.源码下载 1.QRencode简介 QRencode是一个开源的库,专门用于生成二维码&…...
SpringBoot教程(三十二) SpringBoot集成Skywalking链路跟踪
SpringBoot教程(三十二) | SpringBoot集成Skywalking链路跟踪 一、Skywalking是什么?二、Skywalking与JDK版本的对应关系三、Skywalking下载四、Skywalking 数据存储五、Skywalking 的启动六、部署探针 前提: Agents 8.9.0 放入 …...
IntelliJ IDEA 接入 AI 编程助手(Copilot、DeepSeek、GPT-4o Mini)
IntelliJ IDEA 接入 AI 编程助手(Copilot、DeepSeek、GPT-4o Mini) 📊 引言 近年来,AI 编程助手已成为开发者的高效工具,它们可以加速代码编写、优化代码结构,并提供智能提示。本文介绍如何在 IntelliJ I…...
【机器学习】深入浅出KNN算法:原理解析与实践案例分享
在机器学习中,K-最近邻算法(K-Nearest Neighbors, KNN)是一种既直观又实用的算法。它既可以用于分类,也可以用于回归任务。本文将简单介绍KNN算法的基本原理、优缺点以及常见应用场景,并通过一个简单案例帮助大家快速入…...
vscode的一些实用操作
1. 焦点切换(比如主要用到使用快捷键在编辑区和终端区进行切换操作) 2. 跳转行号 使用ctrl g,然后输入指定的文件内容,即可跳转到相应位置。 使用ctrl p,然后输入指定的行号,回车即可跳转到相应行号位置。...
JavaEE基础 Tomcat与Http (下)
目录 1.HTTP 协议 1.1 HTTP 协议概念 1.2. 无状态协议 1.3. HTTP1.0 和 HTTP1.1 1.4 请求协议和响应协议 编辑 1.5 请求协议 1.5.1 常见的请求协议 1.5.2 GET 请求 1.5.3 POST请求 1.5.4 响应协议 1.HTTP 协议 Http浏览器访问东西都是遵循的Http协议。 1.1 HTTP 协议…...
【Linux】【进程】epoll内核实现总结+ET和LT模式内核实现方式
【Linux】【网络】epoll内核实现总结ET和LT模式内核实现方式 1.epoll的工作原理 eventpoll结构 当某一进程调用epoll_create方法时,Linux内核会创建一个eventpoll结构体,这个结构体中有两个成员与epoll的使用方式密切相关. struct eventpoll{..../*红…...
英码科技基于昇腾算力实现DeepSeek离线部署
DeepSeek-R1 模型以其创新架构和高效能技术迅速成为行业焦点。如果能够在边缘进行离线部署,不仅能发挥DeepSeek大模型的效果,还能确保数据处理的安全性和可控性。 英码科技作为AI算力产品和AI应用解决方案服务商,积极响应市场需求࿰…...
测试常见问题汇总-检查表(持续完善)
WEB页面常见的问题 按钮功能的实现:返回按钮是否可以正常返回 信息保存提交后,系统是否给出“成功”的提示信息,列表数据是否自动刷新 没有勾选任何记录直接点【删除】,是否给出“请先选择记录”的提示 删除是否有删除确认框 …...
【SQL】SQL约束
🎄约束 📢作用:是用于限制存储再表中的数据。可以再创建表/修改表时添加约束。 📢目的:保证数据库中数据的正确、有效性和完整性。 📢对于一个字段可以同时添加多个约束。 🎄常用约束: 约束分类 约束 描述关键字非…...
解决 `pip is configured with locations that require TLS/SSL` 错误
问题描述 在使用 pip 安装 Python 包时,可能会遇到以下错误: WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.这意味着 Python 的 ssl 模块未正确安装或配置,导致 p…...
如何commit后更新.gitignore实现push
目录 步骤 1: 更新 .gitignore 文件 步骤 2: 移除已追踪的大文件 步骤 3: 提交更改 步骤 4: 尝试推送 注意事项 如果已经执行了git commit,但后来意识到需要更新.gitignore文件以排除某些不应该被追踪的大文件或目录,并希望在不丢失现有提交记录的情…...
Python 面向对象的三大特征
前言:本篇讲解面向对象的三大特征(封装,继承,多态),还有比较细致的(类属性类方法,静态方法),分步骤讲解,比较适合理清楚三大特征的思路 面向对象的…...
