该用户还没想到好的昵称的博客

没错,http://blog.sina.com.cn/u/5136355363也是我写的
私信 关注
该用户还未想到好的昵称
码龄4年

如果世界漆黑,其实我很美

  • 223,199
    被访问量
  • 336
    原创文章
  • 21,429
    作者排名
  • 83
    粉丝数量
  • 于 2017-08-07 加入CSDN
获得成就
  • 获得43次点赞
  • 内容获得102次评论
  • 获得143次收藏
荣誉勋章
兴趣领域
  • #Android
    #数据结构
TA的专栏
  • C语言
    10篇
  • 新浪博客导入
  • C#
    23篇
  • Unity
    48篇
  • Git
    2篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

Qt编译DLL

Qt 中有两种编译方式:1、MSVC(Microsoft Visual C++ Compiler)是指微软的VC编译器2、MinGW(Minimalist GNU on Windows)是一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,它是将GNU开发工具移植到Win32平台下的产物,即一套Windows上的GNU工具集,允许在GNU/Linux和Windows平台生成本地的Windows程序而不需要第三方运行时库。Qt使用两种方式编译dll时,有以下区别:
原创
14阅读
0评论
0点赞
发布博客于 11 天前

vcruntime140d_app.zip

vcruntime140d_app.dll与msvcp140d_app.dll
zip
发布资源于 1 月前

C++ | Qt 常用头文件及容器类

一、Qt常用头文件1.<QtGlobal> 头文件<QtGlobal> 头文件包含了 Qt 类库的一些全局定义,包括基本数据类型、函数和宏。一般的 Qt 类的头文件都会包含该文件,所以不用显式包含这个头文件也可以使用其中的定义。(1) Qt 中的数据类型定义Qt 数据类型 等效定义 字节数 备注 qint8 signed char 1 qint16 signed short 2 qint32 ..
原创
72阅读
2评论
0点赞
发布博客于 2 月前

C++ | Qt快捷键

右键 快捷键 解释 等级 Context Help F1 为光标所在的符号显示帮助文件的内容 Follow Symbol Under Cursor F2 跟踪光标下的符号,若是变量,可跟踪到变量声明的地方;若是函数体或函数声明,可在两者之间切换 ★★★ Find Next F3 查找下一个 Switch Header/Source F4 在同名的头文件和源程序文件之间切换 ★★★ Start..
原创
101阅读
0评论
0点赞
发布博客于 2 月前

C++ | Qt信号与槽机制

一、信号与槽概念信号(Signal)就是在特定情况下被发射的事件,例如PushButton 最常见的信号就是鼠标单击时发射的 clicked() 信号,一个 ComboBox 最常见的信号是选择的列表项变化时发射的 CurrentIndexChanged() 信号。槽(Slot)就是对信号响应的函数。槽就是一个函数,与一般的C++函数是一样的,可以定义在类的任何部分(public、private 或 protected),可以具有任何参数,也可以被直接调用。槽函数与一般的函数不同的是:槽函数可以与一
原创
84阅读
0评论
0点赞
发布博客于 2 月前

C++ | 初识Qt

一、了解QtQt是一个跨平台的C++开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序,也可以开发不带界面的命令行(Command User Interface,CUI)程序。Qt 虽然经常被当做一个 GUI 库,用来开发图形界面应用程序,但这并不是 Qt 的全部;Qt 除了可以绘制漂亮的界面(包括控件、布局、交互),还包含很多其它功能,比如多线程、访问数据库、图像处理、音频视频处理、网络通信、文件操作等,这些 Qt 都已经内置了。QT学习资料:http
原创
91阅读
0评论
0点赞
发布博客于 2 月前

C++ | 开发过程中遇到的那些事

静态变量的初始化方式; new一个对象后,一定要记得释放,先delete,再nullptr; 封装的SDK,打包的release包需要在Debug模式下运行,要注意对外暴露的函数参数不能是std::string; 多线程问题:a.创建的各个对象要独立;b.在线接口需要多次调用,异步回调,此时为了或许结果,需要把每次调用创建的对象存放在map中,获取到结果再释放。...
原创
62阅读
0评论
0点赞
发布博客于 2 月前

C语言 | 关于命令行的一些操作

1.判断是否有按键输入,获取输入的字符但不在命令行显示#include <conio.h>char key = 'D';while (_kbhit()){ key = _getch();}2.更新命令行中某个位置的字符 #include <windows.h> COORD coord; //更新末尾空格 coord.X = last_x; coord.Y = last_y; SetConsoleCur
原创
74阅读
0评论
0点赞
发布博客于 3 月前

C++ | websocketpp ws转wss

因为之前请求的ws接口会有连接不上的情况,所以需要把ws改成wss。经过两天的研究,终于搞清楚了ws与wss的区别。一、概念wss是 Web Socket Secure 的简称,它是 WebSocket 的加密版本。我们知道 WebSocket 中的数据是不加密的,但是不加密的数据很容易被别有用心的人窃取,因此为了保护数据安全,人们将 WebSocket 与 SSL结合,实现了安全的 WebSocket 通信,即 WebSocketSecure 。所以说 WSS 是使用 SSL 进行加密了的 Web
原创
234阅读
1评论
0点赞
发布博客于 3 月前

C语言 | 文件操作(二)

一、大文件的拷贝#define _CRT_SECURE_NO_WARNINGS#include <stdlib.h>#include <stdio.h>#define SIZE 1024 //注意没有分号int main() { FILE* fp = fopen("./cn.wav", "rb"); if (!fp) { return -1; } FILE* fp1 = fopen("./copy.wav", "
原创
84阅读
0评论
0点赞
发布博客于 3 月前

C++ | 总结编译使用各个库出现的问题

1.编译boost库1.'cl'不是内部或外部命令,也不是可运行的程序或批处理文件 解决方法:找到cl.exe所在路径(例如我的路径:C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64),配置环境变量。...
原创
67阅读
0评论
0点赞
发布博客于 3 月前

C++ | 解决x86版本 LNK1104 无法打开文件“libboost_random-vc140-mt-1_61.lib”等一系列问题

在编译C++ x86版本的SDK时,报了这个错:LNK1104 无法打开文件“libboost_random-vc140-mt-1_61.lib”,我编译了一圈x86 的boost库,发现貌似需要使用VS2015来编译,这样编译出来的boost库才是vc140,我用VS2017编译出来的都是vc141,那我需要安装VS2015呢?需要这么麻烦吗?并不需要!附一张VS2017编译的boost库:(我现在猜想改一下名字或许也可以用,但是没试过)解决办法:1.下载已经编译好的库boost_1_67
原创
86阅读
0评论
0点赞
发布博客于 3 月前

编译x86 release版本libcurl,支持https

最近需要封装一个支持x86的SDK,之前已经实现了编译x64 libcurl支持https,但是用同样的方法,编译出来的libcurl库还是不支持https,折腾了两天,尝试了网上所有的编译libcurl+openssl的方法,无果,直到遇到这篇文章。过程中遇到了点问题项目中使用静态库报错(这个问题还未搞清楚,路过的大神帮忙解答一下),所以最后用的是动态库,总结一下。本文记录的编译方式并不需要编译openssl,本人猜测是因为使用的curl源码中已经自带了。(希望有人可以帮忙给个正确答案)1.下载最
原创
76阅读
0评论
0点赞
发布博客于 3 月前

编译的libcurl release32支持https.zip

直接编译的curl-7.73.0,并没有编译openssl,测试可支持https。参考的博客:https://www.cnblogs.com/tingtaishou/p/12958147.html
zip
发布资源于 3 月前

jsoncpp release版本 支持x64与x86.zip

jsoncpp编译可参考文章:https://blog.csdn.net/weixin_39766005/article/details/108308569
zip
发布资源于 3 月前

C语言 | 文件操作(一)

一、文件概述1.磁盘文件指一组相关数据的有序集合,通常存储在外部介质(如磁盘)上,使用时才调入内存。从用户或者操作系统使用的角度(逻辑上)把文件分为文本文件和二进制文件。a.文本文件1.基于字符编码的文件,常见编码有ASCII、UNICODE等;2.一般可以使用文本编辑器直接打开;3.数5678,以ASCII存储形式为:00110101 00110110 00110111 00111000。b.二进制文件1基于值编码的文件,自己根据具体应用,指定某个值是什么意思;2.把内
原创
103阅读
0评论
0点赞
发布博客于 4 月前

C语言 | 联合体(union)、typedef

一、联合体union1.联合体含义联合 union 是一个能在同一个存储空间存储不同类型数据的类型; 联合体所占的内存长度等于其最长成员的长度倍数,也有叫做共用体; 同一内存段可以用来存放几种不同类型的成员,但每一瞬时只有一种起作用;共用体变量中起作用的成员是最后一次存放的成员,在存入一个新的成员后原有的成员的值会被覆盖; 共用体变量的地址和它的各成员的地址都是同一地址。2.联合体与结构体结构体的各个成员会占用不同的内存,互相之间没有影响;而共用体的所有成员占用同一段内存,修改一个成员会
原创
800阅读
1评论
0点赞
发布博客于 4 月前

C++ | VS2017 C++项目配置使用的常见宏定义

常见宏定义 含义 $(ProjectDir) .vcxproj所在目录 $(Platform) x64/x86
原创
232阅读
0评论
0点赞
发布博客于 4 月前

C语言 | 结构体偏移对齐、结构体指针、结构体作为函数参数

一、结构体变量的定义与使用1.先声明结构体类型再定义变量名#define _CRT_SECURE_NO_WARNINGS#include <string.h>#include <stdio.h>struct student { char name[21]; int age; char address[51];};void main(){ struct student stu; //stu.name = "张三";//错误,
原创
113阅读
0评论
0点赞
发布博客于 4 月前

C语言 | 变量、函数及内存分区

目录一、变量全局变量(存储在数据区)静态变量(存储在数据区)全局变量、局部变量、静态全局变量、静态局部变量对比二、函数静态函数三、内存分区四、内存相关函数malloc() [#include ]free() [#include ]memset() [#include ]一、变量 全局变量(存储在数据区) 在函数外定义,可被本文件及其它文件中的函数所共用,若其它文件中的函数调用此变量,须用 extern 声明。(extern:声明变量为外部变量)...
原创
121阅读
0评论
0点赞
发布博客于 4 月前

curl+openssl x64 debug

windows x64 debug 支持https的curl+openssl库,博客文章:https://blog.csdn.net/weixin_39766005/article/details/109003194
rar
发布资源于 4 月前

C++ | Curl+OpenSSL编译,支持https

一、安装ActivePerl下载路径:https://www.activestate.com/products/perl/downloads/ 安装教程:https://blog.csdn.net/MarsLee_U/article/details/86491759二、安装nasm(非必须)下载路径:https://www.nasm.us/pub/nasm/releasebuilds/?C=M;O=D 环境变量配置:https://blog.csdn.net/Bad_Monkey/articl
原创
217阅读
1评论
0点赞
发布博客于 4 月前

C语言 | 字符串的操作

一、注意事项C语言中使用字符串时,使用#include <string.h>C++中使用#include <string>二、字符串的操作1.字符串拷贝全部: char* strcpy(char* dest,const char* src);把src所指向的字符串复制到dest所指向的空间中,'\0'也会拷贝。 #include <string.h> char dest_str[100] = { 0 }; const ch
原创
151阅读
0评论
0点赞
发布博客于 5 月前

C++ | 通过命令行运行exe时 参数中有空格的解决办法

当通过命令行运行exe,main函数需要设置参数时,我们需要在命令行中以如下的方式运行:>可执行文件名称 参数eg:demo.exe 中main函数需要一个string 参数:"hello",在命令行中需要这样写:>demo.exe hello或者>demo.exe "hello"eg:demo.exe 中main函数需要一个string 参数:" I am a chinese",在命令行中需要这样写:>demo.exe "I am a chine..
原创
279阅读
0评论
0点赞
发布博客于 5 月前

CMake 编译jsoncpp

一、安装CMake进入链接,根据自身需要下载安装包进行下载,我下载的是cmake-3.18.2-win64-x64.msi; 双击进行安装,安装过程中注意勾选“Add CMake to the system PATH for all users”。安装完成后,在命令提示符中输入cmake,能够显示cmake的一些信息即为安装成功。二、下载jsoncpp源码并进行编译点击链接下载jsoncpp源代码,解压; 打开CMake软件,设置source code路径及build the binaries
原创
268阅读
0评论
0点赞
发布博客于 6 月前

C++ | 生成静态库和动态库

一、静态库与动态库静态库(.lib):将.cpp文件中的函数的地址和定义,以及函数之间的链接关系通通打包,生成的一个二进制文件。 动态库(.lib+.dll):.lib文件打包的只是.cpp文件中函数的地址和链接关系,函数的具体定义打包在.dll文件中。 相同点: 二者都不包含函数的声明部分,因此调用这两种库的时候,都需要包含相应的头文件(.h); 静态库和动态库的.lib文件,在生成可执行文件(.exe)的时候,都将被打包进.exe文件中; 不同点: 静态库的.lib文件远大于动态库的.l
原创
228阅读
0评论
0点赞
发布博客于 6 月前

C++ | VS 配置静态、动态库

一、配置静态库(.lib文件、.h文件)将.h文件与.cpp文件放置同一目录下,这样我们在调用.h文件中声明的函数时,直接#include "xxx.h"即可 【链接器/常规/附加库目录】:.lib文件所在的文件夹 【链接器/输入/附加依赖项】:添加XXX.lib; 【C/C++/代码生成/运行库】:设置为"多线程(/MT)"二、配置动态库(.dll文件、.lib文件、.pdb文件、.h文件)将.h文件与.cpp文件放置同一目录下,这样我们在调用.h文件中声明的函数时,直接#include
原创
219阅读
0评论
0点赞
发布博客于 6 月前

C | C语言学习(五)指针和数组、指针运算、指针数组、多级指针

一、指针和数组 //数组名是数组的首地址 int arr[] = {1,2,3,4,5,6,7,8,9}; //p是指向数组的指针 int* p = arr; //修改数组元素arr[1]的值 arr[1] = 20; p[1] = 20;//正确 //输出arr[0]的值 printf("%d
", arr[0]);//1 printf("%d
", *arr);//1 printf("%d
", *(arr+0));//1 printf("%d
", *p);//1
原创
287阅读
1评论
0点赞
发布博客于 6 月前

C | C语言学习(四)随机数、函数、头文件、指针

一、随机数#include <time.h>#include <stdlib.h>#include <stdio.h>int main(){ srand((size_t)time(NULL)); for (size_t i = 0; i < 10; i++) { printf("%d
", rand()%51+50); }}二、函数1.C语言中形参不可赋值;2....
原创
303阅读
0评论
0点赞
发布博客于 6 月前

C | C语言学习(三)输入数据、输出数据、类型转换、数组、char数组和字符串、字符串长度

一、从标准输入设备读取数据1.读取数据(通用):scanf通过%转义的方式可以得到用户通过标准输入设备输入的数据。 int num1, num2; scanf("%d%d", &num1, &num2);//两个数据之间需要用空格或者回车隔开 scanf("%d,%d", &num1, &num2);//两个数据之间需要用,隔开 scanf("%3d%d", &num1, &num2);//输入12345回车,num1=123,num2=45
原创
368阅读
0评论
0点赞
发布博客于 6 月前

C | C语言学习(二)占位符、常量、scanf()、进制变换

1.打印占位符:占位符 说明 %d 输出一个有符号的10进制int型(signed int) %f 输出一个float型(默认保留六位小数) %.2f 输出一个float型,保留两位小数 (C语言中存在四舍五入,C++不存在) %lf 输出一个double型 %u 输出一个无符号的10进制int型(unsigned int) %hd 输出一个short int型 %ld 输出一个long int型 %ud 输出一
原创
286阅读
0评论
0点赞
发布博客于 6 月前

C | C语言学习(一)

语言发展史:机器语言(01)->汇编语言->高级语言。 C语言文件以.c为后缀;C++语言文件以.cpp为后缀。 C 语言特点 a.优点:代码量小、执行速度快、功能强大、编程自由。 b.缺点:写代码实现周期长、可移植性较差、过于自由 , 经验不足易出错、对平台库依赖较多。 #include : a.<>表示导入系统文件; b.""表示导入自定义文件 system()函数: a.在已经运行的程序中执行另一个外部程序。 b.返回值: 成功:0;失败:..
原创
237阅读
2评论
0点赞
发布博客于 6 月前

Unity | Cinemachine Target Group Camera

Target Group Camera可以实现相机跟随多个物体移动的效果,确保多个物体都在摄像机范围内。效果如下:创建Target Group Camera后,属性面板会生成两个物体:CM vcam1虚拟相机和TargetGroup1,CM vcam1虚拟相机身上的组件可点击链接(12.Aim)去了解,TargetGroup1身上的组件Cinemachine Target Group介绍如下:Position Mode:位置模式。 Group Center:所有目标的中心(长方体中心)。.
原创
506阅读
0评论
1点赞
发布博客于 7 月前

Unity | Cinemachine State-Driven Camera

State-Driven Camera可通过角色动画状态来切换摄像机,创建State-Driven Camera后,可以看到创建的物体身上挂有CinemachineStateDrivenCamera组件。Animated Target:我们需要将挂有Animator组件的角色赋给该值; Default Blend:相机间的融合效果; Custom Blends:自定义相机间的融合效果; State-Camera-Wait-Min列表:设置角色状态与对应的相机;Wait表示从别的状态切换到当前状
原创
460阅读
3评论
0点赞
发布博客于 7 月前

Unity | Cinemachine FreeLook Camera

FreeLook Camera是可以基于第三人称视角进行自由观察的虚拟相机。如下图所示,自由视角相机有上中下三个红圈,我们可以通过修改Cinemachine Free Look组件中的值来修改红圈的高度及大小。三个红圈由一个纵向的红线相连。 通过改变Y Axis及X Axis的Value可以修改虚拟相机的视角。 Spline Curvature决定纵向的紧绷状态。 TopRig、MiddleRig、BottomRig即三个红圈的属性。在Cinemachine Free L...
原创
788阅读
0评论
0点赞
发布博客于 7 月前

Unity | Cinemachine ClearShot Camera

ClearShot Camera可以管理一组子虚拟相机,这些虚拟相机需要具有Cinemachine Collider组件,ClearShot Camera可以实现角色被障碍物挡住时,虚拟摄像机的自动切换效果,如下所示,角色与Cam2被BoxCollider挡住时,虚拟相机由Cam2自动切换到Cam3。ClearShot Camera上有一个Cinemachine Clear Shot组件,Virtual Camera Children管理虚拟相机。Cinemachine Collider既可以挂在所
原创
580阅读
1评论
1点赞
发布博客于 7 月前

Unity | Cinemachine镜头融合

镜头融合需要Cinemachine与Timeline进行结合使用。创建Cinemachine Track:方式有两种: a.将Main Camera拖入到Timeline面板,选择Add Cinemachine Track。 b.在TimeLine面板右键,选择Cinemachine.Timeline->Cinemachine Track,将Main Camera赋值给Track。 选中Cinemachine Track,右键,选择Add Cinemachine Shot,Ci.
原创
536阅读
0评论
0点赞
发布博客于 7 月前

Unity | Cinemachine Virtual Camera

基于Unity2018.2.15,Cinemachine插件的导入需要从菜单栏"Window"->"Package Manager"中进行下载并导入。导入完成之后,在菜单栏会新增加一项"Cinemachine"。 Virtual Camera普通虚拟相机 创建Virtual Camera后,会发现MainCamera主摄像机上挂了Cinemachine Brain组件。【Cinemachine Brain组件】:场景中可以存在多个虚拟摄像机,Cinemachine Brain用于
原创
571阅读
0评论
0点赞
发布博客于 8 月前

Unity | TimeLine复习

一、复习链接:TimeLine学习一 TimeLine学习二 TimeLine学习三二、TimeLine各轨道内容:TrackGroup:分组的概念 Activation Track:控制物体的显示与隐藏 Animation Track:播放动画 Audio Track:播放音效 Control Track:控制GameObject,粒子特效,嵌套TimeLine (Playable Directory) Playable Track:控制脚本...
原创
341阅读
0评论
0点赞
发布博客于 8 月前

Unity | 动画那些事儿

对于Unity的动画系统,之前只限于运用在基于人物、骨骼等三维物体上,并没有在二维包括Button、Sprite等上多加运用及思考过。正好现在来补充一下自己的盲区。 作用于Button按钮的动画(例如:自定义按钮的悬浮状态) 将Button组件的Transition设置为Animation,点击"Auto Generate Animation"按钮,将会创建属于Button的controller; 选中该Button,打开Animation窗口,可以添加不同Trigger的效果(直接在第一帧添加
原创
415阅读
0评论
0点赞
发布博客于 8 月前

Unity | 使用EasyAR的那些问题(EasyARSenseUnityPlugin_4.0.1-final)

如果之前项目使用Vuforia,现在需要改成EasyAR,会发现两者的不同:Vuforia中Imagetarget识别图与Unity场景平行;Vuforia中Imagetarget识别图与Unity场景垂直,此时只需要把EasyAR下ImageTarget绕X轴旋转90度。 VuforiaAR ...
原创
643阅读
0评论
2点赞
发布博客于 8 月前

C++ | C++入门总结(五)局部静态对象、使用引用避免拷贝、含有可变形参的函数、返回数组的指针、内联函数、函数指针

局部静态对象 某些时候,有必要令局部变量的生命周期贯穿函数调用及之后的时间。可以将局部变量定义成 static 类型从而获得这样的对象。局部静态对象( local static object )在程序的执行路径第一次经过对象定义语句时初始化,并且直到程序终止才被销毁,在此期间即使对象所在的函数结束执行也不会对它有影响。 如果局部静态变量没有显式的初始值 , 它将执行值初始化。内置类型的局部静态变量初始化为 0。int GetCount(){ static int count; retur..
原创
467阅读
0评论
0点赞
发布博客于 9 月前

VC | main函数参数

int main(int argc, char ** argv){ }argc 是 argument count的缩写,表示传入main函数的参数个数; argv 是 argument vector的缩写,表示传入main函数的参数序列或指针,并且第一个参数argv[0]一定是程序的名称,并且包含了程序所在的完整路径,所以确切的说需要我们输入的main函数的参数个数应该是argc - 1个; main函数的参数可以在"项目"->"属性"->"配置属性"->"调试"->.
原创
497阅读
0评论
0点赞
发布博客于 9 月前

C++ | C++入门总结(四)运算符、空语句、switch内部变量

短路求值 逻辑与运算符(&&)和逻辑或运算符(||)都是先求左侧运算对象的值再求右侧运算对象的值,当且仅当左侧运算对象无法确定表达式的结果时才会计算右侧运算对象的值。这种策略称为短路求值。 对于逻辑与运算符(&&)来说,当且仅当左侧运算对象为真时才对右侧运算对象求值。 对于逻辑或运算符(||)来说,当且仅当左侧运算对象为假时才对右侧运算对象求值。 关系运算符与赋值运算符 C++中bool值可以转化成为其他算数类型:false转化成0,tru..
原创
552阅读
0评论
0点赞
发布博客于 9 月前

C++ | C++入门总结(三)迭代器、数组

迭代器 所有标准库容器都可以使用迭代器,比如vector、string等。 使用迭代器可以访问某个元素,迭代器也能从一个元素移动到另外一个元素。 可以使用迭代器的这些类型中,都有begin和end成员,这两个成员可以返回迭代器:begin负责返回指向第一个元素(或第一个字符)的迭代器;end负责返回指向容器(或string对象)“尾元素的下一位置”的迭代器,也就是说,end返回的这个迭代器指向的是容器的一个本不存在的“尾后”元素,这样的迭代器没有什么实际含义,仅是一个标机而已,表示我们已经处理完..
原创
561阅读
0评论
0点赞
发布博客于 9 月前

C++ | C++入门总结(二)string、vector

类关键字:class、struct。 类体右侧的表示结束的花括号后必须写一个分号,这是因为类体后面可以紧跟变量名以示对该类型对象的定义,所以分号必不可少。 一般来说,最好不要把对象的定义和类的定义放在一起。 类内初始值进行初始化时,不能使用圆括号。 没有成员函数的 struct 还是称作“结构”;有成员函数的 struct 就是类。 //推荐这样写 struct Person { std::string name;//默认值:空字符串 int age;//默认值:0 }; Per
原创
542阅读
0评论
0点赞
发布博客于 9 月前

C++ | C++入门总结(一)引用&、指针*

C/C++特有的typedef:为一个已有的类型取一个新的名字。#include <iostream>using namespace std;int main(){ typedef int inter; inter a = 1; cout << a;}枚举类型:默认情况下,第一个名称的值为 0,第二个名称的值为 1,第三个名称的值为 2,以此类推。但是,当给一个名称赋予一个值时,其后面的都会比前面一个名称大 1,但其前面的还是按默认0,1,2...赋值。..
原创
505阅读
0评论
0点赞
发布博客于 9 月前

Unity | Unity与Android交互流程总结

一、背景 虽然使用Unity3D可以完成制作一款游戏的绝大部分工作,但是在研发过程中,对于一些功能,比如实现手机震动、获取手机剩余存储空间等,就需要建立Unity与Android的交互。二、Unity与Android的交互方式 Unity与Android的交互有两种方式:1.Unity使用jar\aar库;2.Unity导出gradle项目,在AndroidStudio中进行二次开发。本文以实现手机震动功能为例,采取第一种方式进行Unity与Android的交...
原创
748阅读
2评论
1点赞
发布博客于 9 月前

Unity | Unity发布IOS上架注意细节

在App Store上架前,需要填入APP相关信息,如果APP不支持iPad,不提供iPad截图,需要在xCode打包时,修改xCode (General面板)下的Device,去掉iPad选项。xCode (General面板)或者Unity (PlayerSettings面板)都有Version及Build框,其作用是:1.Version:APP外部版本号,上架App Store用,外部人员可看到;2.Build:APP内部版本号,上架App Store时,如果当前版本1.0.0(1..
原创
810阅读
0评论
0点赞
发布博客于 9 月前

Unity | Unity发布IOS上架的一系列流程总结

一、IOS发包测试包(使用的是企业账号,需要企业证书及描述文件,企业账号不能上线应用到App Store)1.在Unity中发布,导出xCode工程,在Unity中需注意: a.如果项目使用到了摄像机权限、地理位置权限或者麦克风权限,要在PlayerSettings中补充好相关信息:(此部分也可在xCode工程的info.plist中补充) b.打包时应注意Bundle Identifier与企业账号中申请的Bundle ID一致。(此部分也可以在xCode工程中设置)2.在xC...
原创
1374阅读
0评论
0点赞
发布博客于 9 月前

Unity | Unity与IOS交互

最近做的Unity项目需要加入录频功能,在录频之前需要获取手机剩余存储空间。获取手机剩余存储空间用原生开发很好实现,这就需要用到Unity与IOS的交互。IOS开发伙伴给了我两个文件:memorySDK.h与memorySDK.m文件。该怎么调用呢?一脸懵逼......memorySDK.h文件:#import <Foundation/Foundation.h> NS_ASSUME_NONNULL_BEGIN@interface memorySDK : NSObj.
原创
481阅读
0评论
0点赞
发布博客于 9 月前

Git | 命令行的简单使用

一、关于Git安装及简单的推送可以查看之前的博客;二、使用命令行进行文件的提交:git status:用于显示工作目录和暂存区的状态,不显示已经commit到项目历史中去的信息。git add :将文件内容添加到索引(将修改添加到暂存区)。也就是将要提交的文件的信息添加到索引库中。git add . :将所有修改添加到暂存区; git add <path>:把<...
原创
503阅读
0评论
0点赞
发布博客于 10 月前

Unity | 接入BuglySDK(IOS端)

前期准备工作及在unity中操作可参考Android端接入流程,只要注意以下几点:1.在Bugly平台创建产品,选择IOS端;2.将SDK包中的bugly_unity.unitypackage导入进Unity工程,创建脚本后,将下载的“Unity Plugin”文件中的BuglyBridge文件夹放到Unity工程中Plugins\iOS文件夹下,将Bugly.framework(路径:bu...
原创
941阅读
0评论
0点赞
发布博客于 10 月前

Unity | 接入BuglySDK(Android端)

获取App ID:登录Bugly平台,新建产品。获取Bugly SDK:在SDK下载页面下载“Unity Plugin”,在使用指南页面可以获取SDK包相关信息。 将SDK包中的bugly_unity.unitypackage导入进Unity工程,创建以下脚本。using System.Collections;using System.Collections.Generic;us...
原创
748阅读
0评论
0点赞
发布博客于 10 月前

Unity | Unity 与Android交互后手机端退出APP的注意事项

今天做Android端版本更新时,点击“立即更新”按钮后需要跳转链接,并且将APP退出,但是发现Application.Quit();这句代码执行的时候会报错。这是因为项目中涉及到Unity 与 Android 的交互,在Android代码中,创建Activity时开启了服务,所以在退出APP时,应该将Android端额Activity关闭。所以在Android端加入以下代码 p...
原创
1088阅读
0评论
0点赞
发布博客于 1 年前

Unity | 微信分享链接到好友及朋友圈(IOS端)

今天项目众测,终于能抽出一点时间来更一下博客了。继续进行我们的微信分享,这次是在IOS端。一、完善微信开放平台IOS申请
原创
962阅读
0评论
0点赞
发布博客于 1 年前

手机端绑定host

最近开发的APP在使用时需要绑定host,以前只知道在PC端绑定,现在将手机端绑定host的方法记录一下。我今天使用的方法基本思路是PC端绑定host之后,将PC作为热点,手机连接这个热点。一、PC绑定host:以windows电脑端为例:在路径C:\Windows\System32\drivers\etc下有个hosts文件,将要加的域名写入即可;二、给PC开热点:打开命令提示符...
原创
1031阅读
0评论
0点赞
发布博客于 1 年前

Unity | 微信分享链接到好友及朋友圈(Android端)

一、准备工作:1. 获取ShareSDK:登录Mob官网,下载ShareSDK(点击右上角“SDK下载”按钮,进入SDK下载页,选择“其他”,下载Unity3D平台的ShareSDK插件:New-Unity-For-ShareSDK-master)2. 获取项目AppKey及AppSecret:点击右上角“产品中心”,进入“开发者平台”,点击“创建应用”,添加LOGO,输入名称,选择“...
原创
1218阅读
0评论
0点赞
发布博客于 1 年前

Unity | 解决引入插件后打包时提示sdk不一致的问题

最近做的一个项目中遇到了屏幕录制的需求,我使用了Natcorder插件,关于插件的使用总结下一篇博客再写,先说说打包遇到的问题,如下图:大致意思就是说当前项目NatCorder库使用的最低版本sdk不能低于23,而我当前才16,那么如何解决呢?并没有多么复杂,设置File->BuildSetting->PlayerSetting->Minimum API Level大于...
原创
772阅读
0评论
0点赞
发布博客于 1 年前

AB包加密解密.unitypackage

两种方法: 恺撒加密解密、AES加密解密 https://blog.csdn.net/weixin_39766005/article/details/103990313
unitypackage
发布资源于 1 年前

Unity | AssetBundle资源包的加密与解密(AES加密)

一、恺撒加密可以点击进行学习;二、AES加密: private static string KEY = "123456_abcdeABCD"; private static string IV = "123456_abcdeABCD"; private IEnumerator AES_EncryptionAB() { WWW www = ...
原创
2221阅读
0评论
1点赞
发布博客于 1 年前

Unity | 使用JsonUtility解析Json

一、使用注意事项:被转换的对象必须是可被序列化的,需要标记[System.Serializable] 属性; JsonUtility.FromJson 方法只能接受 json 对象,如果是 json 数组会提示错误: JSON must represent an object type。二、要解析的Json数据:{ "stat": 1, "status": 1, "msg":...
原创
734阅读
0评论
0点赞
发布博客于 1 年前

Unity | AssetBundle资源包的加密与解密(恺撒加密)

一、创建预制体:用Sphere与Cube临时创建了一个物体,就叫Sphere吧;二、将这个预制体Sphere打包成assetbundle包,具体介绍可点击这里进行参考(是我之前写的文章);选中Sphere预制体,设置AssetBundle名称为myab; 点击Unity菜单栏AssetBundle/AssetBundle_Window按钮。附上本次打AB包的相关代码(此代码需要放在Edi...
原创
1871阅读
0评论
0点赞
发布博客于 1 年前

Unity | 获取两个时间之间的间隔

最近的项目中要加一个功能:隔三天检测一下版本是否为最新,那么我们如何获取这个时间差呢?通过三行代码便可求出两个时间之间的间隔: string lastTime = "2020/1/1 00:00:00"; DateTime nowTime = DateTime.Now; TimeSpan span = nowTime.Subtract(Dat...
原创
1472阅读
0评论
1点赞
发布博客于 1 年前

Unity | Vuforia物体识别

一、准备工作:(我用的是Unity2018.2.15)1. Unity3D:如果在Unity场景中层次面板下创建不了Vuforia的相关物体(如图1),那么需要安装Unity资源包下的Vuforia Augmented Reality Support(如图2): 图1 ...
原创
762阅读
1评论
1点赞
发布博客于 1 年前

Unity | 打开文件对话框批量选择文件

之前在新浪博客写了一篇关于打开文件对话框批量选择文件的文章,可惜新浪博客不能写代码,奈何当时太年轻,并不觉得不方便,直到遇到CSDN...emmm,不想将就了,所以在这里更新一波,并补充其他的方法:原文的方法一1. 源码如下: System.Windows.Forms.OpenFileDialog dlg = new System.Windows.Forms.Op...
原创
1305阅读
8评论
0点赞
发布博客于 2 年前

Unity | 调用Windows颜色弹窗(方法二)

一、之前的调用Windows颜色弹窗(方法一)只能支持64位操作系统,32位不支持,所以提供下面这个方法,该方法有个不足是弹出的颜色窗口不能置顶(有实现了的大佬求留言相告)。二、需要用到的dll:System.Windows.Forms.dll(我用的是.Net 3.5,下载地址://download.csdn.net/download/weixin_39766005/11660884)三...
原创
479阅读
0评论
0点赞
发布博客于 2 年前

Unity | RenderTexture

一、相关概念RenderTexture是可以被渲染的纹理,简称渲染纹理。一般来说,RenderTexture可以应用在制作动态阴影,反射以及监视摄像机(车辆后视镜)等,另一方面可以应用到游戏截图,背景模糊等方面。 Camera(摄像机)是Unity中非常重要的一个组件,其中有一个属性叫做TargetTexture,在设置了TargetTexture后,Camera会在渲染时将其屏幕上的图像...
原创
451阅读
0评论
0点赞
发布博客于 2 年前

Unity | PlayerPrefs数据存储的位置

快捷键输入Windows+R,在打开的窗口中输入regedit; 在HKEY_CURRENT_USER/Software/Unity下找到自己Unity项目Company Name/Product Name
原创
743阅读
0评论
0点赞
发布博客于 2 年前

Unity | 优化(一):V Sync Count

1. 点击Unity->Edit->Project Setting->Quality,打开QualitySetting面板,有一个V Sync Count参数,该参数表示垂直同步。它有三个值可以选择:Don't Sync:不设置垂直同步,需要通过代码Application.targetFrameRate来指定帧率 Every V Blank:帧率为60,Applicatio...
原创
752阅读
0评论
0点赞
发布博客于 2 年前

Unity | 获取屏幕工作区的大小

最近做的项目发布后要做自适应,最大化后要铺满全屏(不覆盖任务栏),那么就需要获取工作区的大小,代码如下:int width = System.Windows.Forms.SystemInformation.WorkingArea.Width;int height= System.Windows.Forms.SystemInformation.WorkingArea.Height;Deb...
原创
481阅读
0评论
0点赞
发布博客于 2 年前

Unity | 计算执行某个函数使用的时间

System.Diagnostics.Stopwatch类:提供一组方法和属性,可用于准确地测量运行时间,通常用来测试代码在时间上的执行效率。Stopwatch sw=new Stopwatch();sw.Start();开启计时器。sw.Stop();关闭计时器。sw.Reset(); 重置计时器。using UnityEngine;public class Stop...
原创
876阅读
0评论
0点赞
发布博客于 2 年前

Unity | localPosition与anchoredPosition3D的区别

昨天修改项目,加了一个InputField的放大功能,因为放大要左右对称放大,所以我把InputField的pivot由(0,1)改成了(0.5,1),效果如下图:项目中InputField下有Text、Image等子物体,Image的锚点在左上角(根据项目需求设置),用户可以拖拽Image,拖拽后要保存位置信息;当我没加InputField的放大功能,即InputField的piv...
原创
1489阅读
3评论
0点赞
发布博客于 2 年前

Unity | 调用Windows颜色弹窗(方法一)

一、引入windows dll:public class DllScript{ [DllImport("comdlg32.dll", CharSet = CharSet.Auto)] public static extern bool ChooseColorA(ref CHOOSECOLOR pChoosecolor);//对应的win32API [DllImpo...
原创
510阅读
0评论
0点赞
发布博客于 2 年前

Unity | WWW带头部的Post请求 以及 处理base64传输空格的问题

一、不带头部的Post请求:WWWForm form = new WWWForm();form.AddField("app_key", "********");form.AddField("img", "https://ai.xueersi.com/textRecognition/images/22.jpg");form.AddField("img_type", "URL");f...
原创
525阅读
0评论
0点赞
发布博客于 2 年前

Unity | UGUI轴心点与锚点

一、轴心点『 Pivot 』:当前Image的轴心点所在位置,注意工具栏设置为时,Pivot的设置才有效。作用如下:二、锚点『Anchors』:在Image上由四个三角形组成的像风车一样的图标就是锚点。当四个风车在一起时,面板中属性为Pos X 、Pos Y、Width、Height; 当四个风车全部分开时,面板中属性为Left /Pos X、PosY/ Top 、Right、Bo...
原创
1053阅读
0评论
1点赞
发布博客于 2 年前

Unity | 总结:OCR文字识别、公式识别

一、功能简介:最近在做一个项目:运用OCR文字识别、公式识别、手写英文识别等AI技术,当用户批量导入图片或者PDF文件时可快速识别为可编辑文本,该项目主要功能有:印刷体识别、手写英文识别; 公式识别:将公式转为LaTex格式; 历史记录功能; 文本查找、替换; 文本撤销、恢复; 绘制区域:进行部分区域识别; 左旋转、右旋转:导入的图片出现90°旋转时使用; 图片/文件删除(单...
原创
19896阅读
19评论
5点赞
发布博客于 2 年前

通知|博客转移_该用户还没想到昵称_新浪博客

历时4个月,终于能在新浪博客发博文了,可惜我已经放弃了,博客迁到了CSDN,欢迎大家来参观~~
原创
10阅读
0评论
0点赞
发布博客于 2 年前

Unity|利用Hook实现Unity窗口小化后的键盘输入监听

钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到...
原创
951阅读
0评论
0点赞
发布博客于 2 年前

CutImage.unitypackage

截图unity窗口之外的区域,参考博客:https://blog.csdn.net/weixin_39766005/article/details/100984145
unitypackage
发布资源于 2 年前

Unity|截图unity窗口之外的区域

一、效果图如下:二、使用的插件:dll3.5、4.x版本下载System.Drawing.dll; System.Windows.Forms.dll;因为是截取unity窗口之外的区域,(unity中的截屏都需要依赖摄像机)所以需要使用windows窗体。这里我们使用C#的一个Form实例(相当于一个窗体)来处理鼠标按下、移动、抬起这三种消息的响应。我们的函数应该继承System....
原创
495阅读
1评论
0点赞
发布博客于 2 年前

System.Drawing.dll;System.Windows.Forms.dll.zip

包含基于.Net3.5 、.Net4.x 的dll;相关应用:https://blog.csdn.net/weixin_39766005/article/details/100524074。
zip
发布资源于 2 年前

Unity | 实现隐藏窗口到托盘,并且任务栏不显示icon

效果如下图所示:用到的插件:(放在Plugins文件夹下,点击下载各个版本)System.Drawing.dll System.Windows.Forms.dll System.Deployment.dll(运用基于.Net4.x的dll打包时,需要用到该dll,否则会报错)代码如下:using System;using System.Runtime.InteropSe...
原创
2993阅读
16评论
2点赞
发布博客于 2 年前

Unity|用一个PC端控制另一个PC端上两个程序的屏幕显示顺序

今天有点闲,有点闲,有点闲...然后我用一个小时做了一个小功能:用一个电脑A控制另一台电脑B中两个正在运行的程序在屏幕上的显示顺序,也就是点击电脑A中的按钮C,将电脑B中的程序C显示在屏幕最前方;点击电脑A中的按钮D,将电脑B中的程序D显示在屏幕最前方,如下图所示(上传图片限制大小,将就着看吧)【电脑A可以替换成手机,充当一个遥控的作用】用到的功能:局域网服务器、客户端通信;也可见文章...
原创
1630阅读
14评论
3点赞
发布博客于 2 年前

局域网内控制PC端两程序的显示顺序

用一个PC端(相当于遥控)控制另一个PC端上两个程序的屏幕显示顺序。用到的知识: 1.局域网服务器、客户端通信; 2.Windows用户界面相关应用程序接口的运用。 详见博文:https://blog.csdn.net/weixin_39766005/article/details/100104519
zip
发布资源于 2 年前

C# | 通过Object创建一个Json数组数据

最近有大量的API要接入,而且大部分都不会有代码示例,只有json格式的请求体,如下:那么我们自己发送请求时,json数据一般需要自己通过代码动态实现,比如请求下面这个题库校对API,请求代码如下: private class Body { public List<Data> data; } private class Data...
原创
3352阅读
0评论
0点赞
发布博客于 2 年前

Unity|关于WWW要求使用JSON格式请求的POST请求

最近在接入百度AI文本纠错API,要求使用JSON格式的结构体来描述一个请求的具体内容。接入请求说明如下:代码如下:private class Body { public string text = "";}IEnumerator ErrorCorrection() { string apiKey = "自己的apiKey"; ...
原创
1468阅读
0评论
0点赞
发布博客于 2 年前

Unity |WWW 带头部的Get请求

最近的项目需要与服务器传输数据,请求的数据如下(并没有注意到“Header”标识,其实看到也不会多思考)因为之前也经常用WWW的Get请求,但只限于public WWW(string url);这个函数的运用,所以没有多加思考便洋洋洒洒写下了下面的代码: IEnumerator GetUserInfo(string token) { WWW getinfo ...
原创
1259阅读
2评论
1点赞
发布博客于 2 年前

Unity | 判断相邻的两个字符是不是都是汉字

最近的文字识别项目需要获取图片中一个汉字的宽度,这样以便于对文字中的空格进行排版。当前通过OCR文字识别获取到了每个字的x、y坐标数据,那么一个字的宽度便等于后一个汉字的x减去前一个汉字的x。但问题又来了,数字123与字母abc的宽度肯定小于一个汉字的宽度,那么便需要判断相邻的两个字符是否为汉字了。查看汉字的Unicode编码范围:https://unicode-table.c...
原创
386阅读
0评论
2点赞
发布博客于 2 年前

C# | 二维数组深入理解

public class NewBehaviourScript : MonoBehaviour { GameObject[][] gos = new GameObject[1][];//这个二维数组包含一个一维数组 GameObject obj; void Start() { //gos[0]就是一个一维数组,这个一维数组有一个元素 ...
原创
375阅读
0评论
1点赞
发布博客于 2 年前

《海马扫描》文字识别、公式识别OCR

高精度文字识别工具,支持文件批量导入识别功能,准确识别文章中的文字和公式,并快速输出可编辑的word文件,提高文件识别效率。 大家不用浪费积分下载这个资源了,最新版不需要激活码:http://ai.xueersi.com/haima/index.html 相关介绍:https://blog.csdn.net/weixin_39766005/article/details/101217645
exe
发布资源于 2 年前

Unity|单选框->多选框->单选框

最近的项目中涉及到了单选、多选的问题:正常情况下,每一个图片为单选,选中以后进行OCR文字识别; 点击了删除按钮,所有的图片变为可多选状态。完成或取消删除操作后,再变为单选状态。我们都知道控制一系列物体是否为单选的条件为<Toggle>组件的Group是否为同一个,那么变为多选状态时,只需将Group置为Null。我的问题就出在取消删除操作之前,有几个图片是选中状态,那么,...
原创
1942阅读
1评论
2点赞
发布博客于 2 年前

Git使用

一、下载并安装软件百度网盘链接:链接:https://pan.baidu.com/s/1Cncl-_P0JI302XxD8Kikpw 提取码:aod5(推荐Git使用最新)官网:Git及TortoiseGit安装都很简单,一路next即可,安完TortoiseGit后,要设置Git用户信息(名称及Email),如下所示。(如果没有弹出该界面,可以从以下路径打开:鼠标右键->T...
原创
298阅读
0评论
0点赞
发布博客于 2 年前

Unity | 实现粘贴、复制功能

最近做的项目里有个需求是这样的:对一张图片里的公式进行截图,通过调用公式识别API,获得该公式的Latex文本,通过点击按钮复制、快捷键ctrl+v粘贴。using UnityEngine;using UnityEngine.UI;public class Test : MonoBehaviour{ TextEditor te = new TextEditor(); ...
原创
2561阅读
0评论
0点赞
发布博客于 2 年前

Unity | 部分区域自由截图

一、固定区域截屏:Unity三种截屏方法二、自由截图using System.Collections;using UnityEngine;///挂在摄像机上///如果要截图UI,需将Canvas的RenderMode设置为Screen Space-Camera,并将Render Camera设置为挂该脚本的摄像机public class Capture : MonoBeh...
原创
905阅读
0评论
0点赞
发布博客于 2 年前

C#| this作用:为参数类型扩展方法

扩展方法被定义为静态方法,但它们是通过实例方法语法进行调用的。它们的第一个参数指定该方法作用于哪个类型,并且该参数以 this 修饰符为前缀。 特点:静态类 扩展方法为静态方法 扩展方法第一个参数前加this;代码示例:两个扩展方法:ToInt():为float扩展方法; ChangeString():为string扩展方法。using UnityEngine;public...
原创
300阅读
0评论
0点赞
发布博客于 2 年前

Unity|发送邮件_该用户还没想到昵称_新浪博客

代码如下:代码调用:参数说明:from:发送方邮箱;pwd:发送方邮箱授权码;to:接收方邮箱;title:邮件标题;body:邮件内容。获得发送方邮箱授权码:(PC端登录邮箱) ...
原创
10阅读
0评论
0点赞
发布博客于 2 年前

Unity|图片旋转_该用户还没想到昵称_新浪博客

当我们把一张图片传入后台服务器进行解析,如图片转文字时,要注意该图片的拍摄角度,当角度不合适时,我们应进行适当旋转使其达到好的效果,如下如所示: 注意该旋转不是UnityTransform的Rotate旋转,这种旋转只是在我们的Unity编辑器下展示正常而已,我们需要的是让该图片本身旋转成正常的角度。 如上图的操作,即将该图顺时针旋转90度:效...
原创
14阅读
0评论
0点赞
发布博客于 2 年前

Unity|Destroy处理注意_该用户还没想到昵称_新浪博客

Unity中Destroy一个物体后,同帧的情况下,该物体还存在。如下所示:所以在删除之前,将其父子关系解除即可:
原创
10阅读
0评论
0点赞
发布博客于 2 年前

UGUI-TextMeshPro 中文字体

Unity 版本:2018.2.15 博客参考:http://blog.sina.com.cn/s/blog_1322690230102z1qh.html
zip
发布资源于 2 年前