当前位置: 首页 > news >正文

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可以补间这些类型的值: floatdoubleintuintlongulongVector2 / 3/4QuaternionRectRectOffsetColorstring (其中一些值可以通过特殊方式进行补间) 此外,您可以创建自定义DOTween插件以补间自定义值类型。

有3种方法来创建一个Tweener:在通用的方式,快捷方式和更多的通用方式。

A. 通用方式

这是最灵活的补间方式,允许你几乎任何值,公共或私有,静态或动态 (只是你知道,快捷方式实际上在后台使用通用方式)。

与快捷方式一样,通用方式具有FROM备用版本。只需将From链接到Tweener,使补间表现为FROM补间而不是TO补间。

static DOTween.To(getter,setter,to,float duration)
B. 快捷方式

DOTween包含一些已知Unity对象的快捷方式,如TransformRigidbodyMaterial。您可以直接从对这些对象的引用启动补间(这也将自动将对象本身设置为补间目标),如:

    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,但它们不是动画属性或值,而是将其他TweenersSequences作为一组动画。序列可以包含在其他序列中,而不限制层次结构的深度。排序的补间不必一个接一个。您可以使用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 提供了两种主要的路径动画方式:

  1. 使用 DOPath 物体沿着路径移动,但不会调整自身方向。

  2. 使用 DOLocalPath 物体沿着局部路径移动。

  3. 使用 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 路径动画的回调

可以通过 OnCompleteOnStartOnUpdate 等方法设置路径动画的回调。

// 设置路径动画的回调
transform.DOPath(pathPoints, 3, PathType.CatmullRom).OnStart(() => Debug.Log("路径动画开始")).OnUpdate(() => Debug.Log("路径动画进行中")).OnComplete(() => Debug.Log("路径动画完成"));

相关文章:

DeepSeek教unity------Dotween

1、命名法 Tweener&#xff08;补间器&#xff09;&#xff1a;一种控制某个值并对其进行动画处理的补间。 Sequence&#xff08;序列&#xff09;&#xff1a;一种特殊的补间&#xff0c;它不直接控制某个值&#xff0c;而是控制其他补间并将它们作为一个组进行动画处理。 Tw…...

前端开发中关于虚拟列表的实现与应用优化

前端开发中关于虚拟列表的实现与应用优化 一、引言 在前端开发的日常工作中&#xff0c;我们常常会遇到需要展示大量数据列表的场景。比如电商平台的商品列表、社交平台的动态信息流等。当数据量庞大时&#xff0c;直接渲染所有数据会导致页面性能急剧下降&#xff0c;出现卡…...

图解JVM-1. JVM与Java体系结构

一、前言 在 Java 开发的广袤天地里&#xff0c;不少开发者都遭遇过令人头疼的状况。线上系统毫无征兆地卡死&#xff0c;陷入无法访问的僵局&#xff0c;甚至直接触发 OOM&#xff08;OutOfMemoryError&#xff0c;内存溢出错误&#xff09;&#xff1b;面对 JVM 的 GC&#…...

Word中的文档信息域

Word中的文档信息域 DocProperty包含文档信息的多个属性, 也可以自定义属性. 查看文档预定义的自定义属性 【文件】→【信息】→【属性】→【高级属性】 参考链接 WORD中文档属性域DocProperty的应用-CSDN博客 第06套 Word_哔哩哔哩_bilibili...

Linux中的权限问题(二)

一、不受权限约束的root 按照文件的使用者进行匹配后&#xff0c;即使权限是“---” root依旧可以正常进行读&#xff0c;写&#xff0c;运行 二、文件拥有者和所属组的更改方法以及限制 2.1chown&#xff1a;更改文件拥有者以及所属组 ①可以单独修改文件拥有者 chown[更…...

【ISO 14229-1:2023 UDS诊断全量测试用例清单系列:第十八节】

ISO 14229-1:2023 UDS诊断服务测试用例全解析&#xff08;ResponseOnEvent_0x86服务&#xff09; 作者&#xff1a;车端域控测试工程师 更新日期&#xff1a;2025年02月14日 关键词&#xff1a;UDS协议、0x86服务、事件响应、ISO 14229-1:2023、ECU测试 一、服务功能概述 0x86…...

Spring Boot自动装配:约定大于配置的魔法解密

#### 一、自动装配的哲学思考 在传统Spring应用中&#xff0c;开发者需要手动配置大量的XML或JavaConfig。Spring Boot通过自动装配机制实现了**约定大于配置**的设计理念&#xff0c;其核心思想可以概括为&#xff1a; 1. **智能预设**&#xff1a;基于类路径检测自动配置 2…...

[笔记.AI]大模型的蒸馏、剪枝、量化 | 模型压缩 | 作用与意义

上周简单整理了《deepseek-r1的不同版本&#xff08;满血版、蒸馏版、量化&#xff09;》&#xff0c;这次继续完善对其的认知——补充“剪枝”&#xff0c;并进一步整理蒸馏、剪枝、量化的作用与意义。 以下摘自与DeepSeek-R1在线联网版的对话 蒸馏、剪枝、量化是当前主流的三…...

【koa】05-koa+mysql实现数据库集成:连接和增删改查

前言 前面我们已经介绍了第二阶段的第1-4点内容&#xff0c;本篇介绍第5点内容&#xff1a;数据库集成&#xff08;koamysql&#xff09; 也是第二阶段内容的完结。 一、学习目标 在koa项目中正常连接数据库&#xff0c;对数据表进行增删改查的操作。 二、操作步骤 本篇文章…...

【数据结构】队列(Queue)

Queue 定义 Java中的队列(Queue)是一种先进先出(FIFO)的数据结构。队列只允许在一段进行插入数据操作&#xff0c;称为入队&#xff0c;在另一端进行删除数据操作&#xff0c;称为出队。我们可以把队列形象看作为排队。在最前面的进行出队&#xff0c;从最后面进行入队。 队列…...

机器学习PCA和LDA

主成分分析&#xff08;PCA, Principal Component Analysis&#xff09;和线性判别分析&#xff08;LDA, Linear Discriminant Analysis&#xff09;是两种常用的降维方法&#xff0c;它们虽然都用于数据降维&#xff0c;但核心思想和应用场景不同。 PCA&#xff08;主成分分析…...

RocketMQ - 常见问题

RocketMQ常见问题 文章目录 RocketMQ常见问题一&#xff1a;消息幂等问题1&#xff1a;什么是消费幂等2&#xff1a;消息重复的场景分析2.1&#xff1a;发送时消息重复2.2&#xff1a;消费时消息重复2.3&#xff1a;Rebalance时消息重复 3&#xff1a;通用解决方案3.1&#xff…...

kafka消费能力压测:使用官方工具

背景 在之前的业务场景中&#xff0c;我们发现Kafka的实际消费能力远低于预期。尽管我们使用了kafka-go组件并进行了相关测试&#xff0c;测试情况见《kafka-go:性能测试》这篇文章。但并未能准确找出消费能力低下的原因。 我们曾怀疑这可能是由我的电脑网络带宽问题或Kafka部…...

基于Spring Boot的社区居民健康管理平台的设计与实现

目录 1 绪论 1.1 研究现状 1.2 研究意义 1.3 组织结构 2 技术介绍 2.1 平台开发工具和环境 2.2 Vue介绍 2.3 Spring Boot 2.4 MyBatis 2.5 环境搭建 3 系统需求分析 3.1 可行性分析 3.2 功能需求分析 3.3 系统用例图 3.4 系统功能图 4 系统设计 4.1 系统总体描…...

网络安全架构战略 网络安全体系结构

本节书摘来自异步社区《网络安全体系结构》一书中的第1章&#xff0c;第1.4节&#xff0c;作者【美】Sean Convery 1.4 一切皆为目标 网络安全体系结构 当前的大型网络存在着惊人的相互依赖性&#xff0c;作为一名网络安全设计师&#xff0c;对这一点必须心知肚明。Internet就…...

【Spring+MyBatis】_图书管理系统(中篇)

【SpringMyBatis】_图书管理系统&#xff08;上篇&#xff09;-CSDN博客文章浏览阅读654次&#xff0c;点赞4次&#xff0c;收藏7次。&#xff08;1&#xff09;当前页的内容records&#xff08;类型为List&#xff09;&#xff1b;参数&#xff1a;userNameadmin&&pas…...

Python - 爬虫利器 - BeautifulSoup4常用 API

文章目录 前言BeautifulSoup4 简介主要特点&#xff1a;安装方式: 常用 API1. 创建 BeautifulSoup 对象2. 查找标签find(): 返回匹配的第一个元素find_all(): 返回所有匹配的元素列表select_one() & select(): CSS 选择器 3. 访问标签内容text 属性: 获取标签内纯文本get_t…...

宝塔面板开始ssl后,使用域名访问不了后台管理

宝塔面板后台开启ssl访问后&#xff0c;用的证书是其他第三方颁发的证书 再使用 域名/xxx 的形式&#xff1a;https://域名:xxx/xxx 访问后台&#xff0c;结果出现如下&#xff0c;不管使用 http 还是 https 的路径访问都进不后台管理 这个时候可以使用 https://ip/xxx 的方式来…...

大一计算机的自学总结:前缀树(字典树、Trie树)

前言 前缀树&#xff0c;又称字典树&#xff0c;Trie树&#xff0c;是一种方便查找前缀信息的数据结构。 一、字典树的实现 1.类描述实现 #include <bits/stdc.h> using namespace std;class TrieNode { public:int pass0;int end0;TrieNode* nexts[26]{NULL}; };Tri…...

docker 安装的open-webui链接ollama出现网络错误

# 故事背景 部署完ollama以后&#xff0c;使用谷歌浏览器的插件Page Assist - 本地 AI 模型的 Web UI 可以比较流畅的使用DeepSeek&#xff0c;但是只局限于个人使用&#xff0c;想分享给更多的小伙伴使用&#xff0c;于是打算使用open-webui 来管理用户&#xff0c;经官网推荐…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下&#xff0c;江苏艾立泰以一场跨国资源接力的创新实践&#xff0c;重新定义了绿色供应链的边界。 跨国回收网络&#xff1a;废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点&#xff0c;将海外废弃包装箱通过标准…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版

7种色调职场工作汇报PPT&#xff0c;橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版&#xff1a;职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...