当前位置: 首页 > 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…...

    uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

    在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

    2024年赣州旅游投资集团社会招聘笔试真

    2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

    python如何将word的doc另存为docx

    将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

    【单片机期末】单片机系统设计

    主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...

    MySQL 8.0 事务全面讲解

    以下是一个结合两次回答的 MySQL 8.0 事务全面讲解,涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容,并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念(ACID) 事务是…...

    基于PHP的连锁酒店管理系统

    有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...

    何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡

    何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡 背景 我们以建设星云智控官网来做AI编程实践,很多人以为AI已经强大到不需要程序员了,其实不是,AI更加需要程序员,普通人…...

    大模型——基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程

    基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程 下载安装Docker Docker官网:https://www.docker.com/ 自定义Docker安装路径 Docker默认安装在C盘,大小大概2.9G,做这行最忌讳的就是安装软件全装C盘,所以我调整了下安装路径。 新建安装目录:E:\MyS…...

    嵌入式面试常问问题

    以下内容面向嵌入式/系统方向的初学者与面试备考者,全面梳理了以下几大板块,并在每个板块末尾列出常见的面试问答思路,帮助你既能夯实基础,又能应对面试挑战。 一、TCP/IP 协议 1.1 TCP/IP 五层模型概述 链路层(Link Layer) 包括网卡驱动、以太网、Wi‑Fi、PPP 等。负责…...

    性能优化中,多面体模型基本原理

    1)多面体编译技术是一种基于多面体模型的程序分析和优化技术,它将程序 中的语句实例、访问关系、依赖关系和调度等信息映射到多维空间中的几何对 象,通过对这些几何对象进行几何操作和线性代数计算来进行程序的分析和优 化。 其中&#xff0…...