Unity 基础编程
在这个练习中将新建unity脚本,控制player的运动与转动,实现用代码检测碰撞与删除物体。
该练习将应用附件中的项目文件,该文件与Unity快速练习的文件是同一个项目文件。
一、构建Player运动脚本
该部分将构建一个在场景中由玩家控制游戏物体移动的脚本。
1. 在Unity Hub中打开项目文件,然后再打开的 Unity 编辑器窗口,在Project窗口中点击 Assets > _Unity Essentials > Scenes 文件夹,在右侧窗口中双击 4_LivingRoom_Programming_Scene 打开场景,可以调整一下Scene窗口中看场景的角度,使得Scene和Game窗口中的所看的角度类似;
2. 在Project窗口中, 点击 Assets > _Unity Essentials > Prefabs > Charactoers 文件夹,在右侧选择一个游戏物体复用件(例如选择下图第5个,一个扫地机),拖拽该扫地机游戏物体到游戏场景中,放在地板上;
3. 在Project窗口中,点击 Assets > _Unity Essentials > Scripts 文件夹,然后在右侧的窗口中点击鼠标右键,在弹出的窗口中选择 Create > MonoBehaviour Script,然后点击该新建脚本的名称,名称将高亮,重新命名为 "PlayerController"
4. 用鼠标左键选中该新建的脚本,拖拽到场景中刚刚加入的扫地机游戏物体上,将新的脚本应用到这个游戏物体上,见下图
二、使用代码控制游戏物体的运动
5. 双击上面窗口中脚本文件,unity会在Visual Studio软件中打开该脚本文件,Visual Studio在安装Unity软件的时候,需要勾选安装,打开后的编程界面及代码如下图:
该界面代码中,左边的1,2,3。。。表示的是行数
第1 行 Using UnityEngine,表示使用了 UnityEngine 类
第3行 public class NewMonoBehaviourScript : MonoBehaviour,其中
- public class NewMonoBehaviourScript 是定义了一个新的类 NewMonoBehaviourScript ,属性是public,可以被其他类调用
- MonoBehaviour 是这个新类的父类,所有unity的类默认是从MonoBehaviour 衍生而来的
第6行 void Start() 是每个新建的类中自动生成的函数,该函数定义了该脚本在生效开始时所能够做的事情,例如在代码里面定义一些初始变量;
第12行void Update()也是每个新建的类中自动生成的函数,该函数定义了该脚本所绑定的游戏物体,在游戏每帧更新的时候,所需要处理的事情,例如监听键盘输入;
6. 由于第3行中新的类名称 NewMonoBehaviourScript 和这个脚本文件的新命名 “PlayerController”不一致,需要更改这个新类名称为“PlayerController”;
7. 拷贝下面黑体的代码到脚本中, 注意大括号 “{ }” 的位置以及相互间的对应,然后保存
PlayerController 代码
/*************************************************************************/
using UnityEngine;
public class PlayerController : MonoBehaviour
{
public float speed = 5.0f; // 设置玩家player(这里指所绑定的扫地机游戏物体)的运动速度
public float rotationSpeed = 120.0f; // 设置玩家player的转动速度
private Rigidbody rb; // 定义 Rigidbody 变量
// Start is called before the first frame update
private void Start()
{
rb = GetComponent<Rigidbody>(); // 用玩家 Rigidbody 属性复制 Rigidbody.
}
// Update is called once per frame
void Update()
{
}
// Handle physics-based movement and rotation.
private void FixedUpdate()
{
// 移动基于玩家 player的垂直轴来移动.
float moveVertical = Input.GetAxis("Vertical"); //获取垂直轴参数
Vector3 movement = transform.forward * moveVertical * speed * Time.fixedDeltaTime; //获取每帧移动的距离,Time.fixedDeltaTime是指每帧的更新时间,transform.forward是指向前运动
rb.MovePosition(rb.position + movement); //MovePosition是指移动到所指定的位置,该位置由当前的位置与一帧所移动的距离之和和决定
// 移动基于玩家 player的水平轴来转动.
float turn = Input.GetAxis("Horizontal") * rotationSpeed * Time.fixedDeltaTime; //获取每帧所转动的角度,
Quaternion turnRotation = Quaternion.Euler(0f, turn, 0f);//转换角度为一个四维数
rb.MoveRotation(rb.rotation * turnRotation);//MoveRotation是指转动到所指定的角度,该角度由原来的角度与一帧所转动的角度之和和决定
}
}
8. 返回Unity界面,这是会发现有一个弹窗在编译上述代码,编译完后,这个弹窗会自动消失,然后点击界面正中间上方的Play按键,开始游戏,分别按键盘的上下箭头按键控制扫地机前后运动,键盘的左右箭头按键控制扫地机的旋转,再次点击Play按键,退出游戏
9. 这步操作将Main Camera游戏物体作为扫地机游戏物体RobotVacuum_1的子物体,实现这个操作,在Hierarchy窗口中鼠标左键点击 Main Camera,然后拖拽该窗口中游戏物体到RobotVacuum_1名称上,见下图,
=》
10. 再次点击Play按键开始游戏,可以在左下方的游戏Game窗口中看到,摄像头视角会随着扫地机的位置和角度而改变,为了看的更清楚,可以将Main Camera的位置移动到扫地机的后上方,实现一个跟随扫地机的设置,见下图,再次点击Play按键,退出游戏
11. 在上述代码中定义了扫地机的运动和转动速度,这两个速度值可以在unity界面查看,见下图,在Hirarchy窗口中点击RobotVacuum_1游戏物体,然后在右侧Inspector窗口中的下方可以看到脚本属性中,Speed和Rotation Speed这两个变量。如果要改变速度值,可以直接在编辑窗口中更新。
三、使用代码使游戏物体自动旋转
该部分在场景中的地板上放置一些游戏物体(可以认为是房间地板上的垃圾物体),并驱动这些游戏物体自动旋转
12. 在Project窗口中点击 Assets > _Unity Essentials > Prefabs > Collectibles 文件夹,然后在右边窗口中鼠标左键点击第4个游戏物体 Collectible_Dirt,拖拽该游戏物体到Hirarchy窗口,将该游戏物体加入到游戏场景中;
13. 使用Scene窗口左侧的工具栏,将Collectible_Dirt游戏物体(一个小方块)放到扫地机前方的地板上,如下图所示
14. 重复上述第3个步骤,在_Unity Essentials > Prefabs > Scripts 文件夹中新建一个 Collectible脚本文件,见下图
15. 双击该新建的脚本文件在Visual studio中打开脚本,见下图,如果类的名称不是 Collectible,则更改名称,确保类的名称和脚本文件名称一致
16. 在代码中敲入如下黑体代码,然后保存
Collectible 代码
/*************************************************************************/
using UnityEngine;
public class Collectible : MonoBehaviour
{
public float rotationSpeed; //定义一个旋转的角速度变量
// Start is called once before the first execution of Update after the MonoBehaviour is created
void Start()
{
}
// Update is called once per frame
void Update()
{
transform.Rotate(0, rotationSpeed, 0);//沿着Y轴按定义的角速度值旋转该物体
}
}
17. 回到Unity 界面,等待编译弹窗消失后,用鼠标左键将新建的 Collectible 脚本拖拽到 Hirarchy窗口中 Collectible_Dirt 上面,使得脚本绑定该游戏物体,然后点击Collectible_Dirt 游戏物体,可以在右侧的 Inspector 窗口的下方看到该脚本属性,其中rotationSpeed 的值默认为 0;
18. 点击整个界面正中间上方的 Play 按键,查看该游戏物体是否旋转? 可以看到物体时静止的,这是因为旋转的速度是 0,需要给其赋值一个大于0的值。
19. 再次点击Play按键,退出游戏,在Rotation Speed右边的编辑窗口中输入 0.5,然后再次点击Play按键, 看看游戏物体是否旋转了?可以看到该物体沿着垂直的Y轴不停的旋转。
20. 再次点击Play按键,退出游戏。保存(File > Save)整个场景,完成该部分练习。
四、采集游戏物体
该部分练习将实现扫地机收集地上的垃圾物体(及上述旋转的小方块),代码实现物体销毁、碰撞触发和物体消失的视觉效果。
21. 点击Play按键,操作扫地机碰撞上述旋转的小方块的时候,发现两个物体之间有一定的碰撞效果,但是小方块没有消失,不能实现收集垃圾的效果,再次点击Play按键,退出游戏;
22. 在Hirarchy窗口中选中 Collectible_Dirt游戏物体,在右侧Inspector窗口中 Box Collider 属性中激活 Is Trigger (点击其右边的框)
23. 双击Project窗口的 Collectible脚本,打开Visual studio,在脚本中加入如下代码
Trigger 进入函数
private void OnTriggerEnter(Collider other)
{
//销毁这个游戏物体
Destroy(gameObject);
}
24. 点击Play按键,操作扫地机碰撞上述旋转的小方块的时候,发现小方块消失了,再次点击Play按键,退出游戏;
25. 在上述碰撞中,小方块直接消失了,在游戏中显得不够专业,这里需要添加一个消失的视觉效果。在Project窗口中 Prefabs > VFX 文件夹中包含5个VFX,选择一个3D效果,例如双击第3个VFX,在左侧Scene窗口边会出现VFX的预览窗口,显示该VFX,如果没看到的话,可以点击Play按键,再重复一次观看该爆炸效果。
26. 打开Visual Studio 编程界面,加入下列代码,注意代码的位置
定义变量
public GameObject onCollectEffect;//定义一个VFX游戏物体变量
27. 回到Unity界面,再Hirarchy窗口中Collectible_Dirt游戏物体,然后再选中将Project窗口中 Prefabs > VFX 文件夹中选定的VFX(例如上述查看的第3个VFX),将其拖拽到右侧Inspector窗口下方,脚本属性的 On Collect Effect 右边的编辑框中
28. 再次回到Visual Studio 界面,再脚本中加入如下代码,注意代码的位置,然后点击保存
新建一个VFX
// 新开一个VFX游戏物体,这是编程实现
Instantiate(onCollectEffect, transform.position, transform.rotation);
29. 回到 Unity 界面,等待弹窗编译接受后,点击正中间上方的 Play 按键,运行游戏,操作扫地机再次碰撞选装的小方块,可以看到一个爆炸的效果,再次点击 Play按键,退出游戏;
30. 下面在地板上杂乱的放多一些小方块垃圾。在Hirarchy窗口中双击03_Living_Room游戏物体,然后将Scene窗口左上方的坐标选择为 Global,在点击右上方的坐标轴(在上方的坐标轴),使得视角从顶部俯视整个房间,如果高度过高的话,可以使用鼠标中键,使得视角低一些,看清小方块;
31. 在Hirarchy窗口点击Collectible_Dirt在Scene窗口中该物体将高亮显示,再按键盘上的 Ctrl+D (macOS: Cmd+D),复制一个该游戏物体,可以多按几下按键,复制多个游戏物体;
32. 点击Scene窗口左侧的移动工具,再沿着一个选中方块的红色或蓝色坐标移动方块到自己想要的位置,放好后,在原来位置再选择一个小方块,移动到另外一个位置,重复操作,直至放好各个方块位置,如下图所示
33. 在Hirarchy窗口中选中所有的Collectible小方块游戏物体,点击鼠标右键,在弹出菜单中点击 Create Empty Parent将所有的小方块放置在一个空的游戏物体,使得Hirarchy窗口界面比较简洁及组织合理。
34. 重新命名该新的空游戏物体为 "Collectibles".
35. 点击Unity界面正中间上方的 Play 按键,运行游戏,操作扫地机搜集所有在地板上的小方块,实现采集物体效果,采集完后,退出游戏。
相关文章:
Unity 基础编程
在这个练习中将新建unity脚本,控制player的运动与转动,实现用代码检测碰撞与删除物体。 该练习将应用附件中的项目文件,该文件与Unity快速练习的文件是同一个项目文件。 一、构建Player运动脚本 该部分将构建一个在场景中由玩家控制游戏物…...
CTFHub-RCE系列wp
目录标题 引言什么是RCE漏洞 eval执行文件包含文件包含php://input读取源代码远程包含 命令注入无过滤过滤cat过滤空格过滤目录分隔符过滤运算符综合过滤练习 引言 题目共有如下类型 什么是RCE漏洞 RCE漏洞,全称是Remote Code Execution漏洞,翻译成中文…...
基于YoloV11和驱动级鼠标模拟实现Ai自瞄
本文将围绕基于 YoloV11 和驱动级鼠标实现 FPS 游戏 AI 自瞄展开阐述。 需要着重强调的是,本文内容仅用于学术研究和技术学习目的。严禁任何个人或组织将文中所提及的技术、方法及思路应用于违法行为,包括但不限于在各类游戏中实施作弊等违规操作。若因违…...
基于微信小程序的博物馆预约系统的设计与实现
hello hello~ ,这里是 code袁~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 🦁作者简介:一名喜欢分享和记录学习的在校大学生…...
R语言LCMM多维度潜在类别模型流行病学研究:LCA、MM方法分析纵向数据
全文代码数据:https://tecdat.cn/?p39710 在数据分析领域,当我们面对一组数据时,通常会有已知的分组情况,比如不同的治疗组、性别组或种族组等(点击文末“阅读原文”获取完整代码数据)。 然而,…...
python卷积神经网络人脸识别示例实现详解
目录 一、准备 1)使用pytorch 2)安装pytorch 3)准备训练和测试资源 二、卷积神经网络的基本结构 三、代码实现 1)导入库 2)数据预处理 3)加载数据 4)构建一个卷积神经网络 5࿰…...
如何把邮件批量导出到本地
最近遇到邮箱满了的问题,需要把邮件批量导出到本地,然后清空邮箱。 问题是这个邮箱的官网,没有批量导出按钮,比较麻烦;总不能一封一封下载到本地,上万的。 找到了一个好用的工具,Mozilla Thun…...
C++智能指针的使用
文章目录 智能指针的使用和原理智能指针的使用场景RAII和智能指针C标准库智能指针的使用 智能指针的使用和原理 智能指针的使用场景 1. 下面的程序中,new了以后,我们也delete了,但是因为抛异常导致后面的delete没有得到执行,所以…...
Docker安装Redis
一、保证Docker提起来了 systemctl status docker想这没有启动要先启动一下 systemctl status docke二、拉取Redis(默认拉最新版) sudo docker pull redis检查一下拉成功没有 docker images三、创建相关目录 mkdir -p /home/redis/{conf,data}四、…...
深入理解MySQL索引底层数据结构
文章目录 前言一、MySQL索引是什么?二、索引的核心需求三、MySQL为什么选择BTree做为数据结构1.如果使用的是Hash 做为数据结构2.如果使用二叉树做为数据结构3.使用红黑树做为数据结构4.使用B-Tree做为数据结构5.BTree做为数据结构 4.BTree深度剖析结构特性与 B-Tre…...
udp和tcp的区别
目录 UDP 和 TCP 的区别 1. 连接性 2. 可靠性 3. 数据传输顺序 4. 流量控制和拥塞控制 5. 效率 6. 应用场景 UDP 和 TCP 的 C/C 代码实现区别 1. TCP 服务器端和客户端 TCP 服务器端(Server) TCP 客户端(Client) 2. U…...
VMware 虚拟机 ubuntu 20.04 扩容工作硬盘
一、关闭虚拟机 关闭虚拟机参考下图,在vmware 调整磁盘容量 二、借助工具fdisk testubuntu ~ $ df -h Filesystem Size Used Avail Use% Mounted on udev 1.9G 0 1.9G 0% /dev tmpfs 388M 3.1M 385M 1% /run /dev/sda5 …...
MapReduce是什么?
MapReduce 是一种编程模型,最初由 Google 提出,旨在处理大规模数据集。它是分布式计算的一个重要概念,通常用于处理海量数据并进行并行计算。MapReduce的基本思想是将计算任务分解为两个阶段:Map 阶段和 Reduce 阶段。 Map 阶段&a…...
跨越边界,大模型如何助推科技与社会的完美结合?
点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 概述 2024年,大模型技术已成为人工智能领域的焦点。这不仅仅是一项技术进步,更是一次可能深刻影响社会发展方方面面的变革。大模型的交叉能否推动技术与社会的真正融合?2025年…...
计算机毕业设计SpringBoot校园二手交易小程序 校园二手交易平台(websocket消息推送+云存储+双端+数据统计)(源码+文档+运行视频+讲解视频)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
RK3568平台开发系列讲解(ConfigFS篇)ConfigFS核心数据结构
🚀返回专栏总目录 文章目录 一、数据结构二、结构体关系三、案例3.1、configfs_subsystem 实例3.2、config_group 实例化四、属性和方法五、config_item实例化沉淀、分享、成长,让自己和他人都能有所收获!😄 理解 ConfigFS 的核心数据结构对于深入使用和定制 ConfigFS 非…...
【04】RUST特性
文章目录 隐藏shadowing所有权ownership堆区&栈区所有权规则变量&数据Copy Trait与Drop TraitCopy TraitDrop Trait移动克隆函数参数与返回值的所有权参数引用可变引用悬垂引用slice生命周期隐藏shadowing 有点像同名覆盖 let mut guess = String::new();let guess: u3…...
c语言函数学习
C语言函数学习笔记:从入门到实践 一、什么是函数? 函数是C语言中用于封装特定功能的代码块,是模块化编程的核心。通过函数可以实现: 代码复用:避免重复编写相同逻辑 逻辑清晰:将复杂程序分解为多个小模块…...
LSTM的介绍
网上一些描述LSTM文章看的云里雾里,只是介绍LSTM 的结构,并没有说明原理。我这里用通俗易懂的话来描述一下。 我们先来复习一些RNN的核心公式: h t t a n h ( W h h t − 1 W x x t b h ) h_t tanh(W_h h_{t-1} W_x x_t b_h) httan…...
XML DOM
XML DOM XML DOM(Document Object Model)是一种用于访问和操作XML文档的标准方式。它提供了一种树形结构来表示XML文档,使得开发者能够方便地对XML数据进行读取、修改和操作。本文将详细介绍XML DOM的基本概念、结构、操作方法以及应用场景。 一、XML DOM的基本概念 XML …...
认识网络安全
一 网络攻击链 踩点-工具准备-载荷投递-漏洞利用-释放载荷-建立通道-目标达成 简化下: 目标侦察:准确识别目标,收集目标详细信息,比如 网络、 邮箱、员工、社会关系、对外提供服务、漏洞 信息等,为 后续攻击做准备。…...
华为支付-免密支付接入签约代扣场景开发步骤
一、预签约(服务器开发) 1.开发者按照商户模型调用预直连商户预签约或服务商预签约接口获取preSignNo构建签约信息参数contractStr。 为保证支付订单的安全性和可靠性需要对请求body和请求头PayMercAuth对象内的入参排序拼接进行签名。请参考排序拼接和…...
9.JVM-方法区
前言 这次所讲述的是运行时数据区的最后一个部分 从线程共享与否的角度来看 ThreadLocal:如何保证多个线程在并发环境下的安全性?典型应用就是数据库连接管理,以及会话管理 栈、堆、方法区的交互关系 下面就涉及了对象的访问定位 Person&a…...
【Linux Oracle】杂货铺 日常实用2024
1.跨服务器移动文件 passwd=^T^bxxxx `/usr/bin/expect <<-EOF set timeout -1 spawn scp -r ${BATCH_TIME} sxnhtc@192.168.3.x:${EXP_MCRO_DIR}/ expect "*password:" send "$passwd\r" interact expect eof EOF` curl -k -X GET https://192.16…...
深入理解指针初阶:从概念到实践
一、引言 在 C 语言的学习旅程中,指针无疑是一座必须翻越的高峰。它强大而灵活,掌握指针,能让我们更高效地操作内存,编写出更优化的代码。但指针也常常让初学者望而生畏,觉得它复杂难懂。别担心,本文将用通…...
Git 与 Git常用命令
Git 是一个开源的分布式版本控制系统,广泛用于源代码管理。与传统的集中式版本控制系统不同,Git 允许每个开发者在本地拥有完整的代码库副本,支持离线工作和高效的分支管理。每次提交时,Git 会对当前项目的所有文件创建一个快照&a…...
jupyterLab插件开发
jupyter lab安装、配置: jupyter lab安装、配置教程_容器里装jupyterlab-CSDN博客 『Linux笔记』服务器搭建神器JupyterLab_linux_布衣小张-腾讯云开发者社区 Jupyter Lab | 安装、配置、插件推荐、多用户使用教程-腾讯云开发者社区-腾讯云 jupyterLab插件开发教…...
IDEA+DeepSeek让Java开发起飞
1.获取DeepSeek秘钥 登录DeepSeek官网 : https://www.deepseek.com/ 进入API开放平台,第一次需要注册一个账号 进去之后需要创建一个API KEY,然后把APIkey记录保存下来 接着我们获取DeepSeek的API对话接口地址,点击左边的:接口…...
机器学习数学基础:19.线性相关与线性无关
一、线性相关与线性无关的定义 (一)线性相关 想象我们有一组向量,就好比是一群有着不同“力量”和“方向”的小伙伴。给定的向量组 α ⃗ 1 , α ⃗ 2 , ⋯ , α ⃗ m \vec{\alpha}_1, \vec{\alpha}_2, \cdots, \vec{\alpha}_m α 1,α 2…...
快速集成DeepSeek到项目
DeepSeek API-KEY 获取 登录DeekSeek 官网,进入API 开放平台 2. 创建API-KEY 复制API-KEY进行保存,后期API调用使用 项目中集成DeepSeek 这里只展示部分核心代码,具体请查看源码orange-ai-deepseek-biz-starter Slf4j AllArgsConstructo…...
Rocketmq 和 Rabbitmq ,在多消费者的情况下,可以实现顺序消费吗
在多消费者的情况下,RocketMQ 和 RabbitMQ 都可以实现顺序消费,但它们的实现机制和适用场景有所不同。以下是对两者的详细分析和对比: 1. RocketMQ 的顺序消费 1.1 实现机制 顺序消息:RocketMQ 支持顺序消息(Orderly …...
linux下安装【流媒体】SRS之安装与使用
一、 安装srs 这个是一个流媒体服务器。 1.1 github 获取源码 git clone https://github.com/ossrs/srs.git 或者下载国内的 git clone https://gitee.com/ossrs/srs 进去之后下载zip的 #直接使用当前最新的6.0release版本 ,我下载的是zip的 下载了之后上传到…...
Qt QSettings用法
一、概述 QSettings类是Qt框架中的一个重要类,它主要用于存储和访问应用程序的设置和配置。 二、QSettings的构造方式 1、基于组织名和程序名的构造方式(主要用于Windows注册表) 1、explicit QSettings(const QString &organization,c…...
python学opencv|读取图像(六十)先后使用cv2.erode()函数和cv2.dilate()函数实现图像处理
【1】引言 前序学习进程中,先后了解了使用cv2.erode()函数和cv2.dilate()函数实现图像腐蚀和膨胀处理的效果,相关文章链接为: python学opencv|读取图像(五十八)使用cv2.erode()函数实现图像腐蚀处理-CSDN博客 pytho…...
【大数据安全分析】大数据安全分析技术框架与关键技术
在数字化时代,网络安全面临着前所未有的挑战。传统的网络安全防护模式呈现出烟囱式的特点,各个安全防护措施和数据相互孤立,形成了防护孤岛和数据孤岛,难以有效应对日益复杂多变的安全威胁。而大数据分析技术的出现,为…...
[笔记.AI]Deepseek-R1 各参数版本的蒸馏模型对比
备注:信息主要通过Deepseek-R1获得(查询近一个月的在线资料并整理),然后我进行了相应整合。如有错误,希望指出,谢谢。 Deepseek-R1 蒸馏模型 对比维度1.5B7B8B14B32B70B 特有的突破性能力▸ 毫秒级响应(0.3…...
JAVA面向对象2(三大特征)
面向对象的三大特征:封装、继承、多态 封装: 封装,英文单词Encapsulation。 从广义的角度来说,将一块经常要使用的代码片段,定义到方法中,是封装。将多个方法和多个状态数据定义到类体中,也是一…...
Spring Cloud工程完善
目录 完善订单服务 启动类 配置文件 实体类 Controller Service Mapper 测试运行 完成商品服务 启动类 配置文件 实体类 Controller Service Mapper 测试运行 远程调用 需求 实现 1.定义RestTemplate 2.修改order-service中的OrderService 测试运行 Rest…...
AI大模型随机初始化权重并打印网络结构方法(以Deepseekv3为例,单机可跑)
背景 当前大模型的权重加载和调用,主要是通过在HuggingFace官网下载并使用transformer的库来加以实现;其中大模型的权重文件较大(部分>100GB),若只是快速研究网络结构和数据流变化,则无需下载权重。本文…...
介绍下SpringBoot常用的依赖项
Spring Boot 是一个用于快速开发 Spring 应用程序的框架,它通过自动配置和依赖管理简化了开发过程。以下是一些 Spring Boot 项目中常用的依赖项: 1. Spring Boot Starter Web 作用: 用于构建 Web 应用程序,包括 RESTful 服务。依赖项: spr…...
第四节 docker基础之---dockerfile部署JDK
本地宿主机配置jdk 创建test目录: [rootdocker ~]# mkdir test 压缩包tomcat和jdk上传到root/test目录下: 本机部署Jdk 解压jdk: [rootdocker test]# tar -xf jdk-8u211-linux-x64.tar.gz [rootdocker test]# tar -xf apache-tomcat-8.5.…...
Vue基础:index.html、App.vue、main.js三个文件的联系
index.html、App.vue、main.js三个文件的联系 当vue项目npm run dev启动成功后, 浏览器就可以通过路径访问页面,那么这个页面到底展示的是哪个文件里的内容呢? 如果对前端vue有一定的基础知识,这篇文章可忽略。 在vue项目的目录结…...
数据库 绪论
目录 数据库基本概念 一.基本概念 1.信息 2.数据 3.数据库(DB) 4.数据库管理系统(DBMS) 5.数据库系统(DBS) 二.数据管理技术的发展 1.人工管理阶段 2.文件系统阶段 3.数据库系统阶段 4.数据库管…...
26~31.ppt
目录 26.北京主要的景点 题目 解析 27.创新产品展示及说明会 题目 解析 28.《小企业会计准则》 题目 解析 29.学习型社会的学习理念 题目 解析 30.小王-产品展示信息 题目 解析 31.小王-办公理念-信息工作者的每一天 题目 解析 26.北京主要的景点…...
AutoMQ 如何实现没有写性能劣化的极致冷读效率
前言 追赶读(Catch-up Read,冷读)是消息和流系统常见和重要的场景。 削峰填谷:对于消息来说,消息通常用作业务间的解耦和削峰填谷。削峰填谷要求消息队列能将上游发送的数据堆积住,让下游在容量范围内消费…...
启动gateway时Failed to configure a DataSource
问题 在启动网关时候启动失败,报错: 原因很明显,就是没有配制数据库连接信息 实际上是因为在网关模块中导入的某个依赖里面引入了MyBatis的依赖,导致启动的时候自动配置数据库源 但是在这个网关模块中是不需要数据数据库的 解决...
node 程序占用处理方法与后台运行方法
程序占用 如果你在关闭终端后重新运行 node server.js,但提示端口 3000 被占用,说明之前的服务器进程仍然在后台运行。以下是解决方法: 1. 检查后台运行的 Node.js 进程 首先,检查是否有 Node.js 进程正在占用端口 3000。 在 L…...
C# OpenCV机器视觉:对位贴合
在热闹非凡的手机维修街上,阿强开了一家小小的手机贴膜店。每天看着顾客们自己贴膜贴得歪歪扭扭,不是膜的边缘贴不整齐,就是里面充满了气泡,阿强心里就想:“要是我能有个自动贴膜的神器,那该多好啊…...
【计算机网络】TCP/IP 网络模型有哪几层?
目录 应用层 传输层 网络层 网络接口层 总结 为什么要有 TCP/IP 网络模型? 对于同一台设备上的进程间通信,有很多种方式,比如有管道、消息队列、共享内存、信号等方式,而对于不同设备上的进程间通信,就需要网络通…...
本地部署Deepseek R1
使用Ollama open-webui部署Deepseek R1 一、安装Ollama 官网地址:https://ollama.com/,点击下载按钮选择windows版本。并安装 打开命令提示符输入ollama,出现一下提示命令表示ollama安装完成 二、使用Ollama下载deepseek R1不同模型 打开o…...