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

Unity Line Renderer Component入门

Overview

Line Renderer 组件是 Unity 中用于绘制连续线段的工具。它通过在三维空间中的两个或两个以上的点的数组,并在每个点之间绘制一条直线。可以绘制从简单的直线到复杂的螺旋线等各种图形。

1. 连续性和独立线条

  • 连续性:Line Renderer 绘制的线条始终是连续的,即一条直线连接每两个相邻的点。

  • 独立线条:如果需要绘制多个完全分开的线段,应该使用多个 GameObject,每个 GameObject 配置一个独立的 Line Renderer。

  • 世界单位:Line Renderer 渲染的线条宽度不是以像素为单位,而是以世界单位为单位。这意味着线条的宽度会根据世界空间中的实际尺寸进行计算,而不是屏幕像素大小。

Getting started

这样会在三维空间创建一个默认的Line.

三种编辑模式

None,Edit Points和Create Points.顶部有两个开关,两个开关都没有选择的情况下是None,点击第一个就进入了Edit Points模式,再次点击则回到None,第二个同理代表Create Points模式.

None模式

  • Simplify(简化):

    • 点击 Simplify 按钮后,Line Renderer 会根据设置的 Tolerance 值,使用 Ramer-Douglas-Peucker 算法 来简化线条的点。这一算法会根据你设置的公差值,计算并删除不必要的点,从而减少 Line Renderer 中的点数。
    • 通过简化,你可以显著提高性能,尤其是在需要大量渲染线条的情况下,减少过多的点可以降低计算量。
  • Simplify Preview(简化预览):

    • 启用这个选项后,你可以在 Inspector 窗口中看到简化操作的预览效果。这意味着你可以实时查看简化后的线条效果,而不必实际执行简化操作。
  • Tolerance(公差):

    • Tolerance 控制简化过程中允许线条偏离原始线条的程度。换句话说,Tolerance 设置了简化过程中允许的最大误差。
    • 0 的值表示没有偏差,因此没有简化效果,线条保持原样。
    • 较高的正值表示允许更大的偏差,从而进行更多的简化。例如,如果你设置一个较高的值,简化后的线条会失去一些精度,但点的数量会显著减少。
    • 默认值是 1,表示有一定的简化,但仍会保持较为平滑的曲线。

    Edit Points模式

    当设置为 Edit Points 时,Unity 会在 Scene 视图中将 Line RendererPositions 数组 中的每个点表示为一个黄色球体。可以使用 移动工具 (Move tool) 来移动这些点,从而调整线条的形状。

    左键套索一个或者多个点

    • Show Wireframe(显示线框):

      • 启用此选项后,Unity 会在 Scene 视图中绘制一个线框,帮助你可视化线条的形状。这个线框将帮助你更清晰地查看并调整线条的构成。
    • Subdivide Selected(细分选中的点):

      • 当你选中两个或更多相邻的点时,Subdivide Selected 按钮会变得可用。点击此按钮后,Unity 会在选中的相邻点之间插入一个新点,从而细分这两个点之间的线段,使线条更加平滑。

    Create Points模式

    当设置为 Create Points 时,可以在 Scene 视图 中点击以将新点添加到 Line RendererPositions 数组 的末尾。通过鼠标点击或射线检测的方式来添加新的点,这让编辑变得更加直观和方便。

    • Input(输入方式):
      • 选择你希望使用的输入方式来创建点。
      • Mouse Position(鼠标位置):根据鼠标在 Scene 视图中的位置创建新点。
      • Physics Raycast(物理射线检测):根据射线投射在 Scene 中的碰撞位置来创建新点。Unity 会在射线碰撞的点上创建新点。
    • Layer Mask(层掩码):
      • 当输入方式设置为 Physics Raycast 时,你可以使用此属性来指定射线检测时所用的层。它帮助你过滤掉不需要的对象,仅创建射线与特定层上的物体碰撞时的点。
    • Min Vertex Distance(最小顶点距离):
      • 当你在 Scene 视图中拖动鼠标以创建点时,Line Renderer 会在鼠标拖动的距离超过此值时才创建一个新点。这样可以避免过于密集的点,使线条更简洁。
    • Offset(偏移):
      • 这个属性决定了创建点时的偏移量:
        • 如果输入方式设置为 Mouse Position,则偏移是相对于 Scene 摄像机的。
        • 如果输入方式设置为 Physics Raycast,则偏移是相对于射线的法线方向。

    Line settings

    1. Loop(闭环)
    • 启用此选项后,Line Renderer 会将线条的第一个点与最后一个点连接起来,形成一个闭合的环形线条。
    2. Positions(位置)
    • 一个 Vector3 数组,用于定义 Line Renderer 需要连接的点。每个点都会形成线条的一个顶点。
    3. Width(宽度)
    • 设置线条的宽度值和曲线值,以控制线条沿着其长度的宽度。

    横坐标对应线长,纵坐标对应宽度.

    4. Color(颜色)
    • 定义一个渐变来控制线条沿其长度的颜色变化。
      • Unity 会在每个顶点处从颜色渐变中采样,并在相邻的顶点之间进行线性插值。通过增加更多顶点,可以更精确地逼近复杂的颜色渐变效果。
    5. Corner Vertices(转角顶点)
    • 控制绘制转角时所使用的额外顶点数量。增加此值可以使线条的转角看起来更加圆滑。
    6. End Cap Vertices(端点顶点)
    • 控制绘制端点时所使用的额外顶点数量。增加此值可以使线条的端点看起来更加圆滑。
    7. Alignment(对齐方式)
    • 设置线条面朝的方向。
      • View:线条朝向摄像机。线条会始终朝向摄像机。也就是说,不管摄像机在哪里,线条的“前方”总是面向摄像机。这个设置通常用于确保线条始终面向玩家或视角的方向,常见于需要根据摄像机角度动态调整的场景中。
      • TransformZ:线条朝向其 Transform 组件的 Z 轴。线条会根据其 Transform 组件Z 轴 来确定朝向。这意味着线条会沿着 GameObjectZ 轴 绘制,不会随摄像机的移动而改变方向。这个设置适用于你希望线条保持固定方向,并且不受摄像机角度影响的场景。
    8. Texture Mode(纹理模式)
    • 控制纹理如何应用到线条上。
      • Stretch:将纹理一次性贴图到整个线条长度。
      • Tile:根据线条的世界单位长度重复纹理。可以通过 Material.SetTextureScale 来设置纹理的平铺频率。
      • DistributePerSegment:假设所有顶点均匀分布,纹理会被映射一次,覆盖整个线条的长度。
      • RepeatPerSegment:沿着线条重复纹理,每个线段重复一次。可以通过 Material.SetTextureScale 来调整纹理的平铺频率。
    9. Shadow Bias(阴影偏差)
    • 设置将阴影从光源偏移的量,以去除由于将体积近似为广告板几何体而导致的阴影伪影。
    10. Generate Lighting Data(生成光照数据)
    • 启用此选项后,Unity 会在构建线条几何体时包含法线和切线信息,从而使材质能够使用场景的光照。
    11. Use World Space(使用世界空间)
    • 如果启用,则将 Positions 数组中的点视为世界空间坐标。如果禁用,则点的位置相对于附加此组件的 GameObject 的Transform进行计算(即局部空间)。

    Materials

    组件使用的的全部材质列表

    Lighting

    阴影和全局光照相关的设置.

    Line Renderer 组件中的相关设置

    1. Cast Shadows(投射阴影)

      • 说明:该属性用于指定 Line Renderer 是否会在有适当光源时投射阴影。

      • 选项

        • On:该 Line Renderer 会投射阴影,只要有合适的光源照射。
        • Off:该 Line Renderer 不会投射阴影。
        • Two-sided:该 Line Renderer 会投射双面阴影,这意味着即使是单面物体(例如平面或四边形)也可以在光源位于其背后时投射阴影。
        • Shadows Only(仅阴影):启用此选项后,Line Renderer 仅投射阴影,而本身不会被渲染出来。

        注意:如果启用了 Baked Global Illumination(烘焙全局光照)或 Enlighten Realtime Global Illumination(Enlighten 实时全局光照),要支持双面阴影,材质必须支持 Double Sided Global Illumination(双面全局光照)。

    2. Receive Shadows(接收阴影)

      • 说明:该属性控制 Line Renderer 是否会接收投射到它上的阴影。只有在启用了 Baked Global IlluminationEnlighten Realtime Global Illumination 时,此设置才会生效。
      • 对应API:此属性对应于 Renderer.receiveShadows API。
    3. Contribute Global Illumination(贡献全局光照)

      • 说明:启用此属性后,Line Renderer 会参与全局光照计算(通常在光照烘焙时进行)。这使得它在 Baked Global IlluminationEnlighten Realtime Global Illumination 计算时考虑进来。
      • 对应API:启用此选项会在 GameObjectStatic Editor Flags 中启用 Contribute GI 标志,并与 StaticEditorFlags.ContributeGI API 对应。
    4. Receive Global Illumination(接收全局光照)

      • 说明:此属性决定 Line Renderer 是否会接收来自光照贴图或运行时光照探针的全局光照数据。只有启用了 Contribute Global Illumination 属性时,才可以编辑此选项。
      • 对应API:此属性与 MeshRenderer.receiveGI API 对应。

    其他的光照和阴影设置:

    • Lightmaps(光照贴图):控制是否使用光照贴图来接收全局光照。
    • Light Probes(光照探针):控制是否使用光照探针接收全局光照数据。
    • Prioritize Illumination(优先光照):启用此选项可以确保该渲染器始终参与 Enlighten 实时全局光照 计算,确保远距离发光物体的影响不会被排除。

    主要影响 Line Renderer 如何与场景中的光源、阴影、光照贴图、全局光照等互动。如果 Line Renderer 需要在光照环境中表现更为真实或者需要影响场景的光照计算,这些设置会非常有用。

    这是 Line Renderer 组件 中关于 光照探针 (Light Probes)反射探针 (Reflection Probes) 的设置部分。以下是这些设置的详细解释和翻译:

    Probes(探针)

    Light Probes(光照探针)

    此属性控制 Line Renderer 如何使用场景中的光照探针系统。光照探针可以提供环境中的光照信息,通常用于间接光照或实时光照数据。

    • Off(关闭)

      • 说明:禁用光照探针。Line Renderer 将不会使用任何插值的光照探针数据。
    • Blend Probes(混合光照探针)

      • 说明:启用插值光照探针(默认值)。Line Renderer 将使用一个插值后的光照探针来提供光照信息。
    • Use Proxy Volume(使用代理体积)

      • 说明:启用此选项时,Line Renderer 会使用一个3D网格形式的插值光照探针。它通过代理体积来决定光照的插值方式。
    • Custom Provided(自定义提供)

      • 说明:通过 MaterialPropertyBlock 从材质中提取光照探针的着色器统一值。这允许您自定义光照探针的行为。
    • Proxy Volume Override(代理体积覆盖)

      • 说明:设置一个其他 GameObject,该 GameObject 必须具有 Light Probe Proxy Volume 组件。启用此选项后,Line Renderer 将使用该代理体积组件中的光照探针数据。

      注意:此选项只有在 Light Probes 设置为 Use Proxy Volume 时才可见。

    Reflection Probes(反射探针)

    此属性控制 Line Renderer 如何接收来自反射探针的反射信息。反射探针通常用于提供场景中反射光的详细信息,适用于反射效果的渲染。

    • Off(关闭)
      • 说明:禁用反射探针。Unity 将使用默认的天空盒来处理反射,而不使用反射探针数据。
    • Blend Probes(混合反射探针)
      • 说明:启用反射探针,并且仅在多个反射探针之间进行混合。这在室内环境中尤其有用,在这种环境中,角色可能会在不同的光照条件之间切换。
    • Blend Probes and Skybox(混合反射探针和天空盒)
      • 说明:启用反射探针,并支持反射探针和默认天空盒之间的混合。这适用于室外环境,可以使得反射更加自然。
    • Simple(简单)
      • 说明:启用反射探针,但在两个重叠的反射体积之间没有混合。适用于简单的反射效果,不需要复杂的过渡。
    Anchor Override(锚点覆盖)
    • 说明:此设置指定 Unity 使用哪个 Transform 来确定在使用光照探针或反射探针时的插值位置。默认情况下,Unity 使用 Renderer 几何体的边界框中心来确定插值位置。

    • 对应 API:此属性对应于 Renderer.probeAnchor API。

    总结:

    这些设置控制 Line Renderer 如何与光照探针和反射探针互动,从而影响其光照和反射效果的渲染。根据场景的光照需求,可以启用或禁用这些探针功能,或选择不同的探针插值模式,以实现更精确的光照和反射表现。

    Additional Settings

    Motion Vectors(运动向量)
    • 说明:设置是否使用运动向量来跟踪 Renderer 每个像素在屏幕空间中的运动。这些运动信息可以用于应用后处理效果,如运动模糊。

    • 注意:并非所有平台都支持运动向量。可以查看 SystemInfo.supportsMotionVectors 来确认是否支持此功能。

    • 对应 API:此属性对应于 Renderer.motionVectorGenerationMode API。

      运动模式选项

      • Camera Motion Only(仅摄像机运动):仅跟踪摄像机的运动。
      • Per Object Motion(每个对象的运动):使用特定的通道来跟踪该 Renderer 的运动。
      • Force No Motion(强制不跟踪运动):不跟踪任何运动。
    Dynamic Occlusion(动态遮挡)
    • 说明:启用动态遮挡时,Unity 的遮挡剔除系统会在 Renderer 被静态遮挡物(如墙壁)阻挡时将其剔除,不进行渲染。
    • 默认:动态遮挡默认启用。
    • 应用场景:对于一些特殊效果,例如绘制角色的轮廓在墙后,可以禁用动态遮挡来确保该效果被正确渲染。
    Sorting Layer(排序层)
    • 说明:设置该 Renderer 所在的 Sorting Layer,用于确定渲染顺序。这个属性通常用于 2D 渲染系统,但在 3D 场景中也可通过设置不同的排序层来控制显示的先后顺序。
    Order in Layer(层级中的顺序)
    • 说明:设置该 RendererSorting Layer 中的渲染顺序。较大的值会覆盖较小值的渲染,适用于多个渲染对象之间的排序。

    总结:

    这些附加设置为 Line Renderer 提供了进一步的控制选项,主要用于调整渲染行为和效果。包括:

    • 运动向量 用于后处理效果,如运动模糊;
    • 动态遮挡 用于提高渲染性能,避免渲染被遮挡的物体;
    • 排序层层级中的顺序 用于控制渲染顺序,尤其在处理多个 2D 或 3D 渲染对象时非常有用。

    常用API

    1. 基本属性和方法

    • positionCount: 获取或设置 Line Renderer 中点的数量(即数组的大小)。

      lineRenderer.positionCount = 5;  // 设置 5 个点
      
    • SetPosition(int index, Vector3 position): 设置线条在指定索引处的点的位置。

      lineRenderer.SetPosition(0, new Vector3(0, 0, 0));  // 设置第一个点的位置
      
    • GetPosition(int index): 获取指定索引处的点的位置。

      Vector3 position = lineRenderer.GetPosition(0);  // 获取第一个点的位置
      
    • widthMultiplier: 控制线条的宽度比例。

      lineRenderer.widthMultiplier = 0.1f;  // 设置线条的宽度
      
    • startWidthendWidth: 控制线条起始和结束处的宽度。

      lineRenderer.startWidth = 0.1f;  // 起始宽度
      lineRenderer.endWidth = 0.1f;    // 结束宽度
      
    • startColorendColor: 控制线条的起始和结束颜色。

      lineRenderer.startColor = Color.red;  // 起始颜色
      lineRenderer.endColor = Color.green;  // 结束颜色
      
    • loop: 设置线条是否应该连接回起始点形成闭环。

      lineRenderer.loop = true;  // 设置为闭合
      

    2. 控制材质和纹理

    • material: 设置 Line Renderer 的材质。

      lineRenderer.material = new Material(Shader.Find("Sprites/Default"));
      
    • textureMode: 设置纹理的模式,控制纹理如何应用在整个线条上。

      lineRenderer.textureMode = LineTextureMode.Stretch;  // 拉伸纹理
      
    • alignment: 控制线条的朝向。

      lineRenderer.alignment = LineAlignment.Local;  // 根据对象的本地坐标轴
      

    3. 颜色和渐变

    • colorGradient: 使用渐变来控制线条颜色。
      Gradient gradient = new Gradient();
      gradient.SetKeys(new GradientColorKey[] { new GradientColorKey(Color.red, 0.0f), new GradientColorKey(Color.blue, 1.0f) },new GradientAlphaKey[] { new GradientAlphaKey(1.0f, 0.0f), new GradientAlphaKey(0.0f, 1.0f) }
      );
      lineRenderer.colorGradient = gradient;
      

    4. 控制线条的细节

    • numCornerVertices: 设置绘制线条角落时使用的额外点的数量,用于使角落更加圆滑。

      lineRenderer.numCornerVertices = 10;  // 设置角落平滑度
      
    • numCapVertices: 设置线条末端的点数,以创建圆形端点。

      lineRenderer.numCapVertices = 10;  // 设置端点的平滑度
      
    • generateLightingData: 启用后,生成用于照明计算的法线和切线。

      lineRenderer.generateLightingData = true;
      

    5. 动态更新

    • enabled: 启用或禁用 Line Renderer 的渲染功能。
      lineRenderer.enabled = true;  // 启用 Line Renderer
      lineRenderer.enabled = false; // 禁用 Line Renderer
      

    示例代码

    using UnityEngine;public class LineRendererExample : MonoBehaviour
    {public LineRenderer lineRenderer;void Start(){// 设置 Line Renderer 属性lineRenderer.positionCount = 4;  // 4个点lineRenderer.SetPosition(0, new Vector3(0, 0, 0));   // 第一个点lineRenderer.SetPosition(1, new Vector3(1, 0, 0));   // 第二个点lineRenderer.SetPosition(2, new Vector3(1, 1, 0));   // 第三个点lineRenderer.SetPosition(3, new Vector3(0, 1, 0));   // 第四个点lineRenderer.startWidth = 0.1f; // 起始宽度lineRenderer.endWidth = 0.1f;   // 结束宽度lineRenderer.startColor = Color.red; // 起始颜色lineRenderer.endColor = Color.green; // 结束颜色lineRenderer.loop = true; // 闭合线条// 设置渐变色Gradient gradient = new Gradient();gradient.SetKeys(new GradientColorKey[] { new GradientColorKey(Color.red, 0.0f), new GradientColorKey(Color.blue, 1.0f) },new GradientAlphaKey[] { new GradientAlphaKey(1.0f, 0.0f), new GradientAlphaKey(0.0f, 1.0f) });lineRenderer.colorGradient = gradient;}
    }
    

    相关文章:

    Unity Line Renderer Component入门

    Overview Line Renderer 组件是 Unity 中用于绘制连续线段的工具。它通过在三维空间中的两个或两个以上的点的数组,并在每个点之间绘制一条直线。可以绘制从简单的直线到复杂的螺旋线等各种图形。 1. 连续性和独立线条 连续性:Line Renderer 绘制的线条…...

    数据库的三级模式结构与两级映像

    三级模式结构与两级映像 什么是数据库的三级模式结构?1. 模式(Conceptual Schema,概念模式)定义特点作用示例 2. 外模式(External Schema,外部模式)定义特点作用举例 3. 内模式(Inte…...

    TCP断开通信前的四次挥手(为啥不是三次?)

    1.四次握手的过程 客户端A发送 FIN(终止连接请求) A:我要断开连接了(FIN)。A进入FIN_WAIT_1状态,表示请求断开,等待对方确认。 服务器B回复 ACK(确认断开请求,但还未准备…...

    win32汇编环境,按字节、双字等复制字符的操作

    ;运行效果 ;win32汇编环境,按字节、双字等复制字符的操作 ;这是汇编的优点之一。我们可以按字节、双字、四字、八字节等复制或挨个检查字符。 ;有时候,在接收到的一串信息中,比如访问网站时,返回的字串里,有很多0值存在&#xff0…...

    .net 项目引用与 .NET Framework 项目引用之间的区别和相同

    在 .NET 和 .NET Framework 项目中,引用其他库或项目的方式有一些区别和相同之处。以下是详细的对比: 相同点 引用目的: 目的:无论是 .NET 还是 .NET Framework 项目,引用其他库或项目的主要目的是为了使用这些库或项…...

    RabbitMQ--延迟队列

    (一)延迟队列 1.概念 延迟队列是一种特殊的队列,消息被发送后,消费者并不会立刻拿到消息,而是等待一段时间后,消费者才可以从这个队列中拿到消息进行消费 2.应用场景 延迟队列的应用场景很多,…...

    使用pyboard、micropython和tja1050进行can通信

    单片机和can收发器之间tx、rx不需要交叉接线!!! tja1050的rx接Y3、tx接Y4 from pyb import CANcan CAN(1) can.init(modecan.NORMAL, prescaler6, sjw1, bs14, bs22, auto_restartTrue) # 1Mbps的配置,本文使用的micropython1.…...

    JS学习之JavaScript模块化规范进化论

    前言 JavaScript 语言诞生至今,模块规范化之路曲曲折折。 前言 JavaScript 语言诞生至今,模块规范化之路曲曲折折。社区先后出现了各种解决方案,包括 AMD、CMD、CommonJS 等,而后 ECMA 组织在 JavaScript 语言标准层面&#xff0…...

    亚博microros小车-原生ubuntu支持系列:7-脸部检测

    背景知识 官网介绍: Face Mesh - mediapipe mpFaceMesh.FaceMesh() 类的参数有:self.staticMode, self.maxFaces, self.minDetectionCon, self.minTrackCon staticMode:是否将每帧图像作为静态图像处理。如果为 True,每帧都会进行人脸检测…...

    第二届国赛铁三wp

    第二届国赛 缺东西去我blog找👇 第二届长城杯/铁三 | DDLS BLOG web Safe_Proxy 源码题目 from flask import Flask, request, render_template_stringimport socketimport threadingimport htmlapp Flask(__name__)app.route(/, methods"GET"])de…...

    缓存商品、购物车(day07)

    缓存菜品 问题说明 问题说明:用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大。 结果: 系统响应慢、用户体验差 实现思路 通过Redis来缓存菜品数据,减少数据库查询…...

    4【编程语言的鄙视链原因解析】

    在编程行业中,是存在鄙视链的,技术越好的圈子越不明显,技术越差的圈子越明显,很多时候为新人营造了错误的观点,我们来针对此类现象为新人们讲解原因 ①心里落差:比如你是学厨师的 你经过过年努力练…...

    美团一面面经

    第一个问题:介绍一下最近做的项目 第二个问题:我对你项目有个地方比较感兴趣啊。就是你用的那个二级缓存,你的吞吐量有多大啊,为什么需要使用二级缓存? 答: 在二级缓存策略下,笔记详情接口的吞…...

    什么是报文的大端和小端,有没有什么记忆口诀?

    在计算机科学中,**大端(Big-Endian)和小端(Little-Endian)**是两种不同的字节序(即多字节数据在内存中的存储顺序)。理解这两种字节序对于网络通信、文件格式解析以及跨平台编程等非常重要。 1…...

    Spring中BeanFactory和ApplicationContext的区别

    目录 一、功能范围 二、Bean的加载时机 三、国际化支持 四、事件发布 五、资源加载 六、使用场景说明 在Spring框架中,BeanFactory和ApplicationContext是两种常见的容器实现方式,它们在功能和使用场景上存在一些显著的差异。本文将详细解析这两种容…...

    期货行业专题|基于超融合实现 IT 基础设施现代化与国产化转型实践合集

    SmartX 期货行业重要进展 帮助近 60 家期货用户部署 730 超融合节点,含 230 信创节点。 深入 5 大应用场景: 核心生产资源池 主席灾备资源池 信创云资源池 云原生存储与容器资源池 分布式存储资源池 更多超融合金融核心生产业务场景实践&#xf…...

    AI新玩法:Flux.1图像生成结合内网穿透远程生图的解决方案

    文章目录 前言1. 本地部署ComfyUI2. 下载 Flux.1 模型3. 下载CLIP模型4. 下载 VAE 模型5. 演示文生图6. 公网使用 Flux.1 大模型6.1 创建远程连接公网地址 7. 固定远程访问公网地址 前言 在这个AI技术日新月异的时代,图像生成模型已经成为了创意工作者和开发者手中…...

    Jenkins-pipeline Jenkinsfile说明

    一. 简介: Jenkinsfile 是一个文本文件,通常保存在项目的源代码仓库中,用于定义 Jenkins Pipeline 的行为。使用 Jenkinsfile 可以使 CI/CD 流程版本化,并且易于共享和审核。 二. 关于jenkinsfile: jenkins的pipeline…...

    vue3中为什么引入setup,引入setup是为了解决什么问题,setup的执行时机是什么?返回值是什么

    在 Vue 3 中,引入 setup 函数是为了提供一种更加简洁、灵活、逻辑分离和可维护的方式来组织组件的逻辑。setup 使得 Vue 3 在构建应用时,能够更加有效地支持组合式 API(Composition API),解决了 Vue 2 中一些组件逻辑组…...

    Ubuntu 安装 docker 配置环境及其常用命令

    Docker 安装与配置指南 本文介绍如何在 Ubuntu 系统上安装 Docker,解决权限问题,配置 Docker Compose,代理端口转发,容器内部代理问题等并进行相关的优化设置。参考官方文档:Docker 官方安装指南 一、安装 Docker 1…...

    基于算法竞赛的c++编程(28)结构体的进阶应用

    结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

    深入剖析AI大模型:大模型时代的 Prompt 工程全解析

    今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...

    SciencePlots——绘制论文中的图片

    文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...

    在四层代理中还原真实客户端ngx_stream_realip_module

    一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...

    【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

    可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...

    《通信之道——从微积分到 5G》读书总结

    第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...

    JavaScript 数据类型详解

    JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...

    Linux-进程间的通信

    1、IPC: Inter Process Communication(进程间通信): 由于每个进程在操作系统中有独立的地址空间,它们不能像线程那样直接访问彼此的内存,所以必须通过某种方式进行通信。 常见的 IPC 方式包括&#…...

    表单设计器拖拽对象时添加属性

    背景:因为项目需要。自写设计器。遇到的坑在此记录 使用的拖拽组件时vuedraggable。下面放上局部示例截图。 坑1。draggable标签在拖拽时可以获取到被拖拽的对象属性定义 要使用 :clone, 而不是clone。我想应该是因为draggable标签比较特。另外在使用**:clone时要将…...

    生信服务器 | 做生信为什么推荐使用Linux服务器?

    原文链接&#xff1a;生信服务器 | 做生信为什么推荐使用Linux服务器&#xff1f; 一、 做生信为什么推荐使用服务器&#xff1f; 大家好&#xff0c;我是小杜。在做生信分析的同学&#xff0c;或是将接触学习生信分析的同学&#xff0c;<font style"color:rgb(53, 1…...