自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

方寸想法,编码宇宙

无志者常立志,有志者立长志。

  • 博客(304)
  • 资源 (5)
  • 收藏
  • 关注

原创 数据结构从未如此简单——图(一)

个人感觉数据结构学习最大的难点就是抽象。这些概念和算法都是从许多源问题中抽离、精炼、总结出来的。我们学习的看似是最精华的部分,但是忽略了推导过程,很容易变成死记硬背,碰到新问题也很难解决。因此,我打算对数据结构重新梳理一遍,找找这些算法的源头,对不同的点进行深入思考,争取融会贯通。

2023-11-11 18:27:22 144

原创 UI基础——UGUI源码架构

阅读源码是提高编程能力和技术水平的重要途径之一。

2023-09-07 15:01:46 599

原创 C++ include guard

include guard 也叫 header guard,macro guard,file guard。它的作用就是防止头文件被重复包含。具体的实现方法是:定义一个头文件的时候,用#ifndef 的形式来定义一次宏。第一次包含此文件,可以正确定义宏,之后再包含此文件,因为已经定义过,所以会skip。include guard实现示例:...

2022-07-12 13:09:44 714 1

原创 Unity内存管理

内存管理是性能优化的一个重要方面。可能造成性能问题的原因有2个:● 不必要的内存分配:垃圾回收开销大,占用CPU(用户体验差?怎么差了?会卡?)● 内存泄露:导致崩溃通过unity高效使用内存需要学会这些:● Unity引擎底层● Mono平台● C#语言● IL2CPP脚本后端的工作原理为什么不只是关注高层问题呢?因为计算机是个复杂的系统,如果长期脱离底层问题,可能会导致潜在灾难。因为游戏引擎的设计方案通常是这样的:● 在底层运行C++,处理渲染、动画、资源管理等;● 为要实现的玩法逻辑

2022-07-11 08:43:31 838

原创 Unity由于找不到MSVCP120.dll,无法继续执行代码

找不到MSVCP120.dll,在vs官网下载缺少组件

2022-06-08 09:45:52 4340 3

原创 简析LGSVL自动驾驶仿真系统

文章目录摘要1 引言2 软件架构2.1 自动驾驶算法引擎接口2.2 仿真引擎2.3 传感器和主车模型2.4 3D环境和高精度地图2.5 场景数据管理3 软件应用领域3.1 SIL和HIL测试3.2 机器学习和数据生成3.3 V2X系统3.4 智慧城市4 小结参考文献摘要在真实的自动驾驶汽车上测试自动驾驶算法的成本非常高,自动驾驶仿真引擎可以对自动驾驶车辆进行虚拟测试,极大地降低了测试成本。LGSVL Simulator是一个基于Unity游戏引擎开发的开源自动驾驶仿真系统,该软件提供端到端的仿真,通过一

2022-03-02 16:38:19 4966 2

原创 简析GFS和HDFS的部分设计目标及解决方案

文章目录摘要1 引言2 GFS介绍2.1 GFS架构简介2.2 GFS中提出的用于大数据处理的分布式文件系统设计的目标2.3 组件失效的解决方案2.4 针对大文件提出的适应性解决方案2.5 为了保证数据追加操作的原子性采取的措施2.6 在满足可用性基础上的简化设计2.7 为提高性能,避免系统瓶颈的一些解决方案2.7.1 防止单一的Master结点成为系统瓶颈2.7.2 防止冗余创建效率低下,影响系统性能2.7.3 尽量避免网络瓶颈3 HDFS介绍3.1 HDFS简介3.2 HDFS与GFS的对比3.2.1架

2022-03-02 16:15:29 2308

原创 智能人体动画简述

文章目录摘要1.引言2.基于运动捕捉的人体动画制作技术2.1 三维人体运动数据获取2.2 人体运动数据预处理2.3 运动合成3 群体动画技术3.1 群体动画建模3.2 基于智能体的群体动画4 面向动画序列生成的人体动画制作技术4.1 基于运动学的技术4.2 基于核方法的技术4.3 基于深度学习的技术5 小结参考文献摘要近年来很多学者将人工智能、人工生命等技术融入到人体动画制作中,从而实现动画序列的自动生成,让人物角色具备一定的自主性和智能性。由于很多智能人体动画技术以人体运动捕捉数据为基础,因此本文先简

2022-03-02 16:04:33 866

转载 在Juypter Notebook中切换虚拟环境

原文链接方案一:使用nb_conda插件conda install nb_conda方案二:使用ipykernel似乎nb_conda有时候会工作异常。另一个方法是通过ipykernel来注册。pip install ipykernelpython -m ipykernel install --user --name stock --display-name stock上述命令将把通过conda create创建的名为stock的虚拟环境注册到notebook当中,并且其显示名也为stoc

2021-11-13 20:28:30 129

原创 Python包 - networkx

因为该文章是在博客园发布的,没法收藏,所以在这里附上链接,方便查看:Python包-networkx简单总结一下:

2021-09-13 14:04:51 141

原创 Anaconda虚拟环境下使用pip install失败

原因base环境的pip和当前虚拟环境的pip版本不一致。解决方案卸载当前虚拟环境的pip然后重新安装一次。python -m pip uninstall pip==20.0.2 #卸载当前虚拟环境中的pipconda install pip==20.0.2 #卸载当前虚拟环境中的pip安装完可以检查一下,当前的pip是不是此虚拟环境中的pip这样就可以正常安装了。...

2021-07-16 20:15:32 6081

原创 fatal: unable to access ‘https://github.com/xxx‘: OpenSSL SSL_connect

参考:stackOverflowgit config --global http.sslBackend "openssl"#在安装目录下找到cert.pem的路径git config --global http.sslCAInfo "C:\Program Files\Git\mingw64\ssl\cert.pem"

2021-06-30 22:37:53 415

转载 【C++】常用数据类型取值范围

2021-06-23 14:50:58 450

原创 uv坐标备忘

一旦一个网格是通过定义顶点和索引创建的,它就会对其应用纹理。一个常见的挑战是找到一种将2d纹理映射到3d对象的方法。这里有一种叫做UV映射的技术。UV不是一个缩写,而是代表一对坐标u和v。它们通常用两个foats表示(例如,u=0.0f, v=1.0f),其中0.0f, 0.0f表示纹理位图的左上角,1.0f, 1.0f表示右下角。一个二维UV坐标被分配给顶点列表中的每个顶点,因此定义了纹理的哪个部分映射到3d网格的哪个区域。解释UV映射的一个常见做法是想象一个有六个面的立方体。通过展开这个立方

2021-06-04 17:28:28 752

原创 Unity激光雷达仿真调研(svl)

文章目录一、原理二、背景知识三、Unity技术1.C#作业系统2.基于物理引擎的实现方法3.基于深度图的实现方法四、ROS传输1.ROS消息类型一、原理真实激光雷达的原理激光雷达的基本原理是发射激光至物体表面,接收返回的激光,并根据发射与返回的时间差,计算激光方向上障碍物的距离,还可以记录返回的激光的强度。返回的数据一般以点云形式提供给上层应用,用以识别障碍物类型。激光雷达仿真的思路参照真实激光雷达的扫描方式,模拟每一条真实雷达射线的发射,与场景中所有物体求交。以某64 线、水平分辨率为0.4°

2021-05-20 16:47:41 3109 1

原创 Unity摄像头仿真调研(svl)

文章目录一、摄像头仿真原理1.创建三维模型2.将三维模型转为图像点3.仿真摄像头的特性、采集过程4. 仿真天气情况与光照条件5.输出数据与传输二、摄像头背景知识1.镜头畸变(Lens distortion)三、Unity相关技术1.RenderTexture2.RTHandle3.类型转换4.使用ComputeShader实现镜头畸变效果四、ROS传输1.对应的ROS Message 类型一、摄像头仿真原理1.创建三维模型摄像头仿真的思路为,基于环境物体的几何空间信息构建对象的三维模型,并根据物体的真

2021-05-20 14:08:24 1284 3

原创 【Unity】不同DPI导致MousePosition不正确

原本是这样一个功能:在编辑器下移动鼠标在鼠标所在位置,从摄像机向世界空间发射一条射线射线射中某个平面,在hit point处生成1个cube产生的问题:在编辑器下获取鼠标位置的函数:Event.current.mousePosition假如此时,显示器的分辨率为1920x1080,则左上角是(0,0),右下角是(1920,1080)。但是,如果DPI不是100,那么此时的mousePosition就会错误。解决方案:获取操作系统当前设置的DPI:使用Unity的API:Scr

2021-05-19 17:15:18 1888

原创 【C#】本地函数(函数嵌套)

文章目录原理参考C# 中的本地函数本地函数(C# 编程指南)使用总结可以在类中的1个方法中再定义1个 本地函数,此本地函数只能在定义它的方法中被调用。此本地函数可以使用定义它的方法中的局部变量。调用本地函数时和普通函数一样。一个很实用的例子碰到递归类的问题,就不用再外部额外定义函数了。public static uint LocFunFibonacci(uint n){ return Fibonacci(n); uint Fibonacci(uint num)

2021-04-22 10:38:57 1772

原创 【C#】List去重

文章目录问题引出使用Distinct去重操作方法原理参考c# list对象集合 去重C# List 根据对象属性去重的四种方法对比问题引出希望玩家在Unity的Inspector面板上对一个list赋值,随后,程序将对list中的元素进行操作。操作时,不希望list中的对象重复。(若使用HashSet,则无法序列化,不能让用户在面板上赋值。)当然,只使用List作为中转,实际操作HashSet中的元素也是可以的。此外,想要实现List去重,还可以使用一个Dictionary来进行中转,每次

2021-04-22 10:21:01 2293

原创 力扣题目 | 概率生成问题

概率生成问题是一种比较常见的面试题,常见题型举例:有一枚不均匀的硬币,要求产生均匀的概率分布有一枚均匀的硬币,要求产生不均匀的概率分布,如 0.25 和 0.75利用 Rand7() 实现 Rand10()不均匀硬币,产生等概率现有一枚不均匀的硬币 coin(),能够返回 0、1 两个值,其概率分别为 0.6、0.4。要求使用这枚硬币,产生均匀的概率分布。即编写一个函数 coin_new() 使得它返回 0、1 的概率均为 0.5。// 不均匀硬币,返回 0、1 的概率分别为 0.6、0.4

2021-04-18 11:45:04 574

原创 Unity编辑器开发——Undo

文章目录引言Unity Undo原理Undo.RecordObjectUndo.undoRedoPerformed引言自定义编辑器时,有些操作希望能够撤销。比如,我们目前正在开发的spline编辑,拖动控制点、修改spline属性这两种操作是很难一次做到位的,那么就可能需要多次的undo。那么如何实现呢?实现Undo/Redo通常有3种方式:一、基于对象序列化的Undo\Redo二、基于Command模式的Undo\Redo三、结合RoutedEvent、Observer模式和Command

2021-04-12 11:20:49 3316

原创 求职体验总结

文章目录一、体验流程0.通知方式1.简历关(1)投递简历文件(2)网络简历填写2.内推3.笔试关4.面试关(1)电话面试(2)视频面试一、体验流程0.通知方式加微信的:平时可以聊天问问题。钉钉群:被拉个小群通知(后续可以在钉钉发起视频面试)。短信通知:短信通常用来辅助确认,还有别的通知手段。阿里、腾讯。电话沟通:具体协商面试的时间。阿里。邮件链接确认:笔试链接(腾讯、网易)、面试链接需要由你自己点击:参加、换时间还是拒绝(腾讯)。1.简历关(1)投递简历文件暂时没有遇到直接收简历的公

2021-04-03 22:17:02 241

原创 【Unity】Failed to open source file UnityCG.cginc

方法1:确保您的着色器文件(如果包含其他文件)具有正确的文件夹结构。在将文件移动到不同的文件夹后,我也遇到了这种情况。基本上,这打破了自定义文件之间的连接。IE:在我的着色器文件中,我包含一个资源文件。我以前只是把它放在这样的根目录下。#include“ /CustomShaderFile.cginc”因此,当我将自定义着色器移动到新文件夹中时,我必须更改结构,以使其在正确的文件夹中显示。#include“ …/ShadersFolder/CustomShaderFile.cginc”方法2:

2021-03-25 11:40:00 5358 2

原创 Unity编辑器扩展:自定义编辑器(Inspector+SceneView)

文章目录一、引言二、自定义Inspector三、控制SceneView参考一、引言在 Unity 中创建脚本时,默认情况下,此脚本继承自 MonoBehaviour,因此可作为附加到游戏对象的组件。将一个组件放置在游戏对象上时,Inspector 会显示一个默认界面,可用于查看和编辑每个公共变量,例如:整数、浮点数或字符串。自定义编辑器是一个单独脚本,可将此默认布局替换为您选择的任何编辑器控件。比如,要为 LookAtPoint 脚本创建自定义编辑器,请执行以下操作:创建一个新的 C#脚本命名为

2021-01-26 19:46:51 1073

原创 IMGUI常用API总结

文章目录一、IMGUI简介二、控件(组件)相关APIType相关Content相关三、布局相关API1.固定布局与自动布局2.GUI的Group3.GUILayout的Area和Group4. 空白元素5.控件扩展四、样式相关API五、事件相关API参考一、IMGUI简介“即时模式”GUI 系统(也称为 IMGUI)是一个完全独立的功能系统,不同于 Unity 基于游戏对象的主 UI 系统。IMGUI 是一个代码驱动的 GUI 系统,主要用作程序员的工具。为了驱动该系统,需在实现脚本上调用 OnGUI

2021-01-26 17:58:55 4009 2

原创 Unity编辑器扩展:窗口

文章目录一、概述二、派生自EditorWindow三、显示窗口四、实现窗口的 GUI参考一、概述创建自定义编辑器窗口涉及以下简单步骤:创建一个派生自 EditorWindow 的脚本。使用代码触发窗口自行显示。实现工具的 GUI 代码。二、派生自EditorWindow为了创建编辑器窗口,必须将脚本存储在称为“Editor”的文件夹中。在派生自 EditorWindow 的此脚本内创建一个类。然后在内部 OnGUI 函数中编写 GUI 控件。using UnityEngine;usin

2021-01-26 17:22:16 488

原创 浏览器默认样式:User Agent Style Sheet

文章目录1.什么是浏览器默认样式?2.如何获取到对应的css?3.如何理解默认样式?1.什么是浏览器默认样式?如图所示,F12开发者工具中可以看到当前的样式用到的CSS是什么:user agent stylesheet2.如何获取到对应的css?Mozilla Firefox: https://dxr.mozilla.org/mozilla-central/source/layout/style/res/html.cssGoogle Chrome: https://chromium.googl

2021-01-26 14:32:55 579

原创 【HTML】标签的开始和闭合问题

文章目录标签的作用元素分类不同元素的标签规则参考标签的作用标签在标记中起到标记元素的开始和结束的作用。元素分类共有5种元素:空元素、原始文本元素、RCDATA元素、外来元素以及常规元素。空元素area、base、br、col、command、embed、hr、img、input、keygen、link、meta、param、source、track、wbr原始文本元素script、styleRCDATA元素textarea、title外来元素来自MathML命名空间和

2021-01-17 21:22:38 619

原创 如何使用MonoXSD / xsd.exe使用xsd文件生成C#类?

文章目录引言什么是MonoXSD/xsd.exe如何使用xsd.exe的参数解析引言之前写了这两篇,对OpenDRIVE文件的读写有了一点认识。【C#】读写XML文件总结OpenDRIVE——如何高效查阅元素和属性但我也会思考一个问题,如何检测我读入的文件是否符合OpenDRIVE的规范呢?这天,我看到了LGSVL Simulator的源码,它可以实现OpenDRIVE1.4地图的读写。我好奇地看了看它是如何读写OpenDIRVE的:使用的果然是Deserialize函数和Serialize

2021-01-13 15:00:47 717

原创 OpenDRIVE——如何高效查阅元素和属性?

1.官网有中文文档2.官网下载完整的文档包:里面包含了示例文件、.xsd、umlmodel,都很重要。3.善用.xsd文件【重要】:路径:OpenDriveFormatV1.6\xsd_schema此类型文件的含义:XML Schema教程-W3CSchool此类型文件包含了OpenDRIVE完整的元素和属性参考。此格式的文件可以用Visual Studio打开。效果如图:看标红的地方:默认是home界面,选择第二个icon,可以查看内容模型。可以展开查看每个元素的子元素、属性等。4.

2021-01-07 21:56:06 592

原创 ST(StoryTest)简单了解

文章目录一、业务需求二、ST概念三、背景知识四、ST应用一、业务需求要求提供各模块测试验证报告,ST验证报告为必须,UT验证报告可选,ST用例密度15个/KLOC,UT用例密度10个/KLOC。ST验证报告的模板如下所示:术语KLOC:thousands (kilo) of lines of code。千行代码。测试用例测试用例编号:CASE_ST_模块名称_功能点名称_01测试类型:功能/性能/兼容性/可维护性测试预置条件:测试步骤预期结果测试结果:Pass、Fail、Blo

2021-01-06 16:02:06 2638

原创 【C#】读写XML文件总结

文章目录一、XML文件二、反序列化(字节流转对象)的流程需求1:把整个xml文件读入一个对象0. 定义对象1. 输出对象2.输出Stream/TextReader...需求2:把xml读入为一棵树三、序列化(对象转字节)的流程方法1:使用XmlSerializer方法2:使用XmlTextWriter四、总结一、XML文件1.本质上就是一个文本文件2.它在逻辑上是有结构的,由element和attribute组成。二、反序列化(字节流转对象)的流程需求1:把整个xml文件读入一个对象我们倒着往

2021-01-05 15:03:53 403

原创 【C#】Collection was modified; enumeration operation may not execute

文章目录错误应用场景发生错误的原因解决方案方案一方案二方案三参考错误集合已修改;枚举操作可能无法执行应用场景(1)有一个List保存了所有UI的prefab。(2)默认情况下,我会先把所有prefab保存到该List中。接着,在某些时刻根据名称在List中去查找,得到特定的prefab。结果,今天,我写了这样的代码:查找某个prefab的时候,我又往List中添加了几个新的prefab。此时,原本的代码依然在不停地枚举List,查找特定的prefab,于是就报了这个错。发生错误的原因

2020-12-25 16:32:55 2309

转载 运行时绘制Gizmo——关于unity3D的GL图像库的使用(非常详细)

文章目录GL图象库绘制线实例----绘制曲线(鼠标移动轨迹)绘制四边形绘制三角形绘制3D几何图形GL图象库GL图象库是底层的图象库,主要功能是使用程序来绘制常见的2D与3D几何图形。这些图形具有一定的特殊性,他们不属于3D网格图形,只会以面的形式渲染。使用GL图象库,可在屏幕中绘制2D几何图形,并且该几何图形将永远显示在屏幕当中,不会因为摄象机的移动而改变。2D图形的呈现方式和前面章节介绍的GUI有点类似,值得注意的是,绘制2D图像时,需要使用GL.LoadOrtho()方法将图形映射在平面中;如

2020-12-24 21:05:02 1326

原创 VS安装Bug

1.表面问题:VS2015无法打开OpenGL文件发现实际问题:VS2015无法修改安装路径,并且是一个中文路径(造成原因:以前安装过VS2010/2012/2015等,它们有些共同的文件夹,同时安装在了不知道哪里,卸载的时候不能完全卸载干净。重新启动安装程序时默认要安装到以前的文件夹中,导致打开文件不成功的原因可能是:包含库路径不对或旧组件失效 )解决方法:下载卸载vs2015的专用插件,卸载所有相关文件。 重新启动安装程序,重新指定安装路径。连锁问题:有两个文件无法安装原因:已安装旧版

2020-12-23 20:42:16 106

原创 【C#】【UGUI】委托的参数是委托:弹出确认面板的回调函数

在UI接口的脚本里这样写:public System.Action<System.Action<bool>> ShowPopupConfirmDeleteObject = null;在控制业务逻辑的脚本里这样写:private void OnSelectedObjectDeleteBtn(object p_obj, System.EventArgs p_args){ if (m_GUI3dObject.SelectedObject != null) { if (LE

2020-12-15 11:10:49 218

原创 C# 判断string变量值为Enum值

定义枚举类型public enum UIPanelType { ItemMessage, Knapsack, MainMenu, Shop, Skill, System, Task}输入字符串,转为枚举类型的值System.Enum.Parse(typeof(enum..), str);public void OnPushPanel(string panelTypeString){ UIPanelType panelType

2020-12-08 16:33:40 937

原创 【Unity】编辑器下或PlayMode立即运行的属性

文章目录问题Unity的InitializeOnLoad属性UnityEditor.Callbacks的PostProcessScene属性检测Playmode的变化问题如果点击Play之后有一些代码执行了,而你又完全找不到调用者。那么,作者很有可能使用了以下的这些小技巧,它们的特点是只要进入Playmode就会自动执行。Unity的InitializeOnLoad属性有时,若能够在 Unity 启动时立即在项目中运行一些 Editor 脚本代码而无需用户进行操作,这会很有用处。为实现此目的,可

2020-11-27 20:16:53 2926

原创 C#扩展方法的简单使用

文章目录问题扩展方法向string类添加扩展方法的示例向string类添加扩展方法的示例问题阅读源码的时候,发现某个对象调用了没有在它的类中定义的方法,这是怎么回事呢?原来使用了扩展方法。扩展方法给C#内置对象或自定义对象添加扩展方法,那么在同一个命名空间下面定义的所有的该类对象都可以直接调用此扩展方法。使用时需要注意:(1)扩展方法不能和调用的方法放到同一个类中(2)第一个参数必须要,并且必须是this,这是扩展方法的标识。如果方法里面还要传入其他参数,可以在后面追加参数(3)扩展方法所

2020-11-27 15:25:51 178

转载 ADAS术语

文章目录什么ADAS与自动驾驶什么是ADASACCAPA什么ADAS与自动驾驶目前的ADAS不等于自动驾驶。ADAS仅仅是辅助驾驶,需要人类主导;而自动驾驶是人工智能主导,简单来说就是不需要人操控方向盘。按照SAE(SAE International,Society of Automotive Engineers国际自动机工程师学会)的分级,自动驾驶技术分为L0-L5共六个等级:目前的ADAS处于L2到L3之间的自动驾驶水平。什么是ADAS在实现真正自动驾驶之前,将经历一个高级辅助驾驶(ADA

2020-11-27 11:33:22 685

相机标定和鸟瞰图生成_vs2017.rar

使用VS2017+OpenCV,实现了黑白棋盘相机标定,求出相机内参矩阵、外参矩阵,还实现了鸟瞰图生成。 包含vs的解决方案、实验报告

2019-10-13

Stylized Water Shader 2.0.4.unitypackage

超棒的风格化水特效插件,适用于Unity3D,可以通过简单调整参数实现你想要的水面效果。有非常丰富的水面效果,包含island、pond、lake3个demo场景。up主的毕设中也用到了,主要是调整了水面的噪波、颜色等。

2019-09-23

Underwater FX 1.4.unitypackage

Unity水下特效插件,有较好的水下视觉效果,配套Effects、音效。

2019-09-23

Unity文字特效插件TextFx v2.5

酷炫的Unity文字特效,可以使用Bitmap工具制作中文字体,可以自定义动画。

2018-06-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除