Unity学习part2
为bilibili教程【【Unity教程】零基础带你从小白到超神】 https://www.bilibili.com/video/BV1gQ4y1e7SS/?p=50&share_source=copy_web&vd_source=6e7a3cbb802eb986578ad26fae1eeaab的笔记
1、灯光的使用
定向光模拟太阳,是平行光。旋转定向光,光线角度会变化
阴影类型:无阴影/硬阴影(性能消耗小)/软阴影(性能消耗大)
剪影:类似选择太阳光斑,选择什么图片,就投射怎样的阴影形状
剔除遮罩:选择是否为某一layer物体打光,例如可以不用给ui层物体打光
聚光相当于一个手电筒
点光源相当于一个灯泡,注意灯光光线也会衰减,要照亮可以增加强度或者扩大照射面积
以上三种灯光都有模式可以选择 混合/实时/已烘焙。混合 = 实时+ 烘焙。实时为游戏中实时计算的灯光,耗性能。烘焙指预先计算的,不会在运行中变化的信息。贴上烘焙灯光信息贴图之后,可以将不需要的灯光源删除
区域(仅烘焙),从平面发射出来的平行光,是面光。(烘焙把游戏纹理和光照计算一遍,然后保存下来,等用的时候直接调用,不需要玩家的设备实时去算 优化性能用的- 弹幕云)
烘焙方法:窗口-》渲染-》生成照明
可以看到,将灯光删除之后,烘焙的灯光信息依旧表现
2、相机
相机的“深度”值越高,越优先显示。当游戏物体中有两个相机时,可更改深度来更改显示优先级
清除标志一般是将两个相机所拍摄物体相容(fps持枪视角枪身看起来永远不穿模就是这么做的-弹幕)。例如相机main 清除标志-天空盒,相机 addicitive 清除标志 -- 仅深度。可以通过清除标志仅深度+深度优先级来使多个相机的内容一起显示
可实现功能 游戏ui或者比赛场地/演播室/观众席三个画面同框(弹幕)、小地图(弹幕)
fov轴和视野搭配使用。剪裁平面的远、近是指相机的近平面和远平面
viewport矩形里面的值x,y,w,h是比例。x,y代表从界面的百分之几开始,w,h则代表表示的画面宽高。可以用于实现画中画或者双人成行的分屏显示或者玩具熊的午夜后宫中的监控器显示
目标纹理配置之后,目标显示就会被替代。并且渲染器纹理可以拉到游戏物体上,可以用来实现游戏玩家在游戏里的电视机上看到自己被监控的画面,3d停车场游戏中的后视镜画面(弹幕),实现在游戏里玩游戏
3、音频
增加audio source组件
唤醒时播放 - 程序运行时自动播放
音频的最小声音和最大声音可以结合起来做脚步声和收音机的音效
public class AudioTest : MonoBehaviour
{//AudioClippublic AudioClip music;public AudioClip se;//播放器组件private AudioSource player;// Start is called before the first frame updatevoid Start(){player = GetComponent<AudioSource>();//设定播放的音频片段player.clip = music;//循环player.loop = true;//音量player.volume = 0.5f;//播放player.Play();}// Update is called once per framevoid Update(){//按空格切换声音的播放和暂停if(Input.GetKeyDown(KeyCode.Space)) {//如果当前正在播放声音if (player.isPlaying){//停止播放player.Pause();//player.Stop();}else{//继续player.UnPause();//开始播放//player.Play();}}//按鼠标左键播放声音if (Input.GetMouseButtonDown(0)) { player.PlayOneShot(se);}}
}
4、视频
可以通过vedioplayer组件+渲染器纹理播放. plane+渲染器纹理播放可实现游戏中的广告大屏播放效果
或者ui ->原始图像,通过纹理播放
public class vediotest : MonoBehaviour
{private VideoPlayer player;// Start is called before the first frame updatevoid Start(){player = GetComponent<VideoPlayer>();}// Update is called once per framevoid Update(){}
}
5、角色控制器的使用
public class Playercontrol : MonoBehaviour
{private CharacterController player;// Start is called before the first frame updatevoid Start(){player = GetComponent<CharacterController>();}// Update is called once per framevoid Update(){//水平轴float horizontal = Input.GetAxis("Horizontal");//垂直轴float vertical = Input.GetAxis("Vertical");//创建成一个方向向量Vector3 dir = new Vector3(horizontal,0, vertical);Debug.DrawRay(transform.position, dir, Color.red);//朝向该方向移动player.SimpleMove(dir);}
}
6、重力
添加rigidbody刚体组件。阻力是运动时受到的阻力,角阻力是旋转时受到的阻力。碰撞检测选择离散的,可能会导致物体没有检测到它们互相进行了碰撞。可以选择地面持续检测,子弹连续动态。“是运动学的”勾选之后,物体不再受物理规律影响。冻结位置可以使物体在某一轴向上不移动
7、检测碰撞
碰撞半径是绿色的线框
public class FireTest : MonoBehaviour
{//创建一个爆炸预设体public GameObject prefab;// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){}//监听发生碰撞private void OnCollisionEnter(Collision collision){//创建一个爆炸物体Instantiate(prefab,transform.position,Quaternion.identity);//销毁自身Destroy(gameObject);//获取碰撞到的物体Debug.Log(collision.gameObject.name);}//持续碰撞中private void OnCollisionStay(Collision collision){}//结束碰撞private void OnCollisionExit(Collision collision){}
}
public class Expositest : MonoBehaviour
{float timer = 0;// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){timer += Time.deltaTime;if(timer >=1){Destroy(gameObject);}}
}//销毁爆炸效果,销毁脚本应搭载在爆炸效果预制件上,而不是火焰效果预制件上
8、触发
让相机与场景视野保持一致 :选中相机,游戏对象-》对齐视图
触发与碰撞区别:碰撞是两个物体都有碰撞属性,触发是一个物体有碰撞属性,另一个物体有触发属性
public class cubecontrol : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){}//碰撞获取的是发生碰撞的信息体private void OnCollisionEnter(Collision collision){}//参数是进入触发的碰撞器private void OnTriggerEnter(Collider other){GameObject door = GameObject.Find("DOOR");if (door != null) { door.SetActive(false);}}private void OnTriggerStay(Collider other){}private void OnTriggerExit(Collider other){}
}
9、物理关节
例如:门与墙之间的连接合页(物理关节)
hinge joint组件中anchor的数值是按比例算的 物体原点算000,修改anchor可修改joint位置。修改“轴”可修改joint的朝向
要使门变成自动门,可以使用motor,给与一个初始力和速度
运动学刚体是指不受外力或碰撞影响的刚体。它不会受到物理引擎的模拟,而是通过直接设置位置和旋转来控制其运动。这意味着你可以手动控制运动学刚体的位置和旋转,而不会受到物理引擎的影响。(弹幕)
spring joint ,弹簧组件。不动的物体要设置为运动学的
固定关节组件,fixed joint,类似于胶水作用,可设置断开力矩,受到超过这个力的时候,两个物体会分离
10、物理材质
摩擦组合是指两个附有物理材质的物体接触后,他们之间的摩擦力该如何计算。例如冰和地面间的摩擦力。而反弹合并,指两个都有反弹力的物体间接触后,它们间的弹力该如何组合
11、射线检测
要把相机的tag改为Main camera。
多检测效果--比如FPS一发子弹可能打中两个人,两个人都掉血;比如说穿透子弹的效果;比如地面上有一块被伞或树挡住,单检测碰到树叶就停下了,玩家无法就走到树下面(弹幕)
public class RayTest : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){//方式一//Ray ray = new Ray(Vector3.zero, Vector3.up);}// Update is called once per framevoid Update(){if (Input.GetMouseButtonDown(0)){//方式2 按下鼠标左键发射射线Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);//申明一个碰撞信息类RaycastHit hit;//碰撞检测bool res = Physics.Raycast(ray, out hit);//如果碰撞到的情况下,hit就有内容了if (res == true) {Debug.Log(hit.point);transform.position = hit.point;}//多检测,参数可以有检测距离,只检测某一图层//RaycastHit[] hits = Physics.RaycastAll(ray,100,1<<10);}}
}
//实现鼠标点到哪,物体移动到哪
12、粒子系统的基本应用
"预热“--去除掉粒子系统成长的从无到有的第一个周期
”模拟空间“-- 局部,生成的粒子还跟随父物体的移动而移动。而世界,是生成的物体不跟随父物体的移动而移动,只有即将生成的粒子会受移动的影响
13、线段渲染器
线段渲染器(line render组件)所画出的图形,会随着旋转视角的改变而展示更全面.可以用于战旗游戏的移动路径(弹幕)。
public class LineTest : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){//设定线段的位置//获取线段渲染器LineRenderer lineRenderer = GetComponent<LineRenderer>();lineRenderer.positionCount = 3;lineRenderer.SetPosition(0, Vector3.zero);lineRenderer.SetPosition(0, Vector3.one);lineRenderer.SetPosition(0, Vector3.down);}// Update is called once per framevoid Update(){}
}
此部分代码与位置功能相同
运行后
可以用拖尾(trail render)实现(飞船的引擎拖尾,挥剑时的刀光)。游戏中物体移动时生成拖尾
自动销毁-- 拖尾完成后,挂载拖尾渲染器的物体会跟随一起消失
可实现水果忍者类似的效果
14、动画
animations组件(旧版动画组件),culling type优化方式
窗口-》动画—》动画,打开动画面板
可以通过动画窗口的添加属性按钮,添加组件的属性进行k帧;或者通过录制按钮进行录制。
可以对动画资产选择贴图拼接属性
在动画窗口还可以选择曲线来可视化动画关键帧的位置变化
public class AnimationTest : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){if (Input.GetMouseButtonDown(0)){GetComponent<Animation>().Play("right");}}
}
animator组件(新版)和动画器控制器组合使用,并且新版的动画和旧版的动画属性也不一致
public class AnimatorTest : MonoBehaviour
{private Animator animator;// Start is called before the first frame updatevoid Start(){//获取动画器组件animator = GetComponent<Animator>();}// Update is called once per framevoid Update(){if (Input.GetMouseButtonDown(0)) {animator.Play("down");}}
}
//按下鼠标左键播放动画改变
15、动画间的过渡
动画间的过渡和ue的动画状态机差不多,用各种参数和函数控制触发
public class PlayControllerTest : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){if (Input.GetKeyDown(KeyCode.F)) {//触发pickup参数GetComponent<Animator>().SetTrigger("pickup");}}
}
但这个代码会发现按F之后会有延迟才执行pickup,这是因为有退出时间(动作后摇,魂游所爱),可以取消勾选退出时间来取消后摇
16、人物的移动及播放动画
public class PlayerMoveController : MonoBehaviour
{private Animator animator;// Start is called before the first frame updatevoid Start(){animator = GetComponent<Animator>();}// Update is called once per framevoid Update(){//水平轴float horizontal = Input.GetAxis("Horizontal");//垂直轴float vertical = Input.GetAxis("Vertical");//向量Vector3 dir = new Vector3(horizontal,0, vertical);//当用户按下方向键if (dir != Vector3.zero){//面向向量transform.rotation = Quaternion.LookRotation(dir);//播放跑步动画animator.SetBool("isRun", true);//朝向前方移动transform.Translate(Vector3.forward * 2 * Time.deltaTime);}else {//播放站立动画animator.SetBool("isRun", false);}}
}
如果还觉得有过渡的效果不好,可以将过渡持续时间改为0,但是这样会导致动作切换的生硬。适当的过渡有更好的演出效果
17、剪辑的常用设置
rig中如果为旧版,就要选用animation组件(旧版组件)
循环匹配为动画的第一帧和最后一帧是否能顺利流畅的匹配起来,也就是循环时前一周期的最后一帧和这一周期的第一帧连起来时看起来不会有很大的突兀。循环匹配为黄色时代表第一帧和最后一帧不能顺利流畅的匹配
根变换旋转、根变换位置等查看其他资料或者查看这套教程lesson49
18、曲线和帧事件
曲线可以在动画中添加设置,在脚本中被使用。使用场景可以是蓄力拳,随按键时间的增加,在某一时刻用获取到的数值来判断特效的放出效果强弱
而帧事件可以实现诸如人物在水面上脚落地时的涟漪,左脚落地时产生火花效果,左右脚落地时产生脚步音效,或者fps游戏时换弹时每次都弹出弹壳,打枪时也会弹出弹壳
public class PlayerMoveController : MonoBehaviour
{private Animator animator;// Start is called before the first frame updatevoid Start(){animator = GetComponent<Animator>();}// Update is called once per framevoid Update(){//水平轴float horizontal = Input.GetAxis("Horizontal");//垂直轴float vertical = Input.GetAxis("Vertical");//向量Vector3 dir = new Vector3(horizontal,0, vertical);//当用户按下方向键if (dir != Vector3.zero){//面向向量transform.rotation = Quaternion.LookRotation(dir);//播放跑步动画animator.SetBool("isRun", true);//朝向前方移动transform.Translate(Vector3.forward * 2 * Time.deltaTime);}else {//播放站立动画animator.SetBool("isRun", false);}//随时获取test参数并打印出来//Debug.Log(animator.GetFloat("Test"));}void leftfoot(){//可以在这边播放音效或者添加特效Debug.Log("左脚");}void rightfoot(){Debug.Log("右脚");}
}
19、混合动画(混合状态)
跟虚幻的混合空间相同,自然的形成不同动画间的过渡,例如从走到跑
automate thresholds取消勾选和勾选能改变threshold的值
blend tree还可以套娃
20、动画层
any state状态,是指无论任何状态,都能通过某一条件转为跑步状态。例如,人物有一百多个动画,就可以通过只创建这一个过渡而不是创建一百多条过渡条件过渡到跑步。
状态机中还可以创建子状态机,实现嵌套。例如,可以拿刀的的动画全放在一类状态机里,拿枪的动画可以放在另一类子状态机中。分类,方便整理,不用创建多个动画器控制器(弹幕)
21、动画分层
动画分层如果不搭配遮罩使用,会变成平移着挥手,脚不动这种情况
但搭配遮罩,就可以根据骨骼ik来选择播放哪一层动画.上面动画分类可以是新增子状态机,但也可以是通过动画分层来实现的,例如将拿枪的放到一层,拿刀的放到另一层,这样可以通过脚本改变权重,来改变播放动画
相关文章:
Unity学习part2
为bilibili教程【【Unity教程】零基础带你从小白到超神】 https://www.bilibili.com/video/BV1gQ4y1e7SS/?p50&share_sourcecopy_web&vd_source6e7a3cbb802eb986578ad26fae1eeaab的笔记 1、灯光的使用 定向光模拟太阳,是平行光。旋转定向光,光…...
贪吃蛇游戏
贪吃蛇 一、html <div class"container" id"app"></div><script src"./js/index.js"></script>二、css * {margin: 0;top: 0;} .set {margin: 15px auto;width: 600px; } .container {width: 600px;height: 600px;bac…...
docker修改镜像默认存储路径(基于 WSL2 的迁移方法)
打开powershell窗口 任意地方shift右键 1、停止 WSL wsl --shutdown2、导出数据 wsl --export docker-desktop-data E:\docker\DockerDesktopdata\docker-desktop-data.tar wsl --export docker-desktop E:\docker\DockerDesktop\docker-desktop.tar3、取消注册 wsl --un…...
C#+SqlSugar实现主从库读写分离
在使用 **SqlSugar** 进行分库操作时,可以通过配置多个数据库连接,并根据业务逻辑动态切换数据库。以下是一个完整的分库示例,展示如何实现分库功能。 --- ### **1. 安装 NuGet 包** 安装 SqlSugarCore: bash dotnet add packag…...
从无序到有序:上北智信通过深度数据分析改善会议室资源配置
当前企业普遍面临会议室资源管理难题,预约机制不完善和临时会议多导致资源调度不合理,既有空置又有过度拥挤现象。 针对上述问题,上北智信采用了专业数据分析手段,巧妙融合楼层平面图、环形图、折线图和柱形图等多种可视化工具&a…...
以太网详解(八)传输层协议:TCP/UDP 协议
文章目录 传输层协议概述为什么需要传输层?传输层功能网络层与传输层在实现 “端到端” 传输的异同两类服务:面向连接/无连接服务 传输控制协议 TCPTCP 协议数据单元格式TCP 的重传机制快重传和快恢复快重传举例快恢复算法 用户数据报协议 UDPUDP 概述UDP 基本工作过…...
CentOS 8 配置bond
CentOS 8 网络配置的详细步骤和对应的配置文件内容。 1. 配置聚合网卡(Bonding) 配置intranet聚合网卡 在/etc/sysconfig/network-scripts/目录下创建ifcfg-intranet文件,内容如下: TYPE=Bond NAME=intranet DEVICE=intranet ONBOOT=yes BOOTPROTO=none IPADDR=10.2.1.22…...
C语言基础16:二维数组、字符数组
二维数组 定义 二维数组本质上是一个行列式的组合,也就是说二维数组由行和列两部分组成。属于多维数组,二维数组数据是通过行列进行解读。 二维数组可被视为一个特殊的一维数组,相当于二维数组又是一个一维数组,只不过它的元素…...
Java 同步锁性能的最佳实践:从理论到实践的完整指南
目录 一、同步锁性能分析 (一)性能验证说明 1. 使用同步锁的代码示例 2. 不使用同步锁的代码示例 3. 结果与讨论 (二)案例初步优化分析说明 1. 使用AtomicInteger原子类尝试优化分析 2. 对AtomicInteger原子类进一步优化 …...
思科、华为、H3C常用命令对照表
取消/关闭 思科no华为undo华三undo 查看 思科show华为display华三display 退出 思科exit华为quit华三quit 设备命名 思科hostname华为sysname华三sysname 进入全局模式 思科enable、config terminal华为system-view华三system-view 删除文件 思科delete华为delete华…...
[qt5学习笔记]Application Example示例程序源码解析
开发环境问题 vs2022下直接打开ui、ts文件失败 解决办法如下图, 设置designer独立运行。估计是嵌入运行存在些许bug。 同理,ts编辑工具linguist也存在这个问题。 qrc rc的编辑嵌入编辑都正常,但分离式更稳定可靠。 qt creator编译失败 原…...
华为交换机堆叠技术简介配置
目录 一、华为堆叠技术简介(一)提高可靠性(二)扩展端口数量(三)增大带宽(四)简化组网(五)长距离堆叠 二、华为交换机堆叠技术的案例及命令配置(一…...
腿足机器人之四- 卡尔曼滤波
腿足机器人之四卡尔曼滤波 概率学基础贝叶斯准则熵 卡尔曼滤波扩展卡尔曼滤波信息滤波器 在机器人(四足、人形)领域,感知和行动的不确定性可能由多种因素引起,如传感器噪声、外部环境的变化、非精确控制以及实时性算力限制等。 和…...
nginx 部署前端vue项目
👨⚕ 主页: gis分享者 👨⚕ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕ 收录于专栏:前端工程师 文章目录 一、🍓什么是nginx?二、🍓nginx 部署…...
【第1章:深度学习概览——1.6 深度学习框架简介与选择建议】
嘿,各位老铁们,今天咱们来一场深度学习框架的深度探索之旅。在这个充满无限可能的深度学习时代,深度学习框架就像是连接理论与实践的桥梁,帮助我们从算法设计走向实际应用。随着技术的飞速发展,深度学习框架的选择变得越来越多样化,每一种框架都有其独特的优势和适用场景…...
NLLB 与 ChatGPT 双向优化:探索翻译模型与语言模型在小语种应用的融合策略
作者:来自 vivo 互联网算法团队- Huang Minghui 本文探讨了 NLLB 翻译模型与 ChatGPT 在小语种应用中的双向优化策略。首先介绍了 NLLB-200 的背景、数据、分词器和模型,以及其与 LLM(Large Language Model)的异同和协同关系。接着…...
C#的委托delegate与事件event
在C#中,delegate(委托)和 event(事件)是两个非常重要的概念,它们主要用于实现回调机制和事件驱动编程。下面详细介绍它们的原理和使用场景。 1. Delegate(委托) 1.1 委托的原理 委托…...
Spring Boot 集成MyBatis-Plus
文章目录 一、背景说明二、集成过程 2.1 引入 maven 依赖2.2 增加属性配置2.3 自动配置类 三、验证集成 3.1 控制器3.2 服务类3.3 Mapper接口类3.4 实体类3.4 不要忘记XML文件3.5 发起请求 四、技巧拓展 4.1 如何打印sql语句?4.2 如何对参数增加非空验证?…...
javacv将视频切分为m3u8视频并播放
学习链接 ffmpeg-demo 当前对应的 gitee代码 Spring boot视频播放(解决MP4大文件无法播放),整合ffmpeg,用m3u8切片播放。 springboot 通过javaCV 实现mp4转m3u8 上传oss 如何保护会员或付费视频?优酷是怎么做的? - HLS 流媒体加密 ffmpe…...
Docker 入门与实战:从安装到容器管理的完整指南
🚀 Docker 入门与实战:从安装到容器管理的完整指南 🌟 📖 简介 在现代软件开发中,容器化技术已经成为不可或缺的一部分。而 Docker 作为容器化领域的领头羊,以其轻量级、高效和跨平台的特性,深…...
计算机视觉:卷积神经网络(CNN)基本概念(二)
第一章:计算机视觉中图像的基础认知 第二章:计算机视觉:卷积神经网络(CNN)基本概念(一) 第三章:计算机视觉:卷积神经网络(CNN)基本概念(二) 第四章:搭建一个经典的LeNet5神经网络 接上一篇《计算机视觉&am…...
SQL SERVER的PARTITION BY应用场景
SQL SERVER的PARTITION BY关键字说明介绍 PARTITION BY关键字介绍具体使用场景排名计算累计求和分组求最值分组内百分比计算分组内移动平均计算分组内数据分布统计分组内数据偏移计算 总结 PARTITION BY关键字介绍 在SQL SERVER中,关键字PARTITION BY主要用于窗口函…...
【ISO 14229-1:2023 UDS诊断全量测试用例清单系列:第十二节】
ISO 14229-1:2023 UDS诊断服务测试用例全解析(TesterPresent_0x3E服务) 作者:车端域控测试工程师 更新日期:2025年02月14日 关键词:UDS协议、0x3E服务、会话保持、ISO 14229-1:2023、ECU测试 一、服务功能概述 0x3E服…...
gsoap实现webservice服务
gsoap实现webservice服务 在实现Web服务时,使用gSOAP是一个很好的选择,因为它提供了强大的工具和库来创建SOAP和RESTful服务。gSOAP是一个C和C语言开发的库,它支持SOAP协议的各种版本,包括SOAP 1.1和SOAP 1.2。下面是如何使用gSO…...
达梦:dmserver占用io高排查
目录标题 1. 使用达梦数据库的性能视图查询当前活动会话查询执行时间较长的 SQL 2. 使用 DM 性能监视工具3. 使用操作系统工具监控 I/Oiostat 工具dstat 工具 4. 优化查询和索引审查 SQL 执行计划优化索引 5. 调整数据库参数6. 分析数据库日志7. 硬件和存储检查总结 针对达梦数…...
MoE架构中的专家选择门控机制:稀疏激活如何实现百倍效率突破?
技术原理(数学公式与核心逻辑) 核心公式 门控网络输出: G ( x ) Softmax ( W g ⋅ x b g ) G(x) \text{Softmax}(W_g \cdot x b_g) G(x)Softmax(Wg⋅xbg) 最终输出: y ∑ i 1 n G i ( x ) ⋅ E i ( x ) (仅保留Top-…...
用python写一个聊天室程序
下面是一个简单的基于Socket的Python聊天室程序示例,包括服务器端和客户端: 服务器端代码: import socket import threadingdef handle_client(client, address):print(f"New connection from {address}")while True:msg client…...
七星棋牌全开源修复版源码解析:6端兼容,200种玩法全面支持
本篇文章将详细讲解 七星棋牌修复版源码 的 技术架构、功能实现、二次开发思路、搭建教程 等内容,助您快速掌握该棋牌系统的开发技巧。 1. 七星棋牌源码概述 七星棋牌修复版源码是一款高度自由的 开源棋牌项目,该版本修复了原版中的多个 系统漏洞&#…...
Vulhub靶机 ActiveMQ任意 文件写入(CVE-2016-3088)(渗透测试详解)
一、开启vulhub环境 docker-compose up -d 启动 docker ps 查看开放的端口 漏洞版本:ActiveMQ在5.14.0之前的版本(不包括5.14.0) 二、访问靶机IP 8161端口 默认账户密码都是admin 1、利用bp抓包,修改为PUT方法并在fileserver…...
Cloud: aws:network: limit 含有pps这种限制
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/troubleshooting-ena.html#statistics-ena 这个是调查网络问题的一个网页; 在里面,竟然含有pps这种限制:ethtool -S;其实是比较苛刻的安全相关的策略? [ec2-user ~]$ ethtool -S ethN NIC statistics:tx_timeout: …...
28、深度学习-自学之路-NLP自然语言处理-做一个完形填空,让机器学习更多的内容程序展示
import sys,random,math from collections import Counter import numpy as npnp.random.seed(1) random.seed(1) f open(reviews.txt) raw_reviews f.readlines() f.close()tokens list(map(lambda x:(x.split(" ")),raw_reviews))#wordcnt Counter() 这行代码的…...
观察者模式说明(C语言版本)
观察者模式主要是为了实现一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。下面使用C语言实现了一个具体的应用示例,有需要的可以参考…...
LC-搜索二维矩阵II、相交链表、反转链表、回文链表、环形链表、环形链表ll
搜索二维矩阵II 方法:从右上角开始搜索 我们可以从矩阵的右上角开始进行搜索。如果当前元素 matrix[i][j] 等于 target,我们直接返回 true。如果 matrix[i][j] 大于 target,说明 target 只能出现在左边的列,所以我们将列指针向左…...
如何查看 Linux 服务器的 MAC 地址:深入解析与实践指南
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
国产FPGA开发板选择
FPGA开发板是学习和开发FPGA的重要工具,选择合适的开发板对学习效果和开发效率至关重要。随着国产FPGA的发展,淘宝上的许多FPGA开发板店铺也开始进行国产FPGA的设计和销售,本文将对国产FPGA和相关店铺做个简单梳理,帮助有需要使用…...
iOS 获取设备占用内存
获取应用占用内存 获取应用进程占用内存 - (NSUInteger)memoryUsage {task_vm_info_data_t vmInfo;mach_msg_type_number_t count TASK_VM_INFO_COUNT;kern_return_t result task_info(mach_task_self(), TASK_VM_INFO, (task_info_t)&vmInfo, &count);if (result …...
用自己的数据训练yolov11目标检测
文章目录 概要理论知识整体架构流程架构优化多任务支持多参数体量 操作实操环境配置数据准备数据标注数据放置路径 训练预测 概要 官网:https://github.com/ultralytics/ultralytics?tabreadme-ov-file 提示:以 停车场空位检测 公开数据集示例&#x…...
golang如何将结构体和函数进行绑定?
在Go语言中,结构体和函数的绑定通常通过方法(method)来实现。方法是一种特殊的函数,它与某个类型关联,特别是结构体类型。下面是如何将结构体和函数进行绑定的具体步骤: 定义结构体:首先需要定义…...
【苍穹外卖】学习
软件开发整体介绍 作为一名软件开发工程师,我们需要了解在软件开发过程中的开发流程, 以及软件开发过程中涉及到的岗位角色,角色的分工、职责, 并了解软件开发中涉及到的三种软件环境。那么这一小节,我们将从 软件开发流程、角色…...
架构——LVS负载均衡主要模式及其原理、服务水平、优缺点
LVS(Linux Virtual Server)是一款高性能的开源负载均衡软件,支持多种负载均衡模式。以下是其主要模式及其原理、服务水平、优缺点: 1. NAT 模式(Network Address Translation) 原理: 请求流程…...
DFS算法篇:理解递归,熟悉递归,成为递归
1.DFS原理 那么dfs就是大家熟知的一个深度优先搜索,那么听起来很高大尚的一个名字,但是实际上dfs的本质就是一个递归,而且是一个带路径的递归,那么递归大家一定很熟悉了,大学c语言课程里面就介绍过递归,我…...
让编程变成一种享受-明基RD320U显示器
引言 作为一名有着多年JAVA开发经验的从业者,在工作过程中,显示器的重要性不言而喻。它不仅是我们与代码交互的窗口,更是影响工作效率和体验的关键因素。在多年的编程生涯中,我遇到过各种各样的问题。比如,在进行代码…...
C语言简单练习题
文章目录 练习题一、计算n的阶乘bool类型 二、计算1!2!3!...10!三、计算数组arr中的元素个数二分法查找 四、动态打印字符Sleep()ms延时函数system("cls")清屏函数 五、模拟用户登录strcmp()函数 六、猜数字小游戏产生一个随机数randsrandRAND_MAX时间戳time() 示例 …...
基于Python的深度学习音乐推荐系统(有配套论文)
音乐推荐系统 提供实时音乐推荐功能,根据用户行为和偏好动态调整推荐内容 Python、Django、深度学习、卷积神经网络 、算法 数据库:MySQL 系统包含角色:管理员、用户 管理员功能:用户管理、系统设置、音乐管理、音乐推荐管理、系…...
Java:单例模式(Singleton Pattern)及实现方式
一、单例模式的概念 单例模式是一种创建型设计模式,确保一个类只有一个实例,并提供一个全局访问点来访问该实例,是 Java 中最简单的设计模式之一。该模式常用于需要全局唯一实例的场景,例如日志记录器、配置管理、线程池、数据库…...
解锁养生秘籍,拥抱健康生活
在这个快节奏的时代,人们行色匆匆,常常在忙碌中忽略了健康。其实,养生并非遥不可及,它就藏在生活的细微之处,等待我们去发现和实践。 规律作息是健康的基础。日出而作,日落而息,顺应自然规律&am…...
数据结构之堆(Heap)
数据结构之堆(Heap) 数据结构之堆(Heap)一、堆的核心概念1. 定义与性质2. 存储方式 二、核心操作与算法1. 操作复杂度概览2. 关键操作详解(1) 向上调整(Sift Up)(2) 向下调整(Sift Down…...
人工智能 - 机器学习、深度学习、强化学习是人工智能领域的理论基础和方法论
机器学习、深度学习、强化学习是人工智能领域的三大核心方向,各自具有独特的理论基础和方法论。以下是它们的核心理论知识总结: 一、机器学习(Machine Learning, ML) 1. 基础概念 目标:通过数据驱动的方式,让机器从经验中学习规律,完成预测、分类或决策任务。 核心范式…...
github上文件过大无法推送问题
GitHub 对文件大小有限制,超过 100 MB 的文件无法直接推送到仓库中。 解决思路: 使用 Git Large File Storage (Git LFS) 来管理大文件不上传对应的大文件 使用Git LFS: 1. 安装 Git LFS 首先,你需要安装 Git LFS。可以按照以…...
Elasticsearch:将 Ollama 与推理 API 结合使用
作者:来自 Elastic Jeffrey Rengifo Ollama API 与 OpenAI API 兼容,因此将 Ollama 与 Elasticsearch 集成非常容易。 在本文中,我们将学习如何使用 Ollama 将本地模型连接到 Elasticsearch 推理模型,然后使用 Playground 向文档提…...