Unity 初步了解
1.Unity 是啥
Unity是一个实时3D互动内容创作和运营平台。它可以帮助游戏开发、美术、建筑、汽车设计、影视等行业的创作者将创意变为现实。Unity平台提供了一套完善的软件解决方案,用于创作、运营和变现任何实时互动的2D和3D内容,支持的平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备等。
Unity具有许多特点和优势,包括强大的图形引擎、易于学习和使用、多种工具和插件支持、社区支持和资源丰富、物理引擎、灵活性和可扩展性等。这些特点使得Unity在游戏开发、动画行业、工业等领域有着广泛的应用。
Unity的历史可以追溯到2004年,自那时起,它不断发展和壮大,成为全球领先的实时3D互动内容创作和运营平台之一。Unity的用户遍布全球190多个国家和地区,其创作者社区也非常活跃,为开发者提供了丰富的资源和支持。
总的来说,Unity是一个功能强大、易于使用和高度可扩展的实时3D互动内容创作和运营平台,适用于各种行业和领域。
2.在Unity中绘制一个三角形
在Unity中绘制一个三角形,你通常不需要直接使用DirectX API,因为Unity已经为你提供了一个高级的渲染系统。在Unity中,你可以通过创建自定义的顶点数据和材质来绘制任何形状的图形,包括三角形。
以下是一个简单的示例,说明如何在Unity中使用C#脚本来绘制一个三角形:
-
创建一个新的Unity项目:确保你已经安装了Unity编辑器,并创建一个新的3D项目。
-
创建一个新的C#脚本:在Project视图中,右键点击Assets文件夹,选择
Create
->C# Script
,并命名为TriangleDrawer.cs
。 -
编写脚本:打开
TriangleDrawer.cs
脚本,并编写以下代码来绘制一个三角形:
using System.Collections;
using System.Collections.Generic;
using UnityEngine; [RequireComponent(typeof(MeshFilter), typeof(MeshRenderer))]
public class TriangleDrawer : MonoBehaviour
{ void Start() { // 创建一个新的Mesh对象 Mesh mesh = new Mesh(); // 设置三角形的顶点 Vector3[] vertices = new Vector3[3] { new Vector3(-0.5f, 0.5f, 0f), // 顶部左侧 new Vector3(0f, -0.5f, 0f), // 底部中央 new Vector3(0.5f, 0.5f, 0f) // 顶部右侧 }; // 设置顶点索引以形成三角形 int[] triangles = new int[3] { 0, 1, 2 }; // 将顶点数据赋值给Mesh mesh.vertices = vertices; mesh.triangles = triangles; // 你可以设置更多Mesh属性,如法线、UV坐标等 // 获取MeshFilter组件,并将Mesh赋给它 MeshFilter meshFilter = GetComponent<MeshFilter>(); meshFilter.mesh = mesh; // (可选)设置Material MeshRenderer renderer = GetComponent<MeshRenderer>(); renderer.material = new Material(Shader.Find("Standard")); renderer.material.color = Color.red; // 设置三角形颜色为红色 }
}
-
将脚本附加到游戏对象:在Unity的Hierarchy视图中,创建一个新的3D Object(比如Cube),然后将
TriangleDrawer.cs
脚本拖放到这个对象上。由于脚本上有一个RequireComponent
属性,它会自动为你添加MeshFilter
和MeshRenderer
组件。 -
运行场景:点击Unity编辑器顶部的播放按钮来运行场景,你应该能在Game视图中看到一个红色的三角形。
这个示例代码创建了一个Mesh对象,并设置了它的顶点数据和三角形索引来形成一个三角形。然后,它将这个Mesh赋值给一个MeshFilter组件,并将一个带有红色材质的MeshRenderer组件附加到游戏对象上,以便在场景中渲染这个三角形。
3.Unity 是收费的吗
Unity引擎本身并不完全收费。Unity提供了多个版本,其中Unity Personal(个人版)是免费的,而Unity Plus和Unity Pro(专业版和企业版)则需要付费。
具体来说,Unity Plus的价格为每月35美元或每年299美元,而Unity Pro的价格为每月125美元或每年1500美元。这些付费版本提供了更多的功能和支持,例如Unity Hub、Unity Ads、Unity Cloud和Unity Technical Support等。
另外,Unity在2024年1月1日起实施了一项新的收费政策,即对于通过Unity Pro和Unity Enterprise进行的游戏开发,将需要支付运行时费用。然而,开发者可以选择两种缴费方式:一种是按照收入的2.5%进行收费,另一种则是根据每月参与游戏的新玩家数量来计算收费金额。
此外,Unity还曾经宣布过一项基于“游戏安装量”的收费方式,但这一政策在颁布后不久就被调整,改为用个人版开发将不收取安装费用,直接免费;而专业版和企业版的收费标准将上调。
请注意,以上信息可能会随着Unity官方政策的更新而发生变化。建议访问Unity官方网站或与Unity销售团队联系以获取最新的定价信息。
4.c# Unity 绘制一个立方体
在 Unity 中,使用 C# 绘制一个立方体(通常称为“Cube”或“Box”)通常意味着在场景中添加一个立方体对象。这可以通过几种方式实现,但最常见的是使用内置的 GameObject.CreatePrimitive
方法或直接在 Unity 的编辑器中放置一个立方体。
以下是如何使用 C# 脚本在 Unity 中动态创建一个立方体的步骤:
-
打开 Unity 并创建一个新的 3D 项目。
-
创建一个新的 C# 脚本。例如,你可以将其命名为
CreateCube.cs
。 -
编写 C# 脚本以创建立方体:
using System.Collections;
using System.Collections.Generic;
using UnityEngine; public class CreateCube : MonoBehaviour
{ // Start is called before the first frame update void Start() { // 创建一个立方体并设置其位置 GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube); cube.transform.position = new Vector3(0, 0, 5); // 将立方体放置在 (0, 0, 5) 的位置 // (可选)设置立方体的其他属性,如缩放和颜色 cube.transform.localScale = new Vector3(2, 2, 2); // 设置立方体的大小为 2x2x2 Renderer renderer = cube.GetComponent<Renderer>(); renderer.material.color = Color.red; // 设置立方体的颜色为红色 // (可选)给立方体添加标签或层,以便在后续脚本中引用 cube.tag = "MyCube"; cube.layer = LayerMask.NameToLayer("MyLayer"); // 确保在 Unity 的 Tag 和 Layer Manager 中设置了这些 } // Update is called once per frame void Update() { // 这里通常不需要更新代码,除非你想在运行时改变立方体 }
}
- 将脚本附加到一个 GameObject。你可以创建一个空的 GameObject 并将其命名为“Cube Creator”或任何你喜欢的名字,然后将
CreateCube.cs
脚本附加到这个 GameObject 上。 - 运行场景。当场景开始运行时,你应该会在场景中看到一个红色的立方体。
注意:在 Unity 的实际使用中,你通常会通过 Unity 的编辑器来放置和设置对象,而不是在代码中动态创建它们。但是,动态创建对象对于游戏逻辑和运行时生成内容非常有用。
5.new Vector3(-0.5f, 0.5f, 0f) 的三个参数啥意思
在Unity中,Vector3
是一个用于表示三维空间中点或向量的结构。当你创建一个新的 Vector3
实例,如 new Vector3(-0.5f, 0.5f, 0f)
,你正在指定这个三维点或向量的x、y和z坐标。
- 第一个参数
-0.5f
是x坐标。它表示这个点或向量在x轴上的位置或方向。在这个例子中,x坐标是-0.5,意味着它在x轴的负方向上稍微偏移了原点(原点坐标为(0, 0, 0))。 - 第二个参数
0.5f
是y坐标。它表示这个点或向量在y轴上的位置或方向。在这个例子中,y坐标是0.5,意味着它在y轴的正方向上稍微偏移了原点。 - 第三个参数
0f
是z坐标。它表示这个点或向量在z轴上的位置或方向。在这个例子中,z坐标是0,意味着它在z轴上没有偏移,即它位于z轴的零点上。
将这些坐标组合起来,new Vector3(-0.5f, 0.5f, 0f)
描述了一个在三维空间中位于(-0.5, 0.5, 0)的点或向量。
在Unity的上下文中,这个Vector3
实例经常用于设置物体的位置、旋转(作为欧拉角或四元数的部分)、速度、加速度等。例如,你可以用它来设置一个GameObject的位置:
GameObject myObject = new GameObject("My Object"); | |
myObject.transform.position = new Vector3(-0.5f, 0.5f, 0f); |
这段代码创建了一个新的GameObject,并将其位置设置为三维空间中的(-0.5, 0.5, 0)点。
6.c# Unity 绘制一个三棱锥
在Unity中,你可以使用C#脚本来创建一个自定义的三棱锥(也称为四面体)。以下是一个简单的步骤指南,说明如何在Unity中使用C#脚本来绘制一个三棱锥:
步骤 1: 创建Unity项目和C#脚本
- 打开Unity Hub并创建一个新的3D项目。
- 在Unity编辑器中,右键点击
Assets
文件夹 ->Create
->C# Script
,并命名为Tetrahedron.cs
。
步骤 2: 编写C#脚本
在Tetrahedron.cs
中,编写以下代码来创建三棱锥的Mesh:
using System.Collections;
using System.Collections.Generic;
using UnityEngine; public class Tetrahedron : MonoBehaviour
{ void Start() { // 三棱锥的顶点坐标(假设单位长度为1) Vector3[] vertices = new Vector3[4] { new Vector3(0.5f, Mathf.Sqrt(0.75f), 0), new Vector3(-0.5f, Mathf.Sqrt(0.75f), 0), new Vector3(0, -Mathf.Sqrt(0.75f), 0.5f), new Vector3(0, -Mathf.Sqrt(0.75f), -0.5f) }; // 三棱锥的三角形索引 int[] triangles = new int[12] { 0, 2, 1, // 第一个三角形:底部三角形 0, 1, 3, // 第二个三角形:与顶点相连的三角形 0, 3, 2, // 第三个三角形:与顶点相连的三角形 1, 2, 3 // 第四个三角形:与顶点相连的三角形(可选,确保封闭) }; // 创建一个新的Mesh对象 Mesh mesh = new Mesh(); mesh.vertices = vertices; mesh.triangles = triangles; // 计算法线(可选,但可以提高渲染质量) mesh.RecalculateNormals(); // 将Mesh赋给GameObject的MeshFilter组件 GetComponent<MeshFilter>().mesh = mesh; // 创建一个简单的材质并应用到GameObject上(可选) // Material material = new Material(Shader.Find("Standard")); // GetComponent<Renderer>().material = material; }
}
步骤 3: 将脚本附加到GameObject上
- 在Unity编辑器中,创建一个新的空GameObject(可以命名为
TetrahedronObject
)。 - 将
Tetrahedron.cs
脚本拖动到TetrahedronObject
上,或者将TetrahedronObject
拖入到Tetrahedron.cs
的Inspector窗口中,以将脚本附加到GameObject上。
步骤 4: 运行场景并查看效果
- 点击Unity编辑器顶部的播放按钮来运行场景。
- 你应该能在Scene视图和Game视图中看到你的三棱锥。
注意:上述代码中,三棱锥的顶点坐标和三角形索引是硬编码的,你可以根据需要调整它们来改变三棱锥的形状和大小。此外,我还添加了一个可选的注释部分来创建一个简单的材质,但通常Unity会自动为你创建一个默认的材质。如果你想要更复杂的材质或纹理,你可以取消注释那部分代码,并修改它以满足你的需求。
7.c# Unity 绘制一个旋转的三棱锥
在Unity中,绘制一个旋转的三棱锥涉及到创建三棱锥的Mesh,并为其添加旋转的动画。以下是一个步骤指南,以及相应的C#代码示例:
步骤 1: 创建Unity项目和C#脚本
- 打开Unity Hub并创建一个新的3D项目。
- 在Unity编辑器中,创建一个新的C#脚本,命名为
RotatingTetrahedron.cs
。
步骤 2: 编写C#脚本
在RotatingTetrahedron.cs
中,编写以下代码来创建并旋转三棱锥:
using UnityEngine; public class RotatingTetrahedron : MonoBehaviour
{ // 三棱锥的Mesh数据 private Mesh tetrahedronMesh; // 旋转速度 public float rotationSpeed = 50f; void Start() { // 创建三棱锥的Mesh CreateTetrahedronMesh(); // 将Mesh赋给GameObject的MeshFilter组件 GetComponent<MeshFilter>().mesh = tetrahedronMesh; // 添加一个默认的材质(可选) GetComponent<Renderer>().material = new Material(Shader.Find("Standard")); } void CreateTetrahedronMesh() { // 三棱锥的顶点坐标(假设单位长度为1) Vector3[] vertices = new Vector3[4] { new Vector3(0.5f, Mathf.Sqrt(0.75f), 0), new Vector3(-0.5f, Mathf.Sqrt(0.75f), 0), new Vector3(0, -Mathf.Sqrt(0.75f), 0.5f), new Vector3(0, -Mathf.Sqrt(0.75f), -0.5f) }; // 三棱锥的三角形索引 int[] triangles = new int[12] { 0, 2, 1, // 底部三角形 0, 1, 3, // 与顶点连接的第一个三角形 0, 3, 2, // 与顶点连接的第二个三角形 1, 2, 3 // 确保封闭(可省略,但通常为了正确渲染需要) }; // 创建一个新的Mesh对象 tetrahedronMesh = new Mesh(); tetrahedronMesh.vertices = vertices; tetrahedronMesh.triangles = triangles; // 计算法线(提高渲染质量) tetrahedronMesh.RecalculateNormals(); } void Update() { // 旋转GameObject transform.Rotate(Vector3.up, rotationSpeed * Time.deltaTime); }
}
步骤 3: 将脚本附加到GameObject上
- 在Unity编辑器中,创建一个新的空GameObject(可以命名为
RotatingTetrahedronObject
)。 - 将
RotatingTetrahedron.cs
脚本拖动到RotatingTetrahedronObject
上,或者将RotatingTetrahedronObject
拖入到RotatingTetrahedron.cs
的Inspector窗口中,以将脚本附加到GameObject上。
步骤 4: 运行场景并查看效果
- 点击Unity编辑器顶部的播放按钮来运行场景。
- 你应该能在Scene视图和Game视图中看到你的三棱锥在旋转。
注意:上述代码中的rotationSpeed
变量用于控制三棱锥的旋转速度。你可以根据需要调整其值来改变旋转速度。此外,我还添加了一个默认的材质到Renderer组件上,但你可以根据需要更改材质和着色器。
8.c# Unity 绘制一个圆形
在Unity中,使用C#绘制一个圆形通常涉及两种主要方法:一种是使用Unity的GUI系统(现在称为UnityEngine.UI),另一种是直接在3D世界中绘制一个圆形的几何体(如使用Mesh或Particle System)。
使用Unity的GUI系统(UI)
如果你想要在一个UI Canvas上绘制一个圆形,你可以使用Image
组件配合一个圆形的Sprite
。但如果你想要用代码动态绘制,你可以使用Graphics.DrawTexture
或GUI.DrawTexture
(但请注意,GUI.DrawTexture
主要用于旧版本的Unity UI系统,并且不建议在新项目中使用)。
然而,对于更高级的UI绘图,你可能需要创建一个自定义的EditorWindow
或使用UI.DrawCall
API,但这超出了简单绘图的范畴。
在3D世界中绘制圆形
在3D世界中绘制圆形通常涉及创建一个Mesh。以下是一个简单的示例,展示了如何创建一个圆形的Mesh并在Unity中渲染它:
using System.Collections;
using System.Collections.Generic;
using UnityEngine; public class CircleDrawer : MonoBehaviour
{ public float radius = 1f; public int segments = 32; Mesh mesh; void Start() { mesh = new Mesh(); GetComponent<Renderer>().material.shader = Shader.Find("Standard"); Vector3[] vertices = new Vector3[segments + 1]; Vector2[] uvs = new Vector2[segments + 1]; int[] triangles = new int[segments * 3]; float step = Mathf.PI * 2f / segments; for (int i = 0; i <= segments; i++) { float angle = i * step; vertices[i] = new Vector3(Mathf.Cos(angle) * radius, 0, Mathf.Sin(angle) * radius); uvs[i] = new Vector2(vertices[i].x / radius + 0.5f, vertices[i].z / radius + 0.5f); if (i < segments) { triangles[i * 3] = 0; triangles[i * 3 + 1] = i + 1; triangles[i * 3 + 2] = i; } } mesh.vertices = vertices; mesh.uv = uvs; mesh.triangles = triangles; GetComponent<MeshFilter>().mesh = mesh; }
}
这个脚本会创建一个Mesh,它表示一个中心在原点、半径为radius
、由segments
个线段组成的圆形。这个Mesh被附加到包含此脚本的GameObject的MeshFilter组件上。注意,这个圆形是在XY平面上绘制的,Z轴为0。如果你想要在不同的平面上绘制圆形,你需要相应地调整顶点的坐标。
9.c# Unity 绘制一个茶壶
在Unity中使用C#来绘制一个茶壶并不直接意味着“绘制”这个动作,因为Unity是一个游戏引擎,它使用预制的3D模型(如茶壶)并通过渲染管线来显示它们。但是,你可以通过以下步骤来在Unity中展示一个茶壶:
-
导入茶壶模型:首先,你需要一个茶壶的3D模型。这个模型可以是
.fbx
、.obj
、.dae
(Collada)或其他Unity支持的格式。你可以从网上下载免费的3D模型,或者使用3D建模软件(如Blender)自己创建一个。 -
将模型导入Unity:将茶壶模型文件拖放到Unity项目的
Assets
文件夹中。Unity会自动导入并转换模型,使其可以在编辑器中查看和在游戏中使用。 -
在场景中创建茶壶:在Unity编辑器中,你可以通过以下步骤来创建一个茶壶GameObject:
a. 在Hierarchy窗口中,右键点击并选择
3D Object
>Mesh
(如果你的茶壶是一个Mesh而不是Prefab)。b. 或者,你可以直接从Project窗口中拖动茶壶模型文件到Hierarchy窗口来创建一个带有该模型的GameObject。
-
调整茶壶属性和设置:在Inspector窗口中,你可以调整茶壶的位置、旋转、缩放等属性。你还可以更改其材质(Material)来改变其外观。
-
编写C#脚本来控制茶壶(如果需要):虽然简单地展示茶壶并不需要编写任何C#代码,但如果你想要通过脚本来控制茶壶(例如,使其移动、旋转或改变其属性),你可以创建一个新的C#脚本并将其附加到茶壶的GameObject上。
-
运行场景:点击Unity编辑器中的播放按钮来运行场景,并在Game视图中查看茶壶。
下面是一个简单的C#脚本示例,它附加到一个茶壶GameObject上,并使其在游戏中循环旋转:
using System.Collections;
using System.Collections.Generic;
using UnityEngine; public class RotateTeapot : MonoBehaviour
{ public float rotationSpeed = 50f; void Update() { // 使茶壶围绕其Y轴旋转 transform.Rotate(0, rotationSpeed * Time.deltaTime, 0); }
}
在这个示例中,RotateTeapot
脚本包含一个rotationSpeed
公共变量,你可以在Unity编辑器中设置这个变量的值。在Update
方法中,我们使用Time.deltaTime
来确保旋转速度是帧速率无关的,并使用transform.Rotate
方法来使茶壶围绕其Y轴旋转。
10.c# Unity 创建一个动画
在Unity中创建一个动画通常涉及几个步骤,包括导入动画模型(如果模型已带有动画),或者为现有模型创建动画。以下是一个基本的指南,说明如何在Unity中使用C#和Unity的动画系统为3D模型创建一个简单的动画。
步骤 1: 导入模型
首先,你需要一个带有动画的3D模型,或者一个没有动画的模型,你可以为其创建动画。将模型文件(如.fbx、.obj、.dae等)导入到Unity的Assets
文件夹中。
步骤 2: 配置模型
在Unity编辑器中,将模型拖放到场景中,并在Inspector窗口中配置其属性。如果模型已带有动画,你可能需要为其指定一个Animator Controller。
步骤 3: 创建Animator Controller
-
在Project窗口中,右键点击
Assets
文件夹,选择Create
>Animator Controller
。这将创建一个新的Animator Controller文件。 -
将新创建的Animator Controller文件拖放到场景中模型的Animator组件中。这会将Animator Controller与模型关联起来。
步骤 4: 创建动画状态
-
在Project窗口中双击Animator Controller文件,打开Animator窗口。
-
在Animator窗口中,你可以创建动画状态(States)和转换(Transitions)。每个状态代表模型的一个动画姿势,而转换则定义了从一个状态过渡到另一个状态的条件。
-
你可以通过点击Animator窗口中的“Create State”按钮来创建新的状态,并为其指定一个动画片段(Animation Clip)。动画片段可以在模型的Animation窗口中创建或导入。
步骤 5: 设置转换
在Animator窗口中,你可以通过拖动状态之间的箭头来创建转换。然后,你可以设置转换的条件,如参数阈值、时间等。
步骤 6: 编写C#脚本来控制动画
如果你想要通过脚本来控制动画的播放,你可以使用Animator组件的API。以下是一个简单的示例,展示了如何使用C#脚本来触发一个动画状态:
using System.Collections;
using System.Collections.Generic;
using UnityEngine; public class AnimationController : MonoBehaviour
{ private Animator animator; void Start() { // 获取Animator组件 animator = GetComponent<Animator>(); // 假设你有一个名为"Walk"的动画状态 // 你可以通过Animator.SetBool、Animator.SetInteger等方法来触发状态转换 // 这里我们使用SetBool作为一个示例 animator.SetBool("IsWalking", true); // 开始播放"Walk"动画 } // 其他方法,如Update,可以在这里添加以根据条件触发动画 // ...
}
在上面的示例中,我们假设Animator Controller中有一个布尔参数IsWalking
,它控制从默认状态到“Walk”状态的转换。当IsWalking
为true
时,动画将过渡到“Walk”状态。
步骤 7: 测试动画
最后,运行场景并查看动画是否按预期工作。你可以使用Unity的Play、Pause和Step按钮来测试动画的不同部分。
相关文章:
Unity 初步了解
1.Unity 是啥 Unity是一个实时3D互动内容创作和运营平台。它可以帮助游戏开发、美术、建筑、汽车设计、影视等行业的创作者将创意变为现实。Unity平台提供了一套完善的软件解决方案,用于创作、运营和变现任何实时互动的2D和3D内容,支持的平台包括手机、…...

爬虫学习(4)每日一笑
代码 import requests import re import osif __name__ "__main__":if not os.path.exists("./haha"):os.makedirs(./haha)url https://mlol.qt.qq.com/go/mlol_news/varcache_article?docid6321992422382570537&gameid3&zoneplat&webview…...
生产环境节点扩容方案
datanode节点扩缩容(1人天) 注意:新增节点需要走商务,节点扩容需要申请新的license 制品包下载 #内网下载(环境检查脚本) wget --user=admin --password=Y!bC2hx0TN@21cal http://10.69.71.180:8082/artifactory/product/qiudongyang/precheck/os-check20221127.tar…...
Spring线程池配置
配置Spring线程池,特别是ThreadPoolTaskExecutor,通常涉及设置一些关键参数以控制线程池的行为和性能。以下是一些基本的配置步骤: 定义配置类 首先,需要创建一个配置类,使用@Configuration注解标记,并启用异步执行功能,使用@EnableAsync注解。 @Configuration @Enab…...
Unity学习笔记---物理引擎
RigidBody 刚体 1,Gravity Scale 重力参数,是一个乘量参数,调整为0则不受重力影响。 2,Sleeping Mode 睡眠模式,分为永不睡眠/开始时睡眠/开始时不睡眠3种。如需要一直碰撞检测可以选择永不睡眠。 BoxCollider 碰撞…...
Vue与Java使用AES加密与解密
CBC模式(通过偏移值进行加密,更具安全性) 一、VUE: 1、安装 npm install crypto-js 2、编写公用js(在common文件夹下创建一个crypto.js) 注意:key最少要有16个字符,iv最少6个字符…...

B/S版+java开发的医院绩效考核系统maven+Visual Studio Code 医院绩效考核管理系统 提升医疗服务质量的关键
B/S版java开发的医院绩效考核系统mavenVisual Studio Code 医院绩效考核管理系统 提升医疗服务质量的关键 医院绩效评价系统的建设,优化医院绩效管理体系,规范化工作目标的设计、沟通、评价与反馈,改进和提供医院管理人员的管理能力和成效&am…...

汇昌联信科技:拼多多电商的运营流程有哪些?
在当今互联网高速发展的时代,电商平台层出不穷,其中拼多多以其独特的团购模式和低价策略迅速崛起,成为众多消费者和商家的新宠。那么,拼多多电商的运营流程究竟包含哪些环节呢?接下来,我们将从商品上架、营销推广、订…...

AI大模型探索之路-训练篇20:大语言模型预训练-常见微调技术对比
系列篇章💥 AI大模型探索之路-训练篇1:大语言模型微调基础认知 AI大模型探索之路-训练篇2:大语言模型预训练基础认知 AI大模型探索之路-训练篇3:大语言模型全景解读 AI大模型探索之路-训练篇4:大语言模型训练数据集概…...
现代 c++ 一:c++11 ~ c++23 新特性汇总
所谓现代 c,指的是从 c11 开始的 c,从 c11 开始,加入一些比较现代的语言特性和改进了的库实现,使得用 c 开发少了很多心智负担,程序也更加健壮,“看起来像一门新语言”。 从 c11 开始,每 3 年发…...

【c++】全面理解C++多态:虚函数表深度剖析与实践应用
🔥个人主页:Quitecoder 🔥专栏:c笔记仓 朋友们大家好,通过本篇文章,来详细理解多态的内容 目录 1.多态的定义及实现1.1多态的构成条件1.2虚函数的重写1.3 C11 override 和 final1.4重载、覆盖(重写)、隐藏…...

分享四种免费获取SSL的方式
SSL证书目前需要部署安装的网站很多,主要还是基于国内目前对证书的需求度在不断的升高,网站多了、服务器多了之后。网络安全问题就成为了大家不得不面对的一个重要的问题了。SSL证书的作用有很多,这里就不一一详述了,本期作品主要…...
2024.5.14晚训题解
非线性结构没懂的同学多去看看课程回放。 A题Overall Winner 题解 很基础的题目,输入字符串,用计数器去统计一下就好了。 因为赢的次数一样的时候优先判断前面的那个人赢,所以说两个人赢的次数相同的时候我们不必 去记录胜者。 #include<…...
jQuery的选择器与自带函数详解
在前端开发中,jQuery是一个广泛使用的JavaScript库,它极大地简化了HTML文档遍历、事件处理、动画以及AJAX交互等操作。本文将通过一个示例页面,详细介绍jQuery的选择器和一些常用的自带函数。 示例代码优化 首先,我们来优化和完…...
Next.js与SSR:构建高性能服务器渲染应用
1. 创建项目 通过create-next-app脚手架创建一个新的Next.js项目: npx create-next-app my-app cd my-app2. 自动SSR 在Next.js中,每个.js或.jsx文件的组件都会被自动处理为SSR页面。例如,创建一个pages/index.js文件: // pag…...

什么是MVC?什么是SpringMVC?什么是三层架构?
文章目录 应用分层什么是MVC?什么是 SpringMVC?三层架构三层架构和MVC的关系 应用分层 在讲解什么是MVC之前,先来理解一下什么是应用分层。 应用分层是一种软件开发设计思想,将应用程序划分成N个层次,每个层次都分别负责自己的…...

基于springboot+vue+Mysql的在线答疑系统
开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…...

ssl证书免费申请指南
同学们可以私信我加入学习群! 正文开始 前言一、购买证书二、创建证书三、 验证证书等待出现如下页面,说明申请成功:  总结 前言 今天为大…...

Java构造方法详解
在Java方法内部定义一个局部变量时,必须要初始化,否则就会编译失败,如下: 要让上述代码通过编译,只需在使用a之前给a赋一个初始值即可 如果是对象:下面用一个日期类演示 我们没有给年月日赋值,…...

Spring WebFlux:响应式编程
在软件开发领域,随着互联网应用的规模和复杂性不断增加,传统的编程模型逐渐暴露出一些局限性,尤其是在面对高并发、大规模数据流处理等场景时。为了应对这些挑战,响应式编程(Reactive Programming)应运而生…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...

Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...

MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...